Repository navigation
chore: merge upstream/main into fork (2026-11-12) - #574
Open
adampeterhiggins wants to merge 434 commits into
Open
adampeterhiggins wants to merge 434 commits into
adampeterhiggins wants to merge 434 commits into
Conversation
… HTTP/2 on its own (pingdotgg#34167) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
… stopped, not failed (pingdotgg#34183)
…am (pingdotgg#34246) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Julius Marminge <julius0216@outlook.com>
…ingdotgg#34277) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.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>
…f failing every send (pingdotgg#27729)
…ot another t3 on PATH (pingdotgg#34936)
…h the API unchanged (pingdotgg#34938)
…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
…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
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.
What’s in this sync
Adds 431 upstream commits since the parent sync.
Discord announcements were not used: the channel returned no matching announcement crossposts for this range.
Parent #572 has merged. This PR now targets
mainand 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
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/mainand 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 onmain.cee1db2c56: the merge dropped upstream'slinkedSenderon cross-environment sends (PeerForwardingand "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 thedispatchthat 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
SelectionRestart"a workspace handoff during a run does not leave the run interrupted" (fix(server): successful worktree handoffs complete normally pingdotgg/t3code#24545). Upstream now completes a run when a handoff moves its worktree. The fork's orchestrator still settles that run as interrupted and adds the documented Workspace changed divider (WorkspaceChangeDetach.integration.test.ts,docs/fork-differences.md). Pick one behavior and update the other test.OrchestratorMcpService"a blocking remote delegation cancelled mid-wait wakes its parent" (fix(server): a steer during a delegate_task wait no longer drops the child's result pingdotgg/t3code#27387). The local variant passes. The remote variant times out at 120s even though upstream's lines andremoteTargetare present, so the fork's remote wait path needs debugging.ServerBrowser"a queued recording stop still runs after its deadline". This fork test passes onmainand now fails with "The recording captured no frames." The likely cause is upstream's recording change (fix(server): keep the last page state in agent recordings pingdotgg/t3code#33931).Fails on macOS on upstream's code too; not caused by the merge
pinnedRuntimesymlinked home andManagedProjectFolderssymlinked Scratch. The code is identical to upstream; the temp directory is under/var, which is itself a symlink on macOS.ClaudeSkillssynced namespace. The fixture creates bothpstackandPSTACK, which collide on a case-insensitive disk.Flaky under load:
DeviceHubProxystream 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.