Skip to content

Sync upstream to 2482b03a01 (stage 2 of 2) - #314

Merged
henrychu04 merged 254 commits into
coder-onlyfrom
t3code/sync-upstream-2482b03a01
Nov 12, 2026
Merged

henrychu04 merged 254 commits into
coder-onlyfrom
t3code/sync-upstream-2482b03a01

Conversation

@henrychu04

@henrychu04 henrychu04 commented Nov 12, 2026 •

Copy link
Copy Markdown
Owner

Stage 2 of 2 of the upstream sync: merges pingdotgg/t3code 2482b03 (the 246 commits c0b67b7631..2482b03a01) into coder-only. Stage 1 merged as #313. The upstream redesign stack (pingdotgg#28839–pingdotgg#28845) is still open and not in range.

Carried highlights

Cuts (each is listed in coder-only.md; new deleted files are under "2482b03a01 cuts" in sync-resolve-deleted.mjs)

Adaptations and decisions

Issues

#229, #231, #232 stay open. Nothing in range fixes them (upstream pingdotgg#23439 is still open; the server wording is unchanged; the thread-visit race is untouched).

Verification

Run after deleting every node_modules and reinstalling with --frozen-lockfile. No @napi-rs/canvas; @types/hast is 3.0.4.

  • Typechecks: every check in AGENTS.md passes with 0 errors (gateway, helper, server, web, contracts, shared, client-runtime, coder-cli, providers, ACP, source control).
  • pnpm knip:check: passes.
  • node scripts/seams-check.mjs 2482b03a01: passes.
  • sync-check: markers show no drops. The lost and both-sides lines are cut surfaces or the wording seam. unused-locals reports nothing.
  • pnpm test:coder: exit 0 on the fifth run. Earlier runs failed on upstream tests that needed fork adaptation (GitLab fixtures, !N wording, dormant capability copies, gateway connection, GT in a node unit test); those adaptations are in the commits after the merge.
  • pnpm build: passes.
  • fmt check over the changed files: clean. No .orig/.rej files.
  • Live Coder smoke: none was run; no harness session was available.

Fable 5.2 review (2 reviewers, server and web)

No high or medium findings, no boundary breaks, no merge losses. gt-react confirmed to make no runtime request in the built app; pingdotgg#34978 offers GitLab for fresh and pre-sync settings; pingdotgg#35071 never requests the HTTP shell route. Fixed in the review commit:

Re-verified after the fixes on a clean node_modules: every AGENTS.md typecheck, pnpm knip:check, seams-check, pnpm test:coder (exit 0), pnpm build, fmt check. No live Coder smoke.

🤖 Generated with Claude Code

maria-rcks and others added 30 commits November 11, 2026 21:03
…otgg#34527)

Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>
…rminals (pingdotgg#34526)

Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>
…erent calls (pingdotgg#34528)

Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>
… gone (pingdotgg#34529)

Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>
…ingdotgg#34530)

Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>
…ntained command (pingdotgg#34531)

Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>
…dotgg#34532)

Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>
…equest (pingdotgg#34533)

Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>
phon-t and others added 29 commits November 12, 2026 03:11
… always defaults to true (pingdotgg#34950)

Co-authored-by: Julius Marminge <julius0216@outlook.com>
…nd items (pingdotgg#35167)

Replaces pingdotgg#34747, pingdotgg#31828, pingdotgg#34666 and pingdotgg#27975.

Co-authored-by: Bogdan <bogdan@bowd.io>
Co-authored-by: Michael Zhou <joei4cm@gmail.com>
Co-authored-by: Pyseph <45090858+Pyseph@users.noreply.github.com>
Co-authored-by: Braulio Oliveira <brauliobo@gmail.com>
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
…otgg#35202)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
… trimmed shell snapshots (pingdotgg#34870)

Fixes pingdotgg#30320.

Co-authored-by: Theo Browne <me@theo.li>
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
…s reads about half as much (pingdotgg#35178)

Refs pingdotgg#29468.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
…t on startup (pingdotgg#34596)

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
…and name (pingdotgg#34697)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…PR comment shows every row (pingdotgg#35225)

Co-authored-by: Claude Fable 5.2 <noreply@anthropic.com>
…on its history read (pingdotgg#35180)

Replaces pingdotgg#34641. Refs pingdotgg#29468.

Co-authored-by: Braulio Oliveira <brauliobo@gmail.com>
Co-authored-by: Theo Browne <me@theo.li>
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
…gdotgg#35286)

Co-authored-by: Claude Fable 5.2 <noreply@anthropic.com>
…otgg#35287)

Co-authored-by: Claude Fable 5.2 <noreply@anthropic.com>
…dit from here keeps your files (pingdotgg#35291)

Co-authored-by: Claude Fable 5.2 <noreply@anthropic.com>
…d trips (pingdotgg#35071)

The prepare-time shell load follows the idea and structure of pingdotgg#27413.

Co-authored-by: ahalekelly <7078138+ahalekelly@users.noreply.github.com>
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Stage 2 of 2: the 246 upstream commits c0b67b7..2482b03.

Upstream brings UI language switching through gt-react with bundled
translations (pingdotgg#31313, pingdotgg#33161-pingdotgg#33166), replies from an assistant
response's hover actions (pingdotgg#33124), resolved review conversations folded
into avatars (pingdotgg#34644), a screen-reader window title (pingdotgg#34697), sidebar
folder drops (pingdotgg#35202), Add project host gating (pingdotgg#34978), threads that
load while the socket connects (pingdotgg#35071), and the server, web,
client-runtime, shared, and contracts fixes and perf work in the range.

Resolution:
- server.ts, serverRuntimeStartup.ts, and the session/connection
  modules keep the fork's reduced files; upstream's HTTP shell snapshot,
  Tailscale Serve, self-update, and response-guard hunks stay cut.
- ws.ts takes upstream's catalog digests and provider status deltas on
  the server side and its move of the shell resume helpers into
  ShellStream.ts; the client still opts into neither (pingdotgg#35072 is mobile's).
- McpSessionRegistry.ts ports pingdotgg#34532's wall and monotonic alive marks
  onto the file-bridge registry; its test gains upstream's case.
- Sqlite.ts carries pingdotgg#35057's damaged-database error without the CLI
  ownership check; RepositoryIdentityResolver.ts drops pingdotgg#35005's
  `gh repo set-default` preference (GitHub-only).
- Voice (pingdotgg#33140) hunks are reverted per file; the mobile language
  switch (pingdotgg#33169), screen-reader moves (pingdotgg#34431), and steady shells
  (pingdotgg#34596) keep only what the web client uses.
- SidebarFolderDrop takes upstream's browser branch only: a dropped
  folder on this computer shows a toast pointing at Add project.
- RightPanelTabs keeps pingdotgg#30882's thumb-button handling without a preview
  surface; preview/thumbButtons.ts is carried.
- GitLab is the registry's only and default host, so pingdotgg#34978's offer
  setting yields GitLab without an opt-in.
- The `gt` CLI and its i18n:generate/i18n:translate scripts are not
  carried; the build and tests do not need them.
- New cuts are listed under "2482b03a01 cuts" in
  scripts/sync-resolve-deleted.mjs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Upstream names the linked-environment thread that sent a message by
passing a `T3-Sender-Thread` header on its `/mcp` call. The fork routes
linked calls through the gateway hub instead, so the sender rides in the
hub's `Call` request and `coder.hub.invoke` payload, cut to upstream's
header title length, and the target helper puts it on the linked
caller's `senderThread` as upstream's MCP server does.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
coder-only.md names this sync's seams and cuts: the hub's linked sender,
pingdotgg#34978's GitLab default, pingdotgg#35005's cut, pingdotgg#35071's shell path without an HTTP
load, pingdotgg#35072's client opt-ins and mobile's steady shells left out, the
UI language setup and its no-request configuration, sidebar folder
drops, thumb-button handling, pingdotgg#33140's voice hunks, and the generic hooks
cut providers' fixes leave in carried code. knip ignores the three
exports only cut surfaces read, SYNC_BASE moves to 2482b03, the
GitLabCli seam is checked against it, and sync.md records where the
checklist fell short.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- RepositoryIdentityResolver's mocked remotes print git's tab, which
  pingdotgg#35080's parser now requires.
- The dormant Cursor and ACP capabilities copy upstream's again (pingdotgg#28980
  turned on Cursor's active steering).
- runtimeLayer's combined watch wakes read `!N`, as the fork's wording
  seam writes them.
- CodexAdapterV2's goal wake test (pingdotgg#34898) runs without a bridge command,
  so its turn carries no T3 context.
- AcpRegistryAdapterV2 drops pingdotgg#35199's Copilot case; Copilot's flavor is
  cut.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The gateway connection carries no bearer credential, so the test's
credential rotation step is dropped; the session's later events are
still checked.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The unit project resolves gt-react to its node build, which has no SPA
setup, so the test mocks its hooks to render the English source.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ThreadDetailsPanel's cases mock the Coder config its Servers list reads,
ThreadDetailsPrRow's repository-project merges run on a GitLab project,
and the pull request handoff toast says merge request, the default
host's term.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Cut OpenCode's post-update hook (pingdotgg#34606: provider-core afterUpdate and ProviderRegistry's call)
  and ShellStream's loadShellUnlessResumable, whose only caller is the uncarried HTTP shell route;
  drop its knip ignore.
- Import upstream's AcpProviderCapabilitiesV2 in ProviderSwitch.integration.test instead of a copy.
- Drop the singleFlight concurrency the merge invented on updateProvider (upstream has none).
- Retitle the sidebar file-drop toast so it no longer says folders can be added.
- coder-only.md: the hooks kept as upstream, never setting the GT dev variables, GT locale cookies.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@henrychu04
henrychu04 merged commit d18c7f0 into coder-only Nov 12, 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.