Skip to content

chore: sync upstream through 07f7f976 - #512

Merged
adampeterhiggins merged 171 commits into
mainfrom
t3code/sync-upstream-2026-10-28-07f7f976
Oct 29, 2026
Merged

adampeterhiggins merged 171 commits into
mainfrom
t3code/sync-upstream-2026-10-28-07f7f976

Conversation

@adampeterhiggins

Copy link
Copy Markdown
Owner

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

Merge scope

Base: origin/main at 71a2c0552d23d5de38c1e5592a7f5060054ea2c4. 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

  • Combined upstream linked-environment, GitHub sign-in, local-server, snooze, and thread-origin contracts with the fork's integration contexts, drafts, checkouts, providers, tabs, groups, and permissions. Preserved upstream history; all resolution changes are part of the merge commit.
  • Retained composer account/model selectors, integration pickers and previews, context imports, drafts, queue controls, quick-message submission, citations, rollback actions, and expanded tool panels while adopting upstream linked-machine chips and tool-diff actions.
  • Ported project-folder/F6 navigation onto the fork's shared sidebar. Removed the uncalled legacy sidebar component, retained shared fork menus/tabs/groups/hiding, and reconciled docs/fork-differences.md to describe the project-folder view.
  • Kept mobile integration/agent/tab controls and Devin account usage within upstream's wider Usage layout and new navigation. Updated imports where upstream extracted UI helpers.
  • Combined server peer-link services and fork integration services. Retained linked-checkout turn prompts, subscription-limit guards, update pause behavior, delegated worktree setup, terminal Python activation, and fork HTTP/MCP entry points. Migrated fork settings/task reads to the first subscription snapshot after upstream removed their unary RPCs.
  • Retained the fork's live usage fields and transcript snapshot loading while accepting deletion of unused legacy runtime-event and compatibility schemas. Ported upstream linked-PR text ranking into the fork's source-control definitions, preserving authority-aware deduplication.

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/main base, and all 170 pinned upstream commits still missing. The fork-only commit log and all source links in docs/fork-differences.md were reviewed; no fork feature section was removed as adopted upstream.

Split/deletion audit

  • ProviderTurnStartService.ts: a14388d26d subscription guard remains; d42edbbfd4 linked-checkout prompt and additionalDirectories moved into upstream's earlier turn-start location; 82d8dce7c3 / 38ebd51017 control/import paths remain called.
  • ProjectionStore.ts: upstream's uncalled memory layer was removed; the SQL implementation retains 11058b7fd1 automation/scheduled-task identity, 0e8c7f3d94 move blockers, d42edbbfd4 linked checkouts, and e483cb0740 hidden/group fields.
  • providerRuntime.ts: 7392c39657, b2c48292d2, and e2afc1f2f6 audited; live usage fields remain, unused legacy event schemas have no callers, and the still-used runtime turn-status type remains exported.
  • Transcript loading (a02770d743) retains loadFullThreadSnapshot and 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.tsx and the twelve-line composer editor re-export. The fork's live sidebar already lives in Sidebar.tsx and sidebar/*; its richer composer wrapper remains called by ChatComposer and QuickMessagePanel. Fork commits touching those deleted upstream files since the shared merge base were checked against the surviving callers:

  • ad4e011e7b: citation comment destinations remain in ComposerPromptEditor, AssistantCitationChip, and CitationDestinationPicker.
  • 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 in threadActionMenu.logic and sidebar/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 in useSidebarOrganization, partitionSidebarThreads, menu actions, and search.
  • c1c87684f5: restart-session remains in the shared menu builder and sidebar action handler.
  • 6ea52f7081: Import conversation remains in CommandPalette with its import dialog caller.
  • 76c1f10c90: split-view actions remain in useChatViewSplitPane, shared sidebar menus, and CommandPalette.
  • bb287bac98: Linear link/status and picker actions remain in shared integration handlers and menus.
  • a02770d743: Export transcript remains in shared sidebar menus and CommandPalette.
  • 8d76e707b7: New tab and Close tab remain in shared sidebar/header menus and useThreadTabActions.
  • 86839d1ff4: grouped rows retain threadTabGroupTarget/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 from appInit; 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

  • Installed the merged lockfile with vp i using the repository's local Vite+ 1.4.0 (the ambient global CLI is older).
  • Focused typechecks passed for contracts, shared, client-runtime, source-control definitions, Cursor, desktop, server, web, and mobile. A final integrated server/web/mobile pass also passed.
  • Shared/contracts/Cursor/source-control logic: 208 tests passed across nine files. Desktop activation/broker: 7 passed. Web logic: 332 passed. Mobile logic: 150 passed.
  • Server focused regressions passed for thread launch, CLI settings/schedules/integrations, MCP metadata/budget/integration/cancel/rollback/spawn, projection/wire behavior, setup runners, update pause, auth/cloud/providers, and thread management. The launch/CLI batch passed 107 tests, projection/MCP batch 91, final metadata/update/thread-management batch 66, and provider registry rerun 50. Five conflict-relevant Claude/Codex adapter cases passed. An initially broader adapter-file run stalled and was stopped; only the targeted adapter coverage is claimed.
  • Final linked-environment/agent-access fixture suite: 53 tests passed across four files. The local target.projectId rejection and three fork cross-project worktree regressions also passed; the guard preserves the distinction from the fork's top-level projectId.
  • Explicit-file formatting/lint checks passed for resolved/shared changes, 221 server files, 81 web files, and 42 mobile files (plus focused final rechecks).
  • MCP worktree-delegation eval dry-run passed. Paid model eval was unavailable because ANTHROPIC_API_KEY is not configured.
  • Resolved files pass whitespace checks. The full staged whitespace check flags only required blank context lines in upstream's unchanged expo-sharing patch; 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:changed was 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

juliusmarminge and others added 30 commits October 27, 2026 02:49
…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>
…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>
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>
…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>
…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>
…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>
t3dotgg and others added 27 commits October 27, 2026 23:29
…otgg#25931)

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>
…#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>
…#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
@adampeterhiggins
adampeterhiggins merged commit d464983 into main Oct 29, 2026
@adampeterhiggins
adampeterhiggins deleted the t3code/sync-upstream-2026-10-28-07f7f976 branch October 29, 2026 10:01
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.