Repository navigation
chore: sync upstream through 07f7f976 - #512
Merged
adampeterhiggins merged 171 commits intoOct 29, 2026
Merged
Conversation
…rom screen effects (pingdotgg#25820) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…otgg#25837) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…otgg#25860) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ingdotgg#25812) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ngdotgg#25882) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…d one (pingdotgg#25839) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…s it unavailable (pingdotgg#25632) Co-authored-by: Theo Browne <me@theo.li>
…otgg#25841) Co-authored-by: jason chien <3936511+jason5545@users.noreply.github.com>
…b checks agent-device 0.21.32 folds the iPhone Duo in Simlock's device set. The folded Duo keeps its side rail inside a thread, so the hide-on-push tab checks only apply to bottom tab bars. The Duo poses stay pending: alert accept cannot see the open-link prompt on the Duo. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…gdotgg#25854) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…derive instead of syncing (pingdotgg#25813) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…effects (pingdotgg#25895) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ingdotgg#25900) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Theo Browne <me@theo.li>
…ount connects (pingdotgg#25868) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…aint (pingdotgg#25909) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ingdotgg#25915) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…wn panel (pingdotgg#25908) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…tgg#25920) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…dropped (pingdotgg#25916) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ingdotgg#25910) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ng (pingdotgg#25903) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…25929) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…otgg#25928) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…otgg#25913) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
pingdotgg#25912) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…rs (pingdotgg#25859) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…n of effects (pingdotgg#25857) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
pingdotgg#25675) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…otgg#25931) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…gdotgg#26326) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…otgg#26323) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…gg#26305) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…tgg#21039) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ed revokes (pingdotgg#26320) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
… and fonts (pingdotgg#26342) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…gdotgg#26330) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…#26345) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…otgg#26343) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…dotgg#26366) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…#26371) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: codex <codex@users.noreply.github.com>
…#26375) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ng changed (pingdotgg#26362) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts: # AGENTS.md # apps/desktop/src/app/DesktopAppActivation.ts # apps/mobile/src/App.tsx # apps/mobile/src/components/ComposerContextSheet.tsx # apps/mobile/src/features/files/thread-file-navigator-pane.tsx # apps/mobile/src/features/home/HomeHeader.android.tsx # apps/mobile/src/features/home/HomeRouteScreen.tsx # apps/mobile/src/features/home/useThreadListActions.ts # apps/mobile/src/features/keyboard/CommandPalette.tsx # apps/mobile/src/features/pull-requests/PullRequestToolbar.android.tsx # apps/mobile/src/features/pull-requests/PullRequestsScreen.tsx # apps/mobile/src/features/settings/SettingsProjectOverviewRouteScreen.tsx # apps/mobile/src/features/settings/SettingsServerControlsRouteScreen.tsx # apps/mobile/src/features/threads/ComposerCommandPopover.tsx # apps/mobile/src/features/threads/SubagentRow.tsx # apps/mobile/src/features/threads/ThreadAgentsSheet.tsx # apps/mobile/src/features/threads/ThreadArrangementSheet.tsx # apps/mobile/src/features/threads/ThreadComposer.tsx # apps/mobile/src/features/threads/ThreadDetailScreen.tsx # apps/mobile/src/features/threads/ThreadFeed.tsx # apps/mobile/src/features/threads/ThreadPullRequestsSheet.tsx # apps/mobile/src/features/threads/thread-list-v2-items.tsx # apps/mobile/src/features/threads/thread-subagent-group.tsx # apps/mobile/src/features/threads/threadListV2.ts # apps/mobile/src/features/threads/use-composer-command-menu.ts # apps/mobile/src/features/threads/useLinkedPullRequestActions.ts # apps/mobile/src/features/threads/useThreadHeaderOptions.tsx # apps/mobile/src/features/usage/UsageRouteScreen.tsx # apps/mobile/src/features/workspace/WorkspaceToolbar.tsx # apps/mobile/src/lib/composerChipPresentation.test.ts # apps/mobile/src/lib/composerContext.test.ts # apps/mobile/src/lib/markdownDocument.ts # apps/mobile/src/native/EnrichedMarkdownText.tsx # apps/mobile/src/native/NativeHeaderToolbar.tsx # apps/mobile/src/state/queries.ts # apps/mobile/src/state/thread-list-environments.ts # apps/mobile/src/state/thread-order.ts # apps/mobile/src/state/use-pending-new-tasks.ts # apps/server/src/auth/RpcAuthorization.test.ts # apps/server/src/auth/RpcAuthorization.ts # apps/server/src/auth/http.ts # apps/server/src/cli/thread.ts # apps/server/src/cloud/selfUpdate.test.ts # apps/server/src/cloud/selfUpdate.ts # apps/server/src/mcp/McpHttpServer.test.ts # apps/server/src/mcp/McpHttpServer.ts # apps/server/src/mcp/OrchestratorMcpService.test.ts # apps/server/src/mcp/OrchestratorMcpService.ts # apps/server/src/mcp/OrchestratorMcpToolkit.integration.test.ts # apps/server/src/mcp/TaskCancelNativeSubagent.integration.test.ts # apps/server/src/mcp/toolkits/core.test.ts # apps/server/src/mcp/toolkits/orchestrator/handlers.ts # apps/server/src/mcp/toolkits/orchestrator/tools.test.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/mcp/toolkits/project/tools.ts # apps/server/src/orchestration-v2/Adapters/ClaudeAdapterV2.ts # apps/server/src/orchestration-v2/Adapters/CodexAdapterV2.ts # apps/server/src/orchestration-v2/Orchestrator.ts # apps/server/src/orchestration-v2/ProjectionStore.ts # apps/server/src/orchestration-v2/ProviderRuntimeRecoveryService.test.ts # apps/server/src/orchestration-v2/ProviderTurnStartService.ts # apps/server/src/orchestration-v2/ThreadLaunchService.ts # apps/server/src/orchestration-v2/ThreadManagementService.test.ts # apps/server/src/orchestration-v2/ThreadManagementService.ts # apps/server/src/orchestration-v2/WireProjection.ts # apps/server/src/project/ProjectSetupScriptRunner.test.ts # apps/server/src/provider/agentContextBudget.json # apps/server/src/server.ts # apps/server/src/terminal/Manager.ts # apps/server/src/ws.ts # apps/web/src/AppRoot.tsx # apps/web/src/components/ChatMarkdown.tsx # apps/web/src/components/ChatView.tsx # apps/web/src/components/CommandPalette.tsx # apps/web/src/components/ComposerPromptEditor.tsx # apps/web/src/components/ComposerPromptEditorTiptap.tsx # apps/web/src/components/ContextChip.tsx # apps/web/src/components/GitActionsControl.tsx # apps/web/src/components/LegacySidebar.tsx # apps/web/src/components/RightPanelTabs.tsx # apps/web/src/components/Sidebar.logic.test.ts # apps/web/src/components/Sidebar.logic.ts # apps/web/src/components/Sidebar.tsx # apps/web/src/components/ThreadContextChip.tsx # apps/web/src/components/ThreadNotificationCoordinator.tsx # apps/web/src/components/ThreadStatusIndicators.tsx # apps/web/src/components/chat/AssistantCitationChip.tsx # apps/web/src/components/chat/ChatComposer.tsx # apps/web/src/components/chat/ChatHeader.tsx # apps/web/src/components/chat/ComposerCommandMenu.tsx # apps/web/src/components/chat/ComposerPrimaryActions.tsx # apps/web/src/components/chat/MarkdownFileLink.tsx # apps/web/src/components/chat/MarkdownThreadLink.tsx # apps/web/src/components/chat/MessagesTimeline.logic.ts # apps/web/src/components/chat/MessagesTimeline.tsx # apps/web/src/components/chat/ModelPickerSidebar.tsx # apps/web/src/components/chat/QueuedRunsControl.tsx # apps/web/src/components/chat/ThreadActivityBanners.tsx # apps/web/src/components/chat/ThreadDetailsPanel.tsx # apps/web/src/components/chat/ThreadDetailsPrRows.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/V2ItemInspector.tsx # apps/web/src/components/chat/V2LifecycleRow.tsx # apps/web/src/components/chat/WorkLog.tsx # apps/web/src/components/chat/timelineMinimapItems.ts # apps/web/src/components/chat/timelineScrollAnchoring.test.tsx # apps/web/src/components/chat/useComposerContextImport.ts # apps/web/src/components/chat/useComposerMenuItems.ts # apps/web/src/components/chat/useComposerSend.ts # apps/web/src/components/chat/useQueuedRunEdit.ts # apps/web/src/components/chat/useRightPanelActions.ts # apps/web/src/components/chat/useThreadLifecycle.tsx # apps/web/src/components/composerContextPresentation.tsx # apps/web/src/components/contextChipParts.tsx # apps/web/src/components/contextPresentationRegistry.ts # apps/web/src/components/pullRequest/ThreadPullRequestsPanel.tsx # apps/web/src/components/settings/AddEnvironmentDialog.tsx # apps/web/src/components/settings/ResourceTelemetryDiagnostics.logic.ts # apps/web/src/components/settings/ResourceTelemetryDiagnostics.tsx # apps/web/src/components/settings/SettingsPanels.tsx # apps/web/src/components/sidebar/SidebarThreadRow.tsx # apps/web/src/composerDraftStore.ts # apps/web/src/environments/primary/index.ts # apps/web/src/hooks/useThreadActionMenu.test.ts # apps/web/src/hooks/useThreadActionMenu.ts # apps/web/src/index.css # apps/web/src/lib/openPullRequestLink.ts # apps/web/src/routes/__root.tsx # apps/web/src/state/entities.ts # apps/web/src/uiStateStore.test.ts # apps/web/src/uiStateStore.ts # docs/README.md # docs/user/composer.md # packages/client-runtime/package.json # packages/client-runtime/src/composerThreadItems.test.ts # packages/client-runtime/src/composerThreadItems.ts # packages/client-runtime/src/handoff.test.ts # packages/client-runtime/src/handoff.ts # packages/client-runtime/src/state/sharedSettings.test.ts # packages/client-runtime/src/state/sharedSettings.ts # packages/client-runtime/src/state/sourceControl.ts # packages/client-runtime/src/state/threadCommands.ts # packages/client-runtime/src/state/threadSnapshotHttp.ts # packages/contracts/src/clientRpcPermissions.ts # packages/contracts/src/composerContext.test.ts # packages/contracts/src/composerContext.ts # packages/contracts/src/environmentHttp.ts # packages/contracts/src/ipc.ts # packages/contracts/src/orchestrationV2.ts # packages/contracts/src/providerRuntime.ts # packages/contracts/src/providerSetup.ts # packages/contracts/src/rpc.ts # packages/contracts/src/settings.ts # packages/provider-cursor/src/server/adapter.test.ts # packages/shared/src/composerContextLegacySend.ts # packages/shared/src/composerContextReferences.ts # packages/shared/src/composerPullRequestMatches.test.ts # packages/shared/src/composerPullRequestMatches.ts # packages/shared/src/keybindings.ts # packages/source-control-definitions/src/composerContextReferences.test.ts # scripts/effect-budget.json # vite.config.ts
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
This sync adds 170 upstream commits through
07f7f976097b56450364fe136aac9253f4f7d8e1.New features
Fixes
Notable internal and provider changes
Discord announcements were not used: the requested channel returned only five non-announcement messages dated October 20, before this commit range; there were no matching crossposts or embeds.
Exact upstream commits added by this PR
07f7f97609ci(release): releases stop depending on npm and nodejs.org when nothing changed (ci(release): releases stop depending on npm and nodejs.org when nothing changed pingdotgg/t3code#26362)c677d5fc45fix(web): scroll-to-end button no longer jumps up and down (fix(web): scroll-to-end button no longer jumps up and down pingdotgg/t3code#26375)4c9c7d0bb6chore(mobile): bump app version to 2.2.0be2ea30d2bfix(build): keep effect out of the public-config bootstrap (fix(build): keep effect out of the public-config bootstrap pingdotgg/t3code#26371)975b3dc568fix(client-runtime): keep subagent questions off parent threads (fix(client-runtime): keep subagent questions off parent threads pingdotgg/t3code#26367)cb4fe60a4bfix(web): show the thread details tooltip (fix(web): show the thread details tooltip pingdotgg/t3code#24864)dac58fa7a6fix(web): use neutral indicators for inactive source control providers (fix(web): use neutral indicators for inactive source control providers pingdotgg/t3code#22778)a4e1986585docs: T3 Chat Pro and Premier raise the T3 Connect tunnel limit (docs: T3 Chat Pro and Premier raise the T3 Connect tunnel limit pingdotgg/t3code#26366)f17c9d202bfix(models): new Claude threads default to Opus 5.5 (fix(models): new Claude threads default to Opus 5.5 pingdotgg/t3code#26358)10e709c337fix(queued-message): avoid duplicate queued message entries (fix(queued-message): avoid duplicate queued message entries pingdotgg/t3code#26355)9bc4138923refactor: flatten nested call chains (refactor: flatten nested call chains pingdotgg/t3code#26350)ff424802edfeat(web): mark PR files viewed with shift-click (feat(web): mark PR files viewed with shift-click pingdotgg/t3code#26349)c3f5e363e5fix(server): avoid replaying stale Codex usage limits (fix(server): avoid replaying stale Codex usage limits pingdotgg/t3code#26331)cfc8be97d7ci: a stalled Node.js download retries after 2 minutes, not 10 (ci: a stalled Node.js download retries after 2 minutes, not 10 pingdotgg/t3code#26343)441a4ebd65feat(web): open tool call diffs in the diff panel (feat(web): open tool call diffs in the diff panel pingdotgg/t3code#26304)990e9e06e5fix(web): preserve handoffs before superseded attempt folds (fix(web): preserve handoffs before superseded attempt folds pingdotgg/t3code#26333)ce66aab13fci(release): Windows CLI builds retry the Node.js download (ci(release): Windows CLI builds retry the Node.js download pingdotgg/t3code#26345)2349c81afcrefactor(mobile): app link parsing reads top to bottom with pipe (refactor(mobile): app link parsing reads top to bottom with pipe pingdotgg/t3code#26330)cadbdafc06test(web): attachment preview tests wait long enough for cold workers and fonts (test(web): attachment preview tests wait long enough for cold workers and fonts pingdotgg/t3code#26342)9ebca5f71cfix(relay): tunnel limit counts abandoned reprovisions and frees failed revokes (fix(relay): tunnel limit counts abandoned reprovisions and frees failed revokes pingdotgg/t3code#26320)4e4d4ba395feat(web): boring sidebar groups threads into project folders (feat(web): boring sidebar groups threads into project folders pingdotgg/t3code#21039)f6d3700ac3ci: server test shards survive a throttled task cache (ci: server test shards survive a throttled task cache pingdotgg/t3code#26332)a9418a1206ci(release): releases no longer reinstall Vite+ in every job (ci(release): releases no longer reinstall Vite+ in every job pingdotgg/t3code#26305)50d3a31ffdfix: guests see the screenshots the agent shows in its replies (fix: guests see the screenshots the agent shows in its replies pingdotgg/t3code#26323)0deb383709test(mobile): pairing link test runs the app's real link parsing (test(mobile): pairing link test runs the app's real link parsing pingdotgg/t3code#26326)8e76f945d2feat(relay): T3 Chat Pro and Premier accounts get more tunnels (feat(relay): T3 Chat Pro and Premier accounts get more tunnels pingdotgg/t3code#25931)c0f9e36184fix(mobile): pairing deep links can no longer target a saved environment (fix(mobile): pairing deep links can no longer target a saved environment pingdotgg/t3code#26318)feb2e32de6fix(web): align sidebar button geometry with shared tokens (fix(web): align sidebar button geometry with shared tokens pingdotgg/t3code#22287)003ccd336dfix(client-runtime): pairing links can no longer add routes to a saved environment (fix(client-runtime): pairing links can no longer add routes to a saved environment pingdotgg/t3code#26178)9bc0419cc0fix(relay): concurrent link requests can no longer exceed the managed tunnel limit (fix(relay): concurrent link requests can no longer exceed the managed tunnel limit pingdotgg/t3code#26186)feb49e78d0fix(web): let theme color pickers use popover glass (fix(web): let theme color pickers use popover glass pingdotgg/t3code#22348)9b052a2d5bfix(web): show the platform modifier in the send tooltip (fix(web): show the platform modifier in the send tooltip pingdotgg/t3code#22436)1f8530ec3cfeat(web): pending approvals show on their timeline row (feat(web): pending approvals show on their timeline row pingdotgg/t3code#26255)8031991591fix(opencode): subagent sessions follow runtime mode changes (fix(opencode): subagent sessions follow runtime mode changes pingdotgg/t3code#26302)49582b7b2atest(web): attachment font and large-text preview tests wait for the real load (test(web): attachment font and large-text preview tests wait for the real load pingdotgg/t3code#26314)afc233492dfix(web): prevent image thumbnails from warping during repaints (fix(web): prevent image thumbnails from warping during repaints pingdotgg/t3code#26308)cafdcdaacdfix(clients): give image attachment chips a blue accent (fix(clients): give image attachment chips a blue accent pingdotgg/t3code#26306)9c6429d74bfix(web): threads without a project start on the primary environment (fix(web): threads without a project start on the primary environment pingdotgg/t3code#26301)28da8c84fffix(mobile): sidebar connection status uses the header's free width (fix(mobile): sidebar connection status uses the header's free width pingdotgg/t3code#26266)c4606e564dfix(server): Codex shadow homes share thread writer locks with the main home (fix(server): Codex shadow homes share thread writer locks with the main home pingdotgg/t3code#26286)9a8bc042d0test(task-cache): remove flaky native runner integration test3ef1610079fix(web): compaction row says "Compacting for 12s" instead of "after being idle" (fix(web): compaction row says "Compacting for 12s" instead of "after being idle" pingdotgg/t3code#26299)822fc156d8fix(relay): deploys plan again after the Worker lost its default export (fix(relay): deploys plan again after the Worker lost its default export pingdotgg/t3code#26303)9910c0e874perf: reduce remote reconnect and command delays (perf: reduce remote reconnect and command delays pingdotgg/t3code#25754)ff71186669test(mobile): vp run mobile:behavior grades app behavior on pool devices0c80751701feat: sign in to GitHub through the T3 Code for GitHub app [internal testing only] (feat: sign in to GitHub through the T3 Code for GitHub app [internal testing only] pingdotgg/t3code#26245)49a9e80e0bfix(terminal): keep shared terminal grids in sync (fix(terminal): keep shared terminal grids in sync pingdotgg/t3code#24352)fe55faf379fix(clients): # suggestions put linked pull requests first for text queries (fix(clients): # suggestions put linked pull requests first for text queries pingdotgg/t3code#26269)c2fbf0a524feat(server,web,mobile): thread links name their environment and never a title (feat(server,web,mobile): thread links name their environment and never a title pingdotgg/t3code#26239)949929dda5fix(mobile): Android split content keeps a gap at the screen edge (fix(mobile): Android split content keeps a gap at the screen edge pingdotgg/t3code#26276)f120c51134fix(mobile): list bullets keep a gap before their text at every text size (fix(mobile): list bullets keep a gap before their text at every text size pingdotgg/t3code#26268)8947f3e353fix(web): server rows keep their source visible, cmd-click opens your browser (fix(web): server rows keep their source visible, cmd-click opens your browser pingdotgg/t3code#26267)36aea583bbfix(mobile): trust user-installed Android CA certificates (fix(mobile): trust user-installed Android CA certificates pingdotgg/t3code#25730)7c6446b81achore(mobile): e2e review skips behaviour confirmed as intended91992bd5d4fix(web): update dialog shows one row per machine (fix(web): update dialog shows one row per machine pingdotgg/t3code#26210)2de4762e4bfix(mobile): tab bar hides with the push, logo fits the iPad sidebar, Android rail holds still (fix(mobile): tab bar hides with the push, logo fits the iPad sidebar, Android rail holds still pingdotgg/t3code#26241)e0b3cfe666fix(web): image and file chips underline their name on hover again (fix(web): image and file chips underline their name on hover again pingdotgg/t3code#26252)67661cfbb5chore: delete 18k lines of code that nothing reaches (chore: delete 18k lines of code that nothing reaches pingdotgg/t3code#26238)3b2f958603fix(server): ACP Registry searches reuse a recently fetched index (fix(server): ACP Registry searches reuse a recently fetched index pingdotgg/t3code#26248)4b00290ef0fix(server): delegate cgroups to agent scopes (fix(server): delegate cgroups to agent scopes pingdotgg/t3code#23913)9638e17835fix(relay): tunnel cleanup keeps up with new idle tunnels (fix(relay): tunnel cleanup keeps up with new idle tunnels pingdotgg/t3code#26135)c3b40b97f7fix(relay): stop delivery attempts from growing the database forever (fix(relay): stop delivery attempts from growing the database forever pingdotgg/t3code#26141)93a9e079b1feat(threads): choose your own snooze options in settings (feat(threads): choose your own snooze options in settings pingdotgg/t3code#26208)e2a8ef0174feat(dev): test turns in the UI for free with a replay provider (feat(dev): test turns in the UI for free with a replay provider pingdotgg/t3code#26207)575a03f7d0chore(review): Macroscope check agents move to GPT 6.1 Sol (chore(review): Macroscope check agents move to GPT 6.1 Sol pingdotgg/t3code#26187)2525252c96feat(web): F6 moves between workspace areas, and the sidebar is keyboard navigable (feat(web): F6 moves between workspace areas, and the sidebar is keyboard navigable pingdotgg/t3code#25877)7a059b906echore(mobile): e2e treats a failed daemon read as a pool error82515785bbfix(server): Antigravity file writes cannot escape the workspace through a linked ancestor (fix(server): Antigravity file writes cannot escape the workspace through a linked ancestor pingdotgg/t3code#26184)b5af4608cafix(opencode): apply runtime mode changes to existing OpenCode sessions (fix(opencode): apply runtime mode changes to existing OpenCode sessions pingdotgg/t3code#26182)5cf49d2ffdfix(mobile): unclosed code fences in HTML blocks no longer freeze PR overviews (fix(mobile): unclosed code fences in HTML blocks no longer freeze PR overviews pingdotgg/t3code#26179)0affd28db2feat(web,mobile): Copy thread copies a chip that works on linked machines (feat(web,mobile): Copy thread copies a chip that works on linked machines pingdotgg/t3code#26202)4ab7084aa7feat(web,mobile): the @ picker lists threads on linked machines (feat(web,mobile): the @ picker lists threads on linked machines pingdotgg/t3code#26201)2e2d86cd6fchore(mobile): e2e Metro serves no lazy chunksdf4132b040chore(mobile): e2e runs keep Metro's output, the app's console logs, as metro.log7f2dcd8e6efix(mobile): dictation buttons line up with the send button on every composer (fix(mobile): dictation buttons line up with the send button on every composer pingdotgg/t3code#26231)7e713926cdfeat(web): background work line shows the newest activity, no dots (feat(web): background work line shows the newest activity, no dots pingdotgg/t3code#25299)06d4b57fa6fix(web): composer strip drops the folder icon next to the machine icon (fix(web): composer strip drops the folder icon next to the machine icon pingdotgg/t3code#26158)68495b641bdocs(testing): new tests extend existing cases and stay at one layer (docs(testing): new tests extend existing cases and stay at one layer pingdotgg/t3code#26166)531cee6f16fix(server): Claude background-task wakes start when the queue is held (fix(server): Claude background-task wakes start when the queue is held pingdotgg/t3code#17885)0894156d9afix(mobile): provider accounts fit each provider on one row (fix(mobile): provider accounts fit each provider on one row pingdotgg/t3code#25861)c38b265adcfeat(web): filter the sidebar by several projects at once (feat(web): filter the sidebar by several projects at once pingdotgg/t3code#25284)c570c2cd5cfix(mobile): keep iPad tab bar within narrow sidebars (fix(mobile): keep iPad tab bar within narrow sidebars pingdotgg/t3code#26198)735cc3c0adfix(server): fx's version policy reaches servers with a cached model manifest (fix(server): fx's version policy reaches servers with a cached model manifest pingdotgg/t3code#26199)a846084236fix(server): Forgejo required-check globs no longer hang the event loop (fix(server): Forgejo required-check globs no longer hang the event loop pingdotgg/t3code#26183)7e884b2df6feat: triage an issue from the command palette, no terminal needed (feat: triage an issue from the command palette, no terminal needed pingdotgg/t3code#22753)294981fa72fix(mobile): Windows paths in messages keep their backslashes (fix(mobile): Windows paths in messages keep their backslashes pingdotgg/t3code#21454)3ae672f82efix(desktop): ask once per site before a preview page reads the clipboard (fix(desktop): ask once per site before a preview page reads the clipboard pingdotgg/t3code#26173)b88da91397fix(server): Codex works again after its app-server is killed (fix(server): Codex works again after its app-server is killed pingdotgg/t3code#26188)0b7caf2a19fix(mobile): Android diff ellipsis no longer measures text quadratically (fix(mobile): Android diff ellipsis no longer measures text quadratically pingdotgg/t3code#26174)f0c1da3b5ffix(github): long period runs no longer freeze reference autolinking (fix(github): long period runs no longer freeze reference autolinking pingdotgg/t3code#26177)80b7b0fd23fix(server): repository lookups no longer send GitHub tokens to arbitrary hosts (fix(server): repository lookups no longer send GitHub tokens to arbitrary hosts pingdotgg/t3code#26176)622bc06d8afix(mobile): shared file names can no longer write outside the Android cache (fix(mobile): shared file names can no longer write outside the Android cache pingdotgg/t3code#26175)4fc9e5f2fcfix(web): settings avatar no longer hugs the modal corner (fix(web): settings avatar no longer hugs the modal corner pingdotgg/t3code#26180)34ca613908chore(lint): the effect lint error walks the alternatives before the suppression (chore(lint): the effect lint error walks the alternatives before the suppression pingdotgg/t3code#26181)867112cda0fix(server): agent questions stay answerable after a server restart (fix(server): agent questions stay answerable after a server restart pingdotgg/t3code#19229)cb7e3814d7chore(mobile): e2e runner retries pool failures and reports them apart from app failuresdde3fdb5a6feat(desktop): add a remote server by clicking its t3code://pair link (feat(desktop): add a remote server by clicking its t3code://pair link pingdotgg/t3code#24111)e66ffccf49perf(web): stop measuring table cells while replies stream (perf(web): stop measuring table cells while replies stream pingdotgg/t3code#26152)0637f876fctest(server): the link-card retry test names a new MCP credential (test(server): the link-card retry test names a new MCP credential pingdotgg/t3code#26143)33d0c9637bchore(lint): every React effect states its reason at the call site (chore(lint): every React effect states its reason at the call site pingdotgg/t3code#26161)4cb5f108fffix(task-cache): the hook test waits for every flusher it starts (fix(task-cache): the hook test waits for every flusher it starts pingdotgg/t3code#26148)3b22620a5cfix(server): parallel worktree launches no longer fail on .git/config lock (fix(server): parallel worktree launches no longer fail on .git/config lock pingdotgg/t3code#25700)1cf14a498ffix(web): pairing, connect, error, and Clerk sign-in surfaces match the app's dialog style (fix(web): pairing, connect, error, and Clerk sign-in surfaces match the app's dialog style pingdotgg/t3code#25281)8f0b729faffix(preview): agent and browser panel show the same page after a late desktop attach (fix(preview): agent and browser panel show the same page after a late desktop attach pingdotgg/t3code#22877)b31de684d2feat(web,mobile): queued messages show who sent them (feat(web,mobile): queued messages show who sent them pingdotgg/t3code#26159)f08136d42dfix(web): composer no longer jumps when a second line is added (fix(web): composer no longer jumps when a second line is added pingdotgg/t3code#26155)a27ec88bfafeat(server,web): see and stop the dev servers a thread started (feat(server,web): see and stop the dev servers a thread started pingdotgg/t3code#22542)8d94203c17fix(server): Claude --settings launch args merge with T3's settings instead of being dropped (fix(server): Claude --settings launch args merge with T3's settings instead of being dropped pingdotgg/t3code#22864)5b70d81b0dfeat(mobile): browse ZIP attachments with the shared archive reader (feat(mobile): browse ZIP attachments with the shared archive reader pingdotgg/t3code#19463)bbd9593973feat(web): channel artwork choice on Latest, plus nightly or dev art on any channel (feat(web): channel artwork choice on Latest, plus nightly or dev art on any channel pingdotgg/t3code#26138)fe0e8d4ee1fix(mobile): dragging a microphone or environment route now saves its new place (fix(mobile): dragging a microphone or environment route now saves its new place pingdotgg/t3code#26096)5e9d56416ffeat(server,web,mobile): @-mention a machine, and linked environments become a Labs beta (feat(server,web,mobile): @-mention a machine, and linked environments become a Labs beta pingdotgg/t3code#17130)8b14660b27feat(server,web,mobile): an agent sets up a link to another environment (feat(server,web,mobile): an agent sets up a link to another environment pingdotgg/t3code#17129)594f1ce2ebfeat(server): delegate_task to a linked environment (feat(server): delegate_task to a linked environment pingdotgg/t3code#16719)a6676f9a13feat(web,mobile): linked environments in Connections (feat(web,mobile): linked environments in Connections pingdotgg/t3code#16698)6918c35a36feat(server): work a linked environment starts stays within its link (feat(server): work a linked environment starts stays within its link pingdotgg/t3code#16695)cb988502aafeat(server): agents use linked environments through any T3 tool (feat(server): agents use linked environments through any T3 tool pingdotgg/t3code#16684)4005759adffeat(server): link to another environment (feat(server): link to another environment pingdotgg/t3code#16655)888e444c1afeat(server): t3_thread_launch takes clientRequestId (feat(server): t3_thread_launch takes clientRequestId pingdotgg/t3code#16654)1b1ad0466dfeat(server): /mcp narrows a client's modes from T3-Mode-Limit (feat(server): /mcp narrows a client's modes from T3-Mode-Limit pingdotgg/t3code#16653)5808469018fix(web): chip palette test follows the single design (fix(web): chip palette test follows the single design pingdotgg/t3code#26131)570d4b03eefeat(mobile): report crashes to Axiom with symbolicated stacks (feat(mobile): report crashes to Axiom with symbolicated stacks pingdotgg/t3code#19093)73acddc2a1fix(mobile): switching pull request tabs no longer jumps the page (fix(mobile): switching pull request tabs no longer jumps the page pingdotgg/t3code#26064)4914cdd98ffix(web): chips drop their pill and stay readable on every theme (fix(web): chips drop their pill and stay readable on every theme pingdotgg/t3code#25066)07242abff3fix(server): recover handoffs when target context is exhausted (fix(server): recover handoffs when target context is exhausted pingdotgg/t3code#25610)740de0e642fix(server): retry Codex capacity failures with empty input (fix(server): retry Codex capacity failures with empty input pingdotgg/t3code#25611)02329327c6fix(clients): prompt links find projects cloned from git.cafe (fix(clients): prompt links find projects cloned from git.cafe pingdotgg/t3code#26042)a56ecdafa7fix(mobile): snooze menu times advance with the clock (fix(mobile): snooze menu times advance with the clock pingdotgg/t3code#26043)76d5ec7a22fix(mobile): a pairing link fills the open Add environment form instead of stacking another (fix(mobile): a pairing link fills the open Add environment form instead of stacking another pingdotgg/t3code#26052)d1c4b52b7crefactor(mobile): stop writing the resolved project filter back from an effect (refactor(mobile): stop writing the resolved project filter back from an effect pingdotgg/t3code#26049)bc1ea26cc0chore(infra): bump Alchemy to 2.0.0-beta.84 (chore(infra): bump Alchemy to 2.0.0-beta.84 pingdotgg/t3code#26057)3a87681d95fix(gitcafe): PR panel follows renumbered pull requests (fix(gitcafe): PR panel follows renumbered pull requests pingdotgg/t3code#26079)9ff05979eefeat(mobile): Usage uses the width on iPad and unfolded phones (feat(mobile): Usage uses the width on iPad and unfolded phones pingdotgg/t3code#26061)7b4c4b423crefactor(web): the upload queue alone records finished file uploads on drafts (refactor(web): the upload queue alone records finished file uploads on drafts pingdotgg/t3code#26050)03186e0374perf(mobile): project favicons mount their image in one commit (perf(mobile): project favicons mount their image in one commit pingdotgg/t3code#26047)6369e284d7refactor(web): install draft model reconciliation at app start (refactor(web): install draft model reconciliation at app start pingdotgg/t3code#26046)21762b5d4drefactor(web): pull requests Cmd+F focuses the topbar search directly (refactor(web): pull requests Cmd+F focuses the topbar search directly pingdotgg/t3code#26045)d0b81ceb6efix(web): closing the last Browser tab hides the right panel again (fix(web): closing the last Browser tab hides the right panel again pingdotgg/t3code#26058)2ba1a09dcbfix(mobile): keep the collapsed Android rail square (fix(mobile): keep the collapsed Android rail square pingdotgg/t3code#26039)5b15cfc1e8fix(mobile): center Android sheets and fit book-mode sheets in the left pane (fix(mobile): center Android sheets and fit book-mode sheets in the left pane pingdotgg/t3code#18492)dc84b0962efeat(mobile): add One UI navigation preference on Android (feat(mobile): add One UI navigation preference on Android pingdotgg/t3code#25758)36d4d711b7fix(server): bound hung delegated stop effects so later runs can start (fix(server): bound hung delegated stop effects so later runs can start pingdotgg/t3code#25675)e9236274a3refactor(mobile): showcase capture runs as an app service, not a chain of effects (refactor(mobile): showcase capture runs as an app service, not a chain of effects pingdotgg/t3code#25857)a8edf13f99fix(mobile): the Add environment form shows only its own pairing errors (fix(mobile): the Add environment form shows only its own pairing errors pingdotgg/t3code#25859)319c572c96refactor(mobile): git action results buzz from where they are reported (refactor(mobile): git action results buzz from where they are reported pingdotgg/t3code#25912)6dc4842523refactor(web): file tree drag mentions use React drag handlers (refactor(web): file tree drag mentions use React drag handlers pingdotgg/t3code#25913)f41518f3bcci(release): desktop builds that cannot open no longer publish (ci(release): desktop builds that cannot open no longer publish pingdotgg/t3code#25928)30f4d6374aci(web): releases fail when the built web app cannot boot (ci(web): releases fail when the built web app cannot boot pingdotgg/t3code#25929)3087e60fa4fix(desktop): a broken release opens an error window instead of hanging (fix(desktop): a broken release opens an error window instead of hanging pingdotgg/t3code#25903)0d88fcf3d5perf(mobile): worktree setup updates commit the thread screen once (perf(mobile): worktree setup updates commit the thread screen once pingdotgg/t3code#25910)2083a22919fix(web): PR Code tab no longer requests the diff of a commit the PR dropped (fix(web): PR Code tab no longer requests the diff of a commit the PR dropped pingdotgg/t3code#25916)067db24e00refactor(web): preview element picker drops its unmount guard (refactor(web): preview element picker drops its unmount guard pingdotgg/t3code#25920)3e61886a24refactor(web): file browser records the right-click position on its own panel (refactor(web): file browser records the right-click position on its own panel pingdotgg/t3code#25908)a4fe62ecfbrefactor(web): composer overlay re-measures from one layout effect (refactor(web): composer overlay re-measures from one layout effect pingdotgg/t3code#25915)c39a115a14refactor(web): composer clears scroll-collapse in render, not after paint (refactor(web): composer clears scroll-collapse in render, not after paint pingdotgg/t3code#25909)7873f53adafix(web): the Add ChatGPT account dialog animates closed once the account connects (fix(web): the Add ChatGPT account dialog animates closed once the account connects pingdotgg/t3code#25868)1152e9171afix(desktop): run the packaged bundle self-check on macOS artifacts (fix(desktop): run the packaged bundle self-check on macOS artifacts pingdotgg/t3code#25900)58c31f293drefactor(mobile): settings permission and update checks without sync effects (refactor(mobile): settings permission and update checks without sync effects pingdotgg/t3code#25895)79f6cd30c7refactor(mobile): workspace tabs, home filters and connection status derive instead of syncing (refactor(mobile): workspace tabs, home filters and connection status derive instead of syncing pingdotgg/t3code#25813)790ba13d0crefactor(mobile): app update checks start with the app (refactor(mobile): app update checks start with the app pingdotgg/t3code#25856)edf5a24b56refactor(mobile): subagent timers share the visible second clock (refactor(mobile): subagent timers share the visible second clock pingdotgg/t3code#25854)9db3401bdcchore(mobile): e2e runner on agent-device 0.21.32, side-rail aware tab checks7c3b3b3605fix(desktop): packaged server ships zod for @cursor/sdk 1.0.38 (fix(desktop): packaged server ships zod for @cursor/sdk 1.0.38 pingdotgg/t3code#25841)a452c2dfdcfix(mobile): opening a new thread before it is created no longer marks it unavailable (fix(mobile): opening a new thread before it is created no longer marks it unavailable pingdotgg/t3code#25632)00c636e4b0fix(mobile): picking a project on two machines starts on the connected one (fix(mobile): picking a project on two machines starts on the connected one pingdotgg/t3code#25839)63bc022f64fix(web): clicking the device screen no longer draws a focus ring (fix(web): clicking the device screen no longer draws a focus ring pingdotgg/t3code#25882)e109dc8d89refactor(mobile): each new-task draft route keeps its own flow state (refactor(mobile): each new-task draft route keeps its own flow state pingdotgg/t3code#25812)a86c05f977fix(desktop): Cmd/Ctrl+W closes sidebar tabs, never the window (fix(desktop): Cmd/Ctrl+W closes sidebar tabs, never the window pingdotgg/t3code#25860)ad068d7c93fix(web): Steer no longer does nothing while a compaction runs (fix(web): Steer no longer does nothing while a compaction runs pingdotgg/t3code#25837)52925f9e98refactor(mobile): prompt links resolve when the link is parsed, not from screen effects (refactor(mobile): prompt links resolve when the link is parsed, not from screen effects pingdotgg/t3code#25820)Merge scope
Base:
origin/mainat71a2c0552d23d5de38c1e5592a7f5060054ea2c4. No open upstream-sync PR existed when this run started. This PR merges the pinned upstream commit with--no-ff; no rebase, cherry-pick, or changes to another sync branch.Upstream range:
71a2c0552d23d5de38c1e5592a7f5060054ea2c4..07f7f976097b56450364fe136aac9253f4f7d8e1.Conflict resolution and fork preservation
docs/fork-differences.mdto describe the project-folder view.The initial ancestry comparison was 564 fork-only / 170 upstream-only commits. The final pre-push refresh found no open sync PRs, an unchanged
origin/mainbase, and all 170 pinned upstream commits still missing. The fork-only commit log and all source links indocs/fork-differences.mdwere reviewed; no fork feature section was removed as adopted upstream.Split/deletion audit
ProviderTurnStartService.ts:a14388d26dsubscription guard remains;d42edbbfd4linked-checkout prompt andadditionalDirectoriesmoved into upstream's earlier turn-start location;82d8dce7c3/38ebd51017control/import paths remain called.ProjectionStore.ts: upstream's uncalled memory layer was removed; the SQL implementation retains11058b7fd1automation/scheduled-task identity,0e8c7f3d94move blockers,d42edbbfd4linked checkouts, ande483cb0740hidden/group fields.providerRuntime.ts:7392c39657,b2c48292d2, ande2afc1f2f6audited; live usage fields remain, unused legacy event schemas have no callers, and the still-used runtime turn-status type remains exported.a02770d743) retainsloadFullThreadSnapshotand its export-dialog caller; linked numeric PR matching (59754ba356) retains the fork's relocated implementation and tests alongside upstream text-search ranking.Web split/deletion audit
Upstream deletes the uncalled
LegacySidebar.tsxand the twelve-line composer editor re-export. The fork's live sidebar already lives inSidebar.tsxandsidebar/*; its richer composer wrapper remains called byChatComposerandQuickMessagePanel. Fork commits touching those deleted upstream files since the shared merge base were checked against the surviving callers:ad4e011e7b: citation comment destinations remain inComposerPromptEditor,AssistantCitationChip, andCitationDestinationPicker.c460d20a11: the previous sync's restored fork behavior remains on the active composer/sidebar paths; the dead legacy component is removed.931f1663f0: grouped Link actions remain inthreadActionMenu.logicandsidebar/integrationLinks.51201bd32a: Discord actions remain in integration palette/composer handlers and the shared sidebar Link submenu.c673040d0b: Granola remains in the integration context/picker handlers and Link submenu.82d8dce7c3: agent controls and fork workflows remain in shared menus, timeline rewind, inspector, and command palette.1cf0291525: thread groups remain inuseSidebarOrganization,partitionSidebarThreads, menu actions, and search.c1c87684f5:restart-sessionremains in the shared menu builder and sidebar action handler.6ea52f7081: Import conversation remains inCommandPalettewith its import dialog caller.76c1f10c90: split-view actions remain inuseChatViewSplitPane, shared sidebar menus, andCommandPalette.bb287bac98: Linear link/status and picker actions remain in shared integration handlers and menus.a02770d743: Export transcript remains in shared sidebar menus andCommandPalette.8d76e707b7: New tab and Close tab remain in shared sidebar/header menus anduseThreadTabActions.86839d1ff4: grouped rows retainthreadTabGroupTarget/recency selection and the selected tab's title/model/details.7f2ef1d689: workspace sharing, hidden child tabs, group rows, and tab navigation remain in shared tab hooks.The recent fork extractions (
701865a789,21c861c16c,fcaed53677,e440ab7fe6,16d5a7f202,9eaf2ec73a,2494e44278) remain called from the active sidebar, chat view, composer, context preview, and palette; upstream additions were ported onto these components instead of reinstating duplicate implementations. Upstream's model reconciliation now starts fromappInit; queued-edit uploads keep the fork's shared attachment uploader, and persisted multi-project scopes retain both the fork's exported setter and upstream's older-client field.Verification
vp iusing the repository's local Vite+ 1.4.0 (the ambient global CLI is older).target.projectIdrejection and three fork cross-project worktree regressions also passed; the guard preserves the distinction from the fork's top-levelprojectId.ANTHROPIC_API_KEYis not configured.expo-sharingpatch; the staged check excluding that patch passes.No repo-wide checks, browser tests, computer automation, native UI verification, release builds, or releases were run.
check:changedwas replaced by the focused checks above because its sync-wide affected set invokes browser tests, which this run explicitly prohibits. No before/after UI captures were taken for the same reason.Merge with Create a merge commit. It keeps upstream history and the merge base for the next sync.
Model/harness: GPT-6.1 Sol (medium), Codex through T3 Code; push and PR creation finished by Claude Opus 5.5, Claude Code through T3 Code.
🤖 Generated with Claude Code