Support GitHub Release tarball distribution for t3 CLI#1
Merged
Conversation
- Add `pack` CLI subcommand to create versioned .tgz tarballs - Update release workflow to build and upload CLI tarballs as release assets - Add `parseReleaseRepository` to extract owner/repo from URLs or slugs - Remote t3 runners prefer GitHub Release URLs when fork repository is configured - Desktop app passes fork repository to SSH tunnel for registry-free installation
So the runtime-derived GitHub Release tarball URLs in resolveRemoteT3CliPackageSpec resolve to this fork's releases instead of upstream pingdotgg/t3code.
The previous rename commit (27f1457) updated the legacy user-data dir name and test fixtures but left the actual stage-label resolver and the DesktopAppStageLabel contract still emitting "Alpha", so the rendered app name and DesktopAppIdentity test diverged. Update the contract literal/schema, the desktop resolver, and the web branding fallback so non-dev/non-nightly builds advertise themselves as "T3 Code (Bscholar)" end-to-end.
Pi SDK fires turn_end after each internal LLM call and agent_end once at the end of the full run. Completing the t3code turn on turn_end fragmented each Pi response into multiple turns: tool activities disappeared as soon as a new sub-turn started (the work log filters by latestTurnId), and the elapsed-time counter reset on every sub-turn boundary. Making turn_end a no-op and letting agent_end drive completeTurn keeps all tool activities and text deltas under the single turnId created by sendTurn, matching how the Claude adapter behaves. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
When a Pi thread is continued (e.g. page reload or new server session), createAgentSession was always creating a blank session with no history. Now startSession captures the Pi session file path as resumeCursor and stores it via ProviderSessionDirectory (the same mechanism Claude uses). On subsequent startSession calls for the same thread, SessionManager.open is used to load the prior JSONL session file so Pi has full context. Falls back to a fresh session gracefully if the file is inaccessible. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Tool rows showed only the tool name because item.completed had no detail or data fields — args were captured at tool_execution_start but never stored or forwarded to item.completed, which is the event the UI renders. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.