Skip to content

chore: merge upstream/main into fork (2026-11-02) - #532

Merged
adampeterhiggins merged 190 commits into
mainfrom
t3code/sync-upstream-2026-11-02-0930
Nov 2, 2026
Merged

adampeterhiggins merged 190 commits into
mainfrom
t3code/sync-upstream-2026-11-02-0930

Conversation

@adampeterhiggins

@adampeterhiggins adampeterhiggins commented Nov 2, 2026 •

Copy link
Copy Markdown
Owner

What's in this sync

New features:

Fixes:

  • Improve desktop startup and image save/copy support, Android attachments and composer layout, settings search, scroll preservation, and completion sounds.
  • Correct Claude session isolation, compaction/revert behavior, Stop and linked retry state, remote update handling, and usage accounting.

Provider and internal changes:

Discord announcements were not used: the channel returned no matching announcement crossposts (only October 20 non-crosspost messages).

Complete upstream commit list (187 commits)

Merge scope

Base: 2c350654628883fd9fc2ed84486fc3b3b933ded2 (main). No parent sync PR.
Pinned upstream range: 2c350654628883fd9fc2ed84486fc3b3b933ded2..47f2c8d29e981c7723467efe137ee19e91df924e.

Before merging, the fork had 591 fork-only commits and 187 upstream-only commits.

Merged with --no-ff, preserving upstream history and fork behavior. No unfinished earlier run required takeover. After committing the pinned upstream merge, merged the updated fork main with --no-ff to include concurrent quick-message changes.

Conflict resolutions

  • Preserve fork providers, per-account auth/usage, model/account/workspace markers, groups, hiding, scheduling and drafts alongside upstream policies, tags and approvals.
  • Port provider SDK consumers to upstream lazy loading; combine fork usage fixtures with upstream catalog requests.
  • Keep fork thread-search group fields in upstream cached search fields.
  • Keep fork runtime guidance with upstream session-level instruction deduplication.
  • No upstream file splits in the conflicted client/server files.

The maintainer subsequently synced the Claude entrypoint change in #533. Rebased with merge preservation onto that updated main; retained the original upstream commit identities and existing resolutions. The final file tree is identical to the fully verified pre-rebase tree. The upstream commit list includes the original entrypoint commit for ancestry, but its behavior is already present in the base.

Verification

  • Contracts, shared, client-runtime, provider-core, provider-acp and provider-cursor typechecks passed; 229 focused package tests passed.
  • Server typecheck and 163 focused tests passed.
  • Web typecheck and 238 focused tests passed.
  • Mobile typecheck and 75 tests passed; desktop typecheck and 14 window tests passed.
  • Resolved-file formatting/lint and whitespace checks passed.
  • After rebase: 24 focused Claude Home/Skills tests and server typecheck passed; tree equality and both main/upstream ancestry verified.
  • MCP model eval attempted but could not run: ANTHROPIC_API_KEY unavailable.
  • Catch-up verification: web/mobile/desktop typechecks, 60 web tests and 133 desktop/shared tests passed.
  • Final vp run check:changed passed: 373 test files, 7,856 tests passed (18 skipped); 39 package typechecks; 171 changed-file React compiler checks; Node tests; formatting, lint, both knip passes, GraphQL and dependency patch validation.
  • The first broad pass exposed stale onboarding/tooltip mocks and an August Cursor usage fixture outside the 90-day retention window. Corrected the mocks and pinned the existing fixture clock; all passed on rerun.
  • No manual browser/computer automation, merge, or release.

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

Model: GPT-6.1 Sol. Harness: Codex in T3 Code.

Yash-Singh1 and others added 30 commits November 1, 2026 03:56
…8593)

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

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

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
…gdotgg#27197)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Matthew Feroz <136640686+MatthewFeroz@users.noreply.github.com>
Co-authored-by: Theo Browne <me@t3.gg>
Co-authored-by: Adamulek123 <adam.bogucki2018@gmail.com>
Co-authored-by: maria-rcks <maria@kuuro.net>
Co-authored-by: hbw00111 <196409728+hbw00111@users.noreply.github.com>
Co-authored-by: maria-rcks <maria@kuuro.net>
…dotgg#14989)

Co-authored-by: SAPHID <saphid@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
…gdotgg#18416)

Co-authored-by: SAPHID <saphid@users.noreply.github.com>
Co-authored-by: GPT-6.1 Sol <noreply@openai.com>
Co-authored-by: SAPHID <saphid@users.noreply.github.com>
Co-authored-by: GPT-6.1 Sol <noreply@openai.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
…g#22022)

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: SAPHID <saphid@users.noreply.github.com>
…mments" (pingdotgg#22926)

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

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: maria-rcks <maria@kuuro.net>
)

Co-authored-by: maria-rcks <maria@kuuro.net>
Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>
…ngdotgg#24005)

Co-authored-by: maria-rcks <maria@kuuro.net>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Yash-Singh1 and others added 27 commits November 1, 2026 21:22
…r Escape (pingdotgg#28298)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: maria-rcks <maria@kuuro.net>
Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com>
Co-authored-by: PR Batch Tester <agent@local.test>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…e Mode (pingdotgg#29026)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ct (pingdotgg#29068)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…is slow on a loaded host (pingdotgg#28201)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
… reseller marks them up (pingdotgg#28004)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…er update (pingdotgg#27992)

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>
…28995)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
… work (pingdotgg#28629)

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

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…server (pingdotgg#29127)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Completion alerts waited two seconds after the client received a completed thread state. Audio was also fetched and decoded only when an alert needed to play, adding a first-play delay.

Notify immediately when the thread shell reports completion, and preload both sounds when a user gesture unlocks audio. Keep completion deduplication and suppression for existing, archived, and stopped runs.

This intentionally removes the continuation grace for completion alerts. A completed run can now notify before an automatic continuation starts. The sidebar's two-second placement grace and server settlement behavior remain in place.

Validation: `vp run check:changed` passes after merging current main, including 40 affected tests, formatting, lint, unused-code checks, affected typechecks, and React compiler checks. Tests cover immediate completion, duplicate suppression across reconnects, preloaded audio reuse, and retrying failed loads on alerts without retrying on every gesture. Audible timing has not been verified in a live client.

Model: GPT 6.1 Sol. Harness: Codex through T3 Code.
…unched T3 (pingdotgg#29169)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts:
#	apps/desktop/src/ipc/methods/window.test.ts
#	apps/desktop/src/main.ts
#	apps/mobile/src/features/settings/SettingsServerControlsRouteScreen.tsx
#	apps/mobile/src/features/settings/ThreadSettingsSections.tsx
#	apps/mobile/src/features/threads/ProviderSubagentBar.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/thread-handoff-row.tsx
#	apps/mobile/src/features/threads/useThreadListV2.ts
#	apps/server/src/cloud/selfUpdate.test.ts
#	apps/server/src/mcp/McpHttpServer.ts
#	apps/server/src/mcp/OrchestratorMcpService.activity.test.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.ts
#	apps/server/src/orchestration-v2/Orchestrator.ts
#	apps/server/src/orchestration-v2/ProviderTurnStartService.ts
#	apps/server/src/orchestration-v2/SelectionRestart.integration.test.ts
#	apps/server/src/orchestration-v2/ThreadForkService.ts
#	apps/server/src/orchestration-v2/testkit/ProviderReplayHarness.ts
#	apps/server/src/project/AgentSessionImporter.ts
#	apps/server/src/provider/ClaudeProvider.ts
#	apps/server/src/provider/ProviderInstanceRegistry.test.ts
#	apps/server/src/serverSettings.test.ts
#	apps/server/src/serverSettings.ts
#	apps/server/src/usage/UsageService.ts
#	apps/web/src/components/ChatView.tsx
#	apps/web/src/components/CommandPalette.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/ThreadNotificationCoordinator.tsx
#	apps/web/src/components/ThreadRouteView.tsx
#	apps/web/src/components/chat/ChatComposer.tsx
#	apps/web/src/components/chat/ComposerFooterControls.tsx
#	apps/web/src/components/chat/ModelPickerSidebar.tsx
#	apps/web/src/components/chat/ProviderSubagentBar.tsx
#	apps/web/src/components/chat/ThreadRelationshipsControl.browser.test.tsx
#	apps/web/src/components/chat/ThreadRelationshipsControl.tsx
#	apps/web/src/components/chat/TimelineUserMessageRow.tsx
#	apps/web/src/components/chat/V2LifecycleRow.tsx
#	apps/web/src/components/chat/useComposerMenuItems.ts
#	apps/web/src/components/onboarding/WelcomeWizard.tsx
#	apps/web/src/components/settings/AddProviderInstanceDialog.tsx
#	apps/web/src/components/settings/AuthorizedClientsSettings.tsx
#	apps/web/src/components/settings/ProjectDefaultsSettings.tsx
#	apps/web/src/components/settings/StorageSettings.tsx
#	apps/web/src/components/settings/settingsSearch.ts
#	apps/web/src/state/entities.ts
#	apps/web/src/state/threads.ts
#	packages/client-runtime/src/handoff.ts
#	packages/contracts/src/orchestrationV2.ts
#	packages/contracts/src/server.ts
#	packages/contracts/src/usage.ts
#	packages/provider-acp/src/server/adapter.ts
#	packages/provider-core/src/server/instanceEnvironment.ts
#	packages/provider-core/src/server/runtimeInstructions.ts
#	packages/provider-cursor/src/server/CursorSdk.test.ts
#	packages/provider-cursor/src/server/adapter.ts
#	packages/provider-cursor/src/server/driver.test.ts
#	packages/provider-cursor/src/server/sdk.ts
#	packages/provider-cursor/src/server/status.test.ts
#	packages/shared/src/paletteSearch.ts
@adampeterhiggins
adampeterhiggins force-pushed the t3code/sync-upstream-2026-11-02-0930 branch from 41cc9e1 to b47f48f Compare November 2, 2026 14:41
@adampeterhiggins
adampeterhiggins merged commit 42ae832 into main Nov 2, 2026
@adampeterhiggins
adampeterhiggins deleted the t3code/sync-upstream-2026-11-02-0930 branch November 2, 2026 14:58
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.