Skip to content

merge upstream/main into fork - #126

Merged
adampeterhiggins merged 23 commits into
mainfrom
t3code/sync-upstream-2026-10-01
Oct 1, 2026
Merged

adampeterhiggins merged 23 commits into
mainfrom
t3code/sync-upstream-2026-10-01

Conversation

@adampeterhiggins

Copy link
Copy Markdown
Owner

Brings the fork up to date with pingdotgg/t3code. Before this merge the fork was 22 commits behind upstream and 168 ahead.

New from upstream: threads without a project (Scratch), starting a new project from just a name, restarting the agent session from cmd+k, Codex Ultrafast double bolts, the Claude /compact and subagent-model fixes, screen-reader support for composer suggestions, the vite-plus 1.0 bump, and CI/release parallelization.

Conflict resolutions

  • Server dispatch (ws.ts). The fork had moved client command dispatch into ClientCommandDispatcher (refactor(server): move client command dispatch out of ws.ts #112), while upstream added Scratch thread folders to the old dispatch path in ws.ts. The per-thread Scratch folder logic now lives in ClientCommandDispatcher, so threads created over MCP get folders too. The dispatcher exposes scratchWorkspaceRoot. ensureScratchProject, createNewProject, and the server config's scratchWorkspaceRoot stay in ws.ts and dispatch through it. The git probe is now cached once per server instead of once per connection.
  • Claude adapter. Kept both: the fork's registration of subagent tool calls from assistant snapshots, and upstream's live subagent-model correction (task.updated). Upstream's early return for results that belong to another turn runs before the fork's rateLimited calculation.
  • Keybindings. Both the fork's chat.startFrom (mod+shift+b) and upstream's chat.newWithoutProject (mod+alt+n) are kept in contracts, defaults, and the _chat route handler. The Keybindings settings sort uses upstream's compareCommands, which fixes the same Usage-ordering problem as the fork's version, and the fork's tests pass on it.
  • Command palette. Kept the fork's attach/link actions (thread, Linear, GitHub issue, pull request, repository) and added upstream's "Restart agent session". Icon and hook imports are combined.
  • Composer. ChatComposer keeps the fork's imports plus upstream's composerSuggestionOptionId. In TraitsPicker, upstream's Ultrafast speed icon and label are combined with the fork's labels for standalone controls.
  • CI. Took upstream's split lint/typecheck/test jobs and added back the fork's Check skill symlinks step.
  • Docs. docs/user/thread-sidebar.md keeps the fork's tabs and split-view sections and adds upstream's "Start without a project".

Verification

  • Typecheck passes for @t3tools/contracts, t3, @t3tools/web, @t3tools/mobile, @t3tools/client-runtime, and @t3tools/shared.
  • vp test run on server.test.ts, ClaudeAdapter.test.ts, keybindings (server, web, contracts), mcp/.../handlers.test.ts, bin.test.ts, NewProject.test.ts, CommandPalette.logic, TraitsPicker, KeybindingsSettings.logic, and chatThreadActions: 636 passed, 1 failed.
  • The failure, server.test.ts > flushes more than one tool chunk before the synchronization marker, already fails on the fork's main. The test is unchanged by this merge. It expects tool activity data without the preview field that the fork's fix(web): show useful details in tool call previews #75 adds. It is not fixed here.
  • vp check --fix on the resolved files: 0 errors. git diff --check is clean, apart from trailing whitespace inside upstream's patches/alchemy patch, which belongs there.

Merge with Create a merge commit. It keeps upstream history and the merge base for the next sync.

Done by Claude Opus 5.5 in Claude Code (via T3 Code).

🤖 Generated with Claude Code

Sethmr and others added 23 commits September 30, 2026 11:46
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…#14486)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-authored-by: maria-rcks <maria@kuuro.net>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ad busy (pingdotgg#14497)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…otgg#10154)

Co-authored-by: Khai Shern, Toh <khaishern8235@gmail.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
…ingdotgg#14028)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…otgg#14025)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…pingdotgg#14027)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…sh (pingdotgg#14029)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… parent's model (pingdotgg#14540)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…d plugins (pingdotgg#14542)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…nup (pingdotgg#14553)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
# Conflicts:
#	.github/workflows/ci.yml
#	apps/server/src/provider/Layers/ClaudeAdapter.ts
#	apps/server/src/ws.ts
#	apps/web/src/components/CommandPalette.tsx
#	apps/web/src/components/chat/ChatComposer.tsx
#	apps/web/src/components/chat/TraitsPicker.tsx
#	apps/web/src/components/settings/KeybindingsSettings.logic.ts
#	apps/web/src/routes/_chat.tsx
#	docs/user/thread-sidebar.md
#	packages/contracts/src/keybindings.ts
#	packages/shared/src/keybindings.ts
@adampeterhiggins
adampeterhiggins merged commit 69c2673 into main Oct 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants