Skip to content

merge: sync upstream pingdotgg/t3code main at 453bf01d20 - #140

Merged
jayleaton merged 172 commits into
mainfrom
chore/sync-upstream-20261025
Oct 25, 2026
Merged

jayleaton merged 172 commits into
mainfrom
chore/sync-upstream-20261025

Conversation

@jayleaton

@jayleaton jayleaton commented Oct 25, 2026 •

Copy link
Copy Markdown
Owner

Problem

The fork was 166 upstream commits behind pingdotgg/t3code main (last sync 8c3e84a at f054d1b). Upstream has since landed SQLite reader/writer routing, indexed Cmd+K message search, the forge-definitions refactor, PR-watch owed-check and no-checks wakes, and a run of crash, reconnect and mobile fixes the fork wants.

Fix

A normal merge of upstream/main @ 453bf01 into fork main @ 1a43bde, plus follow-up commits for fork-side breakage.

origin/main (1a43bde71a) ──┐
upstream/main (453bf01d20) ┴─ 1636540938  merge (51 conflicted files)
                              └─ 6def538d3f … 47604ddfc8 fork follow-ups

Policy: upstream wins for upstream-owned code. Where both sides changed a file, fork behaviour is ported onto upstream's structure. Where upstream fixed something the fork had also patched, the fork copy is dropped.

Migrations and dependencies

  • Upstream 069_ThreadMessageSearch registers as 69 under its own name. The fork ledger (Migrations/fork/001–011) is unchanged. scripts/upstream-migrations.json was regenerated with --sync upstream/main, and KNOWN_RENUMBERED is still empty.
  • @clerk/expo-native-components override goes to upstream's 0.4.0, which matches the patch file. check-patch-pins: all 30 patched dependencies pinned.
  • pnpm-lock.yaml is upstream's, regenerated by vp i with the fork workspace (+72 lines).

Conflict resolutions (server)

Conflict resolutions (clients)

Fork-side follow-ups

  • Upstream fix(threads): Working holds only background work the agent waits on pingdotgg/t3code#24610 says only awaited commands and monitors hold a card in Working. Three fork tests used an unawaited monitor as active work: they now mark it awaited: true, or drop monitor from the "always holds" cases.
  • The fork's quiet-watch test reads a GitHub PR with no checks, which now (correctly) triggers upstream's no-checks wake. The test sets checksAlwaysReport: false so it measures only quiet time.
  • Upstream PR-watch tests got the fork's requiredChecks argument and mocks.
  • AgentsRoutes.browser.test mocks useQuietThreadShells, which the announcer now reads.
  • The GitVcsDriverCore concurrency test reads the t3-merge-base key.
  • A replayed command receipt now carries replayed: true (upstream), so the fork's idempotency test expects it.
  • knip: removed isClaudeResumeCompactionQuestion, whose only upstream caller is the web Compact chip the fork doesn't ship.
  • Upstream's no-em-dash-copy lint rule (fix: no more em dashes in product copy pingdotgg/t3code#23799) runs on every file. Fork Agents and MCP gateway strings now use colons and parentheses (f16c8d6).
  • mcp-gateway bridge.test.ts: the auth helper resolved on a 10 ms timer after sending configure, which lost a race on a loaded CI runner. It now waits for the bridge's configured reply (47604dd). The gateway code itself is unchanged by this merge.
  • Merged current fork main (fix(server): legacy fork ledgers with title state at 52 split, and refused databases stop restarting #139, the splitLegacyForkLedger repair) at fbafde9 without conflicts. The split reads upstream ids from the manifest, which now includes 69. check-upstream-migrations still passes and --sync makes no change. ForkMigrations, Migrations, Sqlite, fork migrations, reconcileV2PreviewMigration, serviceLauncher and the desktop backend tests pass (11 files, 107 tests).

Upstream fixes gained (relevant to JJ's issues)

Crashes

Reconnects and connectivity

Mobile

Updater and provider updates

Performance

Agents and orchestration

Not taken: upstream's compact-before-send and stale-thread Compact chip (pingdotgg#24008, pingdotgg#24334, client side). The fork removed T3-started compaction in its last sync and keeps it removed. The server-side compaction fixes (pingdotgg#24172) are merged.

Evidence

Run locally on this branch:

Check Result
node scripts/check-upstream-migrations.ts All 69 upstream migrations keep their ids (0 known exceptions)
node scripts/check-patch-pins.ts All 30 patched dependencies are pinned
vp run typecheck: t3, contracts, shared, provider-core, web, client-runtime, desktop, mobile pass
vp lint on every changed .ts/.tsx file 0 errors (warnings only, present on both sides)
vp fmt --check on changed files clean
vp run check:changed (format, lint, knip, typecheck of 34 packages, tests beside changes) format, lint, typecheck pass; knip passes after 1e7bbb6. Tests: 406 files, 7597 pass. 4 web browser files (21 tests) timed out under load and all 34 of their tests pass when re-run alone.
vp test run of the fork tests updated for upstream's new rules (runtimeLayer, Orchestrator.parentThread, ThreadSettlementService, GitVcsDriverCore) pass
vp test run web agents, client-runtime, mcp-gateway (browser + node) 156 files, 1597 tests pass (after the AgentsRoutes mock fix)
Fork release gate parts: fork migrations, Migrations, desktop app, build-desktop-artifact, clients 29 files, 229 pass, 2 skipped
Client-side resolutions (desktop lifecycle, desktopUpdate/ChatView/Sidebar logic, sharedSettings, threadListV2) 275 tests pass

Merge Danger

Door: two-way. The only schema change is upstream's additive migration 69 (message search index). Fork migrations and ids are unchanged, so after a code rollback the previous build starts and only logs a divergence warning for the unknown migration 69 (the search table stays unused).

Blast Radius: platform. Server, web, desktop, mobile and contracts all change. The risk is concentrated in settle cascades, PR watches (now waking on owed and no-checks events) and the RPC group typing.

Upstream base: pingdotgg/t3code@453bf01d20.

Opus 5.5 (claude-opus-5-5) via Claude Code in T3 Code.

🤖 Generated with Claude Code

shivamhwp and others added 30 commits October 22, 2026 19:50
… columns (pingdotgg#23502)

Co-authored-by: PR Batch Tester <agent@local.test>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: GPT-6.1 Sol <noreply@openai.com>
Co-authored-by: codex <codex@users.noreply.github.com>
…g#23808)

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

Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Claude Haiku 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…otgg#23840)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…h git.cafe (pingdotgg#23887)

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

Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…came from (pingdotgg#23713)

Co-authored-by: Julius Marminge <julius0216@outlook.com>
Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
Co-authored-by: Yash Singh <saiansh2525@gmail.com>
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: Claude Opus 5.5 <noreply@anthropic.com>
t3dotgg and others added 20 commits October 24, 2026 17:16
…ver LAN (pingdotgg#24588)

Co-authored-by: LukeCommits <dyd.lukas.real@gmail.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…empty detail (pingdotgg#24524)

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

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

Co-authored-by: lovelycodemonkey <ghassemimahyad@gmail.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ngdotgg#24622)

Takes over pingdotgg#23490 by Ennio Cuteri, adding a frame limit on the settle loop and reporting positioned when its target disappears.

Co-authored-by: Ennio Cuteri <ennio.cuteri@gmail.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…g#24616)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Afonso Ferreira <afonsoferreira29@gmail.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…S 26.6 (pingdotgg#24492)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Merge upstream/main (166 commits since f054d1b). Upstream migration ids
are unchanged (069_ThreadMessageSearch lands as 69); fork migrations stay in
their own ledger and the manifest is regenerated.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… rules

Upstream pingdotgg#24610 holds Working only for awaited commands and monitors, pingdotgg#23863
wakes a watch whose head reports no checks, and replayed command receipts now
carry `replayed: true`. Fork tests that relied on the old behaviour now mark
their monitor awaited, measure quiet time on a host where no checks is normal,
and expect the replay flag. AgentsRoutes mocks the entity hook upstream's
background announcer reads.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…er calls

Upstream added it for the web Compact chip, which the fork does not ship; knip
flags it as an unused export.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XXL 📱 Native Change Changes the native fingerprint; merging blocks production OTAs until a new store build ships. labels Oct 25, 2026
Upstream's no-em-dash-copy lint rule (pingdotgg#23799) runs across every file, and
fork-only Agents and gateway strings still used them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 25, 2026 •

Copy link
Copy Markdown

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire 5.0 KiB 5.0 KiB −7 B (−0.1%) 6.8 KiB ✅
Codex Thread snapshot wire 3.8 KiB 3.8 KiB 0 B (0.0%) 4.9 KiB ✅
Codex Live turn WebSocket wire 1.2 KiB 1.2 KiB −7 B (−0.6%) 2.0 KiB ✅
Codex Live turn WebSocket decoded 20.9 KiB 20.9 KiB 0 B (0.0%) 29.3 KiB ✅
Codex Live turn messages 2 2 0 (0.0%) 8 ✅
Claude Total thread wire 5.0 KiB 5.0 KiB 0 B (0.0%) 6.8 KiB ✅
Claude Thread snapshot wire 3.8 KiB 3.8 KiB 0 B (0.0%) 4.9 KiB ✅
Claude Live turn WebSocket wire 1.2 KiB 1.2 KiB 0 B (0.0%) 2.0 KiB ✅
Claude Live turn WebSocket decoded 21.2 KiB 21.2 KiB 0 B (0.0%) 29.3 KiB ✅
Claude Live turn messages 2 2 0 (0.0%) 8 ✅

Baseline: ffa911e · PR result: fbafde9 · 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: 108.5 KiB
  • Claude decoded thread snapshot: 108.8 KiB

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

jayleaton and others added 2 commits October 25, 2026 09:41
…s timer

The bridge routes requests only after it applies the client's grants. The test
helper resolved on a wall-clock timer instead, so a loaded CI runner could call
the bridge before it was configured.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@jayleaton
jayleaton marked this pull request as ready for review October 25, 2026 03:04
@jayleaton
jayleaton merged commit ab3e84c into main Oct 25, 2026
32 of 33 checks passed
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 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.