Skip to content

chore: merge upstream/main into fork (2026-11-12) - #574

Open
adampeterhiggins wants to merge 434 commits into
mainfrom
t3code/sync-upstream-2026-11-12-0931
Open

adampeterhiggins wants to merge 434 commits into
mainfrom
t3code/sync-upstream-2026-11-12-0931

Conversation

@adampeterhiggins

@adampeterhiggins adampeterhiggins commented Nov 12, 2026 •

Copy link
Copy Markdown
Owner

What’s in this sync

Adds 431 upstream commits since the parent sync.

  • New features: UI language settings and translations for Spanish, Chinese, French, German, Japanese, Korean, Russian and Brazilian Portuguese; mobile language selection; reply from assistant hover actions; resolved review conversations fold into avatars; quoted messages display as inset cards; Windows background service support. Add-project lists default to GitHub until other hosts are enabled.
  • Fixes: more reliable Stop and delegation completion, scheduled-task missed-slot reporting, worktree creation and cleanup with large output, composer chip restoration, streaming scroll behavior, mobile settings and review navigation, and desktop update recovery.
  • Provider and internal changes: Cursor streaming and steering improvements, Claude delegate process cleanup and custom model handling, Codex policy errors and delegate lifecycle fixes, OpenCode service restart on update, and lower-cost thread/state processing.

Discord announcements were not used: the channel returned no matching announcement crossposts for this range.

Parent #572 has merged. This PR now targets main and adds only the newer upstream commits.

Base: ae9bd790f5f277097dd72f3998c4825829a40852.
Pinned upstream: ee90bdc9405d8d4b8ff78ce2133ccb04844298ab.
Range: ae9bd790f5f277097dd72f3998c4825829a40852..ee90bdc9405d8d4b8ff78ce2133ccb04844298ab.

Other notable changes: Windows service support (pingdotgg#34524), provider health checks (pingdotgg#34885), large worktree Git output (pingdotgg#34889), Codex child cleanup (pingdotgg#34829), missed scheduled runs (pingdotgg#34815), desktop update recovery (pingdotgg#34932), and singular CSV/text preview labels (pingdotgg#34992).

Full upstream comparison.

Conflict resolutions and verification

  • Preserved fork context integrations, provider/account selection, quick-message and split-view behavior, citation comments/chips, notification rules, scheduling catch-up, and worktree naming before setup while adopting upstream structure and guards.
  • Unified worktree launch errors and receipt replay checks; retained bounded branch naming and background rename; incorporated upstream failure notices and root-branch capture.
  • Integrated Cursor asynchronous steering acknowledgments and patched SDK alongside fork provider environments. Preserved desktop fork publishing/staging tests and upstream Linux window class coverage.
  • Repaired clean-merge test imports, new service dependencies and replay signatures. Removed dead citation/skill helpers and reconciled fork documentation where upstream adopted behavior.
  • No substantial upstream split of the fork-edited chat/composer files occurred in this range; reviewed caller wiring for preserved composer, citation, detached-window, sidebar, and account features.

Focused validation: web/mobile/client-runtime/contracts/shared/provider typechecks; server typecheck; 503 web unit tests; 939 initial server tests plus 720 cases in the final affected suites (overlapping); 92 launch cases; 155 package cases, 61 thread-sync cases and 11 Cursor replay cases; 62 desktop build cases. Formatting/lint/knip passed. check:changed: format, lint, knip, generated GraphQL, dependency patch validation, 41 affected-package/dependent typechecks and node tests passed.

The 547-file non-browser suite then ran in 28 batches, and 18 passed. Each failure was rerun alone and compared with origin/main and with the pinned upstream commit.

Merge regressions, fixed

  • dff33000b0: quoted mixed selections keep their code fence, and the response context preview is registered in kind order. These are fork tests on main.
  • cee1db2c56: the merge dropped upstream's linkedSender on cross-environment sends (PeerForwarding and "records the linked environment's thread"). The fork's catch-up path also skipped upstream's failed status for a missed fixed-time slot (fix(server): a missed fixed-time slot shows as failed on its scheduled task pingdotgg/t3code#34815). The agent-context budget now matches the merged instructions; the growth comes from upstream's prompt edits. The schedule test now mocks the dispatch that the fork's service calls. Every scheduled-task, catch-up, peer and budget test file passes (135 tests).

Open: needs a decision or a fix before merge

Fails on macOS on upstream's code too; not caused by the merge

  • pinnedRuntime symlinked home and ManagedProjectFolders symlinked Scratch. The code is identical to upstream; the temp directory is under /var, which is itself a symlink on macOS.
  • ClaudeSkills synced namespace. The fixture creates both pstack and PSTACK, which collide on a case-insensitive disk.

Flaky under load: DeviceHubProxy stream close timed out only in the batch run and passes alone. The disk was 98–99% full during the batches.

Runtime: the web client pairs and opens a thread and Settings → General. The iOS dev client installs and Metro serves it, but the Expo dev menu blocked confirming pairing, so mobile is unverified. Android is unavailable on this machine (no Android SDK). The MCP eval is blocked by a missing API key. Discord returned no matching announcements.

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

Model: gpt-6.1-sol, grok-4.7, then claude-opus-5-5. Harness: Codex and Cursor in T3 Code.

Umais-Adeed and others added 30 commits November 11, 2026 23:17
… HTTP/2 on its own (pingdotgg#34167)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
)

Co-authored-by: Mohamed Sayed <MohamedSayed0573@users.noreply.github.com>
Co-authored-by: maria-rcks <maria@kuuro.net>
…am (pingdotgg#34246)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com>
…ingdotgg#34343)

Co-authored-by: Aaron Zingerle <aaron.zingerle@avoautomation.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com>
juliusmarminge and others added 27 commits November 12, 2026 00:01
…hosts on (pingdotgg#34978)

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

Continues pingdotgg#31152.

Co-authored-by: Miley <mkantenko@gmail.com>
Co-authored-by: maria-rcks <maria@kuuro.net>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
# Conflicts:
#	apps/mobile/src/features/settings/SettingsRouteScreen.tsx
#	apps/mobile/src/features/threads/ThreadFeed.tsx
#	apps/mobile/src/features/threads/ThreadNavigationSidebar.tsx
#	apps/mobile/src/persistence/mobile-preferences.ts
#	apps/mobile/src/state/use-thread-composer-state.ts
#	apps/server/src/cli/thread.test.ts
#	apps/server/src/mcp/McpHttpServer.test.ts
#	apps/server/src/mcp/McpHttpServer.ts
#	apps/server/src/mcp/OrchestratorMcpService.ts
#	apps/server/src/mcp/linkOrigin.test.ts
#	apps/server/src/mcp/toolkits/orchestrator/handlers.ts
#	apps/server/src/mcp/toolkits/orchestrator/tools.ts
#	apps/server/src/mcp/toolkits/project/handlers.test.ts
#	apps/server/src/mcp/toolkits/project/handlers.ts
#	apps/server/src/orchestration-v2/Adapters/ClaudeAdapterV2.test.ts
#	apps/server/src/orchestration-v2/Adapters/ClaudeAdapterV2.ts
#	apps/server/src/orchestration-v2/Adapters/CodexAdapterV2.ts
#	apps/server/src/orchestration-v2/DelegatedCompletionDelivery.test.ts
#	apps/server/src/orchestration-v2/Orchestrator.control-reads.test.ts
#	apps/server/src/orchestration-v2/Orchestrator.ts
#	apps/server/src/orchestration-v2/ProviderTurnStartService.ts
#	apps/server/src/orchestration-v2/PullRequestWatchReactor.ts
#	apps/server/src/orchestration-v2/SubagentProjection.test.ts
#	apps/server/src/orchestration-v2/ThreadLaunchService.test.ts
#	apps/server/src/orchestration-v2/ThreadLaunchService.ts
#	apps/server/src/orchestration-v2/testkit/fixtures/kiro_model_switch/kiro_transcript.ndjson
#	apps/server/src/orchestration-v2/testkit/fixtures/kiro_unknown_model/kiro_transcript.ndjson
#	apps/server/src/peer/PeerMcpClient.test.ts
#	apps/server/src/peer/RemoteDelegation.test.ts
#	apps/server/src/preview/ServerBrowser.ts
#	apps/server/src/preview/ServerBrowserPage.ts
#	apps/server/src/process/externalLauncher.test.ts
#	apps/server/src/project/AgentSessionScanner.ts
#	apps/server/src/provider/ClaudeProvider.ts
#	apps/server/src/provider/ProviderOrchestrationAdapterInfrastructure.ts
#	apps/server/src/provider/ProviderRegistry.ts
#	apps/server/src/scheduledTasks/ScheduledTaskService.test.ts
#	apps/server/src/scheduledTasks/ScheduledTaskService.ts
#	apps/server/src/server.ts
#	apps/server/src/terminal/Manager.test.ts
#	apps/server/src/ws.ts
#	apps/web/src/AppRoot.tsx
#	apps/web/src/appInit.tsx
#	apps/web/src/components/ChatMarkdown.tsx
#	apps/web/src/components/ChatView.tsx
#	apps/web/src/components/ComposerPromptEditorTiptap.tsx
#	apps/web/src/components/RightPanelTabs.browser.test.tsx
#	apps/web/src/components/ThreadNotificationCoordinator.tsx
#	apps/web/src/components/chat/AssistantCitationChip.browser.test.tsx
#	apps/web/src/components/chat/AssistantCitationChip.tsx
#	apps/web/src/components/chat/AssistantCitationCommentEditor.tsx
#	apps/web/src/components/chat/ChatComposer.tsx
#	apps/web/src/components/chat/ComposerPrimaryActions.tsx
#	apps/web/src/components/chat/MarkdownThreadLink.tsx
#	apps/web/src/components/chat/MessagesTimeline.logic.test.ts
#	apps/web/src/components/chat/MessagesTimeline.logic.ts
#	apps/web/src/components/chat/MessagesTimeline.tsx
#	apps/web/src/components/chat/ModelPickerContent.tsx
#	apps/web/src/components/chat/OpenInPicker.tsx
#	apps/web/src/components/chat/ProviderModelPicker.browser.test.tsx
#	apps/web/src/components/chat/QueuedRunsControl.tsx
#	apps/web/src/components/chat/SkillInlineText.tsx
#	apps/web/src/components/chat/TimelineWorkEntryRow.tsx
#	apps/web/src/components/chat/TimelineWorkGroupRows.tsx
#	apps/web/src/components/chat/UserMessageContextChips.tsx
#	apps/web/src/components/chat/WorkflowOpeningBlock.tsx
#	apps/web/src/components/chat/useComposerSend.ts
#	apps/web/src/components/chat/useComposerStash.ts
#	apps/web/src/components/chat/useQueuedRunEdit.ts
#	apps/web/src/components/chat/useThreadLifecycle.tsx
#	apps/web/src/components/composerInlineTokenPaste.ts
#	apps/web/src/components/contextPresentationRegistry.ts
#	apps/web/src/components/files/FilePreviewPanel.tsx
#	apps/web/src/components/pullRequest/PullRequestSummaryTab.tsx
#	apps/web/src/components/pullRequest/guide/GuideExcerpt.tsx
#	apps/web/src/components/settings/SettingsBreadcrumb.tsx
#	apps/web/src/components/settings/SettingsPanels.tsx
#	apps/web/src/components/settings/SettingsSidebarNav.tsx
#	apps/web/src/components/settings/settingsSearch.ts
#	apps/web/src/components/sidebar/SidebarThreadRow.tsx
#	apps/web/src/composer-rich-text-doc.ts
#	apps/web/src/hooks/useThreadActions.ts
#	apps/web/src/main.tsx
#	apps/web/src/shortcuts/dispatcher.ts
#	apps/web/src/state/entities.ts
#	apps/web/src/terminal/ghostty/renderer.ts
#	packages/client-runtime/src/state/contextWindow.ts
#	packages/client-runtime/src/state/threads.ts
#	packages/contracts/src/composerContext.ts
#	packages/contracts/src/orchestrationV2.ts
#	packages/provider-core/src/server/instanceEnvironment.test.ts
#	packages/provider-core/src/server/instanceEnvironment.ts
#	packages/provider-core/src/server/orchestrationInstructions.ts
#	packages/provider-core/src/server/runtimeInstructions.ts
#	packages/provider-cursor/src/server/CursorAgentSdk.test.ts
#	packages/provider-cursor/src/server/CursorAgentSdk.ts
#	packages/provider-cursor/src/server/adapter.test.ts
#	packages/provider-cursor/src/server/adapter.ts
#	packages/provider-opencode/src/server/driver.ts
#	packages/shared/src/usageLimits.test.ts
#	pnpm-lock.yaml
#	scripts/build-desktop-artifact.test.ts
Base automatically changed from t3code/sync-upstream-2026-11-11-1245 to main November 12, 2026 10:09
adampeterhiggins and others added 2 commits November 12, 2026 10:43
…ollow kind order

Upstream copies code without fences. A quote of mixed content was using that path, so the code block no longer stood alone. Response context was also registered ahead of the kind list.

Co-authored-by: Cursor <cursoragent@cursor.com>
The merge lost upstream's linked sender on cross-environment sends, and the fork's catch-up path skipped upstream's failed status for a missed fixed-time slot. The context budget now matches the merged instructions, and the schedule test mocks the dispatch the fork's service calls.

Co-authored-by: Cursor <cursoragent@cursor.com>

This branch has not been deployed

No deployments
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.