Skip to content

chore(v2): merge main into the V2 branch - #14668

Merged
juliusmarminge merged 17 commits into
t3code/codex-turn-mappingfrom
v2/main-sync-1001b
Oct 1, 2026
Merged

juliusmarminge merged 17 commits into
t3code/codex-turn-mappingfrom
v2/main-sync-1001b

Conversation

@juliusmarminge

@juliusmarminge juliusmarminge commented Oct 1, 2026 •

Copy link
Copy Markdown
Member

V2 (t3code/codex-turn-mapping) was 16 commits behind main. This merges origin/main (a3abb52) into V2 (a2ca40a), V2 as first parent. The merge commit only resolves conflicts.

What came in

Conflicts and how they were resolved

  • apps/server/src/server.test.ts (fix: cloned projects show their favicon instead of a monogram #14635 added a case): V2 deleted this V1 router-seam suite in 59ceaa9, so it stays deleted.
  • apps/server/src/ws.ts (textually clean, but it didn't typecheck): main's favicon hunk reads project.value.id. V2's project record has projectId, so the merge uses project.value.projectId. Otherwise V2's ws.ts is unchanged.
  • apps/web/src/components/Sidebar.logic.test.ts (test(web): remove duplicate sidebar ordering tests #14558): kept V2's file and applied main's dedupe. That drops the sortThreadsForSidebar and planPinnedReorder blocks, which were byte-identical to the merge base and are covered by client-runtime's threadSort.test.ts. Main's drag-and-drop describe blocks stay out because V2 removed them earlier (c4bcd1e).
  • infra/relay/src/agentActivity/FcmDeliveries.test.ts (feat(notifications): stack agent alerts by thread on both platforms #12048): took main's new expectation (grouped alerts route to /) with V2's namespace import (FcmDeliveries.FcmDeliveries). Also namespaced the slash-identifier test that came in during the merge.
  • pnpm-workspace.yaml / pnpm-lock.yaml (chore(mobile): upgrade to Expo SDK 58 and React Native 0.88 RC #12045): took main's SDK 58 overrides and kept V2's @opencode/{protocol,schema}>effect pins. Both sides edited the @react-native-menu/menu patch in separate hunks, so the merged patch gets a fresh hash from vp i.
  • third-party-licenses.config.json: kept V2's OpenCode entry and main's noxcturnal entries.

No V2-only mobile code broke against SDK 58 types, so there is no fix commit on top.

Verification

  • vp i: clean install.
  • tsc --noEmit -p ., all exit 0: apps/server (after the projectId fix above), apps/web, apps/mobile, apps/desktop, packages/contracts, packages/client-runtime, packages/shared.
  • packages/client-runtime src/state/assets.test.ts: 21/21 passed.
  • apps/server AssetAccess.test.ts, ws.test.ts, ProjectCloneTracker.test.ts, run inside unshare -U --map-current-user -p -f --mount-proc: 45/45 passed.
  • infra/relay FcmDeliveries.test.ts + ApnsClient.test.ts: 56/56 passed.
  • apps/web Sidebar.logic.test.ts: 134/134 passed.
  • vp lint on the conflicted/touched files: exit 0. The only warnings (unused imports in ws.ts, react refs in Sidebar.logic.ts) were already on V2.
  • vp run knip:check: exit 0, no findings (both passes).
  • Grepped the diff for sk-or- and crsr_: no hits.

Left over

  • Main's new favicon test lived in server.test.ts, which V2 doesn't have. V2 also has no WS-level harness that drives assets.createUrl with a clone in flight, so that case is not ported. The code path compiles and the AssetAccess tests pass, but nothing on V2 exercises "a lookup during a clone doesn't cache a miss".
  • Mobile was checked by typecheck only. No native build or device run.

Model: Claude Opus 5.5 (Claude Code)

🤖 Generated with Claude Code

t3dotgg and others added 17 commits October 1, 2026 02:10
…14573)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
#12046)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…tale (#12047)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…12048)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…URL (#12049)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…UIScreen.main (#12050)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…bers (#12051)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…12052)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
…ard (#13487)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: t3-code[bot] <269035359+t3-code[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Conflicts resolved:
- server.test.ts (#14635): V2 deleted the V1 router seam suite in 59ceaa9; it stays deleted. The favicon change itself (ws.ts, AssetAccess.ts) merged textually onto V2's ws.ts; its clone lookup reads `project.value.projectId`, V2's project record field (main's has `id`).
- Sidebar.logic.test.ts (#14558): keep V2's test file and apply main's dedupe (drop the sortThreadsForSidebar and planPinnedReorder blocks, which client-runtime's threadSort.test.ts already covers). Main's drag-and-drop tests stay out; V2 removed them with the drop helpers' old tests in c4bcd1e.
- FcmDeliveries.test.ts (#12048): take main's grouped-alert routing test with V2's namespace imports; namespace the auto-merged slash-identifier test too.
- pnpm-workspace.yaml / pnpm-lock.yaml (#12045): take main's SDK 58 overrides, keep V2's OpenCode effect pins; the merged @react-native-menu patch gets a fresh hash.
- third-party-licenses.config.json: keep V2's OpenCode entry and main's noxcturnal entries.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XXL 1,000+ changed lines (additions + deletions). 📱 Native Change Changes the native fingerprint; merging blocks production OTAs until a new store build ships. labels Oct 1, 2026
Comment thread apps/desktop/src/preview/Manager.ts
Comment thread apps/server/src/assets/AssetAccess.ts
Comment thread infra/relay/src/agentActivity/ApnsClient.ts
Comment thread patches/react-native-screens@4.28.0.patch
@github-actions

github-actions Bot commented Oct 1, 2026

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

ℹ️ No successful main baseline artifact is available yet. This run establishes the initial measurement.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire — 4.9 KiB — 6.8 KiB ✅
Codex Thread snapshot wire — 3.7 KiB — 4.9 KiB ✅
Codex Live turn WebSocket wire — 1.2 KiB — 2.0 KiB ✅
Codex Live turn WebSocket decoded — 20.4 KiB — 29.3 KiB ✅
Codex Live turn messages — 2 — 8 ✅
Claude Total thread wire — 4.9 KiB — 6.8 KiB ✅
Claude Thread snapshot wire — 3.7 KiB — 4.9 KiB ✅
Claude Live turn WebSocket wire — 1.2 KiB — 2.0 KiB ✅
Claude Live turn WebSocket decoded — 20.8 KiB — 29.3 KiB ✅
Claude Live turn messages — 2 — 8 ✅

Baseline: unavailable · PR result: 1485e01 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 106.1 KiB
  • Claude decoded thread snapshot: 106.4 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@macroscopeapp

macroscopeapp Bot commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Not approved

Macroscope's review found this PR not approvable — This merge includes a major Expo/React Native platform upgrade, new Android widget and alarm functionality, notification and desktop runtime behavior changes, and product-default changes across mobile. It also modifies Macroscope configuration, so the scope and review-control impact require human review.

Adjust the Minimum Blocking Severity for this repo — including turning it Off — in Settings. You can add or adjust custom eligibility rules. Learn more.

@juliusmarminge
juliusmarminge merged commit 6f042ef into t3code/codex-turn-mapping Oct 1, 2026
30 of 32 checks passed
@juliusmarminge
juliusmarminge deleted the v2/main-sync-1001b branch October 1, 2026 22:58
skulldogged pushed a commit to skulldogged/t3code that referenced this pull request Oct 2, 2026
Merges origin/main (6c8fed3) into t3code/codex-turn-mapping (3eaae44).
The previous sync (pingdotgg#14668) was squash-merged, so V2 already holds main's
content up to a3abb52 without the merge parent. This merge was built with
`git merge-tree --merge-base=a3abb52660`, so only the 15 commits in
a3abb52..6c8fed3 apply and nothing already synced re-conflicts.
No new migrations on main.

Brings in pingdotgg#14673 (batched GitHub GraphQL polling), pingdotgg#13926 (beta Working
section), pingdotgg#14678 (update providers on every machine), pingdotgg#14674, pingdotgg#13426,
pingdotgg#14700, pingdotgg#14675, pingdotgg#14601, pingdotgg#14532, pingdotgg#14756, pingdotgg#14734 (Expo 58 update), the 1.4.0
mobile version bump, pingdotgg#12615, pingdotgg#14367 and pingdotgg#14710.

V1 files V2 deleted (kept deleted):
- orchestration/PullRequestSyncReactor(.test).ts and
  orchestration/ThreadPullRequestReactor.ts: pingdotgg#14673's reactor batching.
  Git matched them to V2's orchestration-v2/PullRequestSyncReactor(.test).ts
  and ThreadPullRequestService.ts, so the change landed there: one queued
  "requested" sweep reads a burst of requestSync keys together, a summary
  that places a PR in no stack skips the stack read, and a stack-number
  change in the summary triggers a stack refresh. Main's two new reactor
  tests merged into V2's test file and use V2's harness as-is.
- web ChatMarkdown.workspace-images.test.tsx: V2 removed it in 894f6c4.
  pingdotgg#12615 added Windows-path cases there; the link case is ported into V2's
  ChatMarkdown.test.tsx "Windows file links" block. The image-resource
  cases depend on that file's asset mocks and are not ported.

Content conflicts:
- orchestration-v2/PullRequestSyncReactor.ts: main's sweep(scope) signature
  over V2's projections.getThreadsWithPullRequests() read.
- orchestration-v2/ThreadPullRequestService.ts: main's concurrency 32 (was
  V2's 25), so a sweep's branch lookups reach GitHubCli's 50-wide GraphQL
  document together.
- chat/ChatHeader.tsx: kept V2's slim header (f71e6a2); main's
  header-actions block is not in V2. pingdotgg#13426's ChatView half (the maximize
  control leaves the flex flow when closed) is applied to V2's panel
  controls in ChatView.tsx.
- Sidebar.logic(.test).ts, Sidebar.tsx: pingdotgg#13926 on V2's sidebar model.
  isSidebarThreadWorking folds V2's "working" and "waiting" (idle with open
  background tasks, main's "monitoring") statuses, minus a ready plan.
  sortInboxThreadsByReturn reads latestRun instead of latestTurn. V2's
  subagent filter, section resolver and CollapsibleSectionHeader stay;
  the Working header uses the muted tone. Main's status tests are rewritten
  on V2's runtime fixture.
- settings/SettingsPanels.tsx, settingsSearch.ts, docs/user/thread-sidebar.md:
  both sides (V2's limited-thread rows and title docs, main's Working
  section row and docs).

pingdotgg#14678 uses the existing server.updateProvider RPC, which V2's ws.ts
serves through providerMaintenanceRunner, so no server change is needed.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

📱 Native Change Changes the native fingerprint; merging blocks production OTAs until a new store build ships. size:XXL 1,000+ changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants