You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Patched build blocked: conflict on v0.1.4-nightly.20261027.3766 #12
A push to any patch branch changes the key, so the next hourly run retries on its own. To retry now: gh api repos/u9g/t3code-patched/dispatches -f event_type=patches-updated
Unblocked. Both patch branches are rebased onto v0.1.4-nightly.20261027.3766 (e109dc8d89) and pushed.
Upstream has since withdrawn the 3766 release. The tag is still there, but the release is gone. So the dispatch with upstream_tag=v0.1.4-nightly.20261027.3766 (run 40493519260) stopped in pick-build.sh with "is not a release in pingdotgg/t3code".
I dispatched again with no tag, so it builds the newest published nightly: v0.1.4-nightly.20261027.3770 (7c3b3b3605). That is 4 commits past e109dc8d89, and the only file they share with the patches is apps/server/package.json, which merges cleanly. In run 40493703467, "Apply patch branches" succeeded with picked=3 and patched_sha=39b902a8fe. The Windows build is running.
The patch's Claude Cloud entry moved to the shared registry, still right after claudeAgent.
It also gets upstream's new modelFamilies: ["Claude "]. Claude Cloud uses the Claude model catalog and the Claude icon, so its model labels shorten the same way local Claude's do (e.g. "Opus 5.5").
On mobile, ProviderIcon still checks isClaudeCodeDriver before it looks for a registry icon, and the Claude Cloud entry has no icon, so its icon does not change.
One fix beyond the conflicts.pingdotgg/t3code#25785 added AgentContextBudget.test.ts, which requires the MCP tool list size to equal the committed budget exactly, and pingdotgg/t3code#25790 set it to 42328 bytes. The patch adds mcpServers and providerInstanceId to t3_thread_launch, so the test failed at 42770. Each commit now carries its own value, so each passes on its own:
claudeSystemAppendBytes and codexAdditionalContextBytes did not change. If either commit goes upstream, it will need the agent-context-increase label.
Upstream and the patch both changed 15 other files, and those merged on their own. I compared each one's old base, upstream and rebased versions: nothing from either side is missing. git range-diff shows no patch change lost; the only differences are the registry entry's new location (plus modelFamilies) and the budget values.
feat/desktop-update-repository
It rebased with no conflicts, and git range-diff shows the change is identical. The only file it shares with upstream is docs/operations/release.md, where upstream's linux-arm64 line merged cleanly.
Verification
I ran everything on Windows with Node v26.12.0 and ./node_modules/.bin/vp. Upstream changed pnpm-lock.yaml and several package.json files, so I ran setup-worktree.ts in both worktrees first. For each failure I ran the same test file in a clean worktree at e109dc8d89 and compared failing tests by name. Every test that fails also fails there, mostly on Windows paths, temp folders and spawned processes.
feat/claude-code-cloud:
Targeted tests:vp test run apps/server/src/orchestration-v2/Adapters/ClaudeAdapterV2.test.ts apps/server/src/orchestration-v2/Adapters/ClaudeCloudQueryRunner.test.ts apps/server/src/provider/claudeCloud/ packages/provider-core/src/server/failure.test.ts gives 390 passed and 13 failed. The same 13 fail at e109dc8d89: 12 ClaudeAdapterV2 attachments tests and "pins tool search on when the user's Claude settings choose auto".
Claude Cloud replays:OrchestratorReplayFixtures.integration.test.ts no longer exists. vp test run apps/server/src/orchestration-v2/testkit/ClaudeCloudReplayFixtures.integration.test.ts -t claudeCloud passes 6/6.
Local Claude replays:ClaudeReplayFixtures.integration.test.ts gives 36 passed and 2 failed (command_output_streaming/claudeAgent and "streams a subagent's foreground Bash output live"). The same 2 fail at e109dc8d89.
Code near the conflicts:ClaudeAdapterV2.remote.test.ts, mobile threadActivity.test.ts, packages/client-runtime/src/, modelShortName.test.ts and ContextWindowMeter.logic.test.ts pass 1493/1493.
Budget tests:AgentContextBudget.test.ts passes after the fix, and transferBudgetV2.integration.test.ts passes.
Typecheck:cd apps/server && npx --no-install tsc-rs --noEmit is clean, and so is the same command in apps/web, apps/mobile and packages/client-runtime.
vp run check:changed (125 files) passes format, lint, knip 1/2 and 2/2, graphql, unused patches, and typecheck of 36 packages. Its tests (96 files) have 44 failures in 4 files, and the same 44 fail at e109dc8d89:
ClaudeAdapterV2.test.ts: the same 13 as above
storageCleanup.test.ts: 24
ProviderTurnStartService.test.ts: 4
userInputAttachments.test.ts: 3
feat/desktop-update-repository:
Update tests:vp test run apps/desktop/src/updates/ gives 65 passed and 1 failed: "updates Linux .deb installs and leaves other non-AppImage installs off" (expected 'disabled' to equal 'idle'). It fails the same way at e109dc8d89.
Typecheck:cd apps/desktop && npx --no-install tsc-rs --noEmit is clean.
vp run check:changed passes format, lint, knip and typecheck of 32 packages. Its tests fail 12: the .deb test above and 11 in scripts/build-desktop-artifact.test.ts (e.g. BundleNotSelfContainedError). The same 12 fail at e109dc8d89.
Both branches together:
Combined: the two branches share no files. git merge-tree --write-tree of the two tips is clean, and so is applying each commit onto 3770 (7c3b3b3605).
check:changed spawns vp and, on Windows, only finds a vp.exe, while the worktree has only vp.cmd. So I ran node scripts/check-changed.ts with a small preload that sends those spawns to the worktree's own node_modules/vite-plus/bin/vp.
Review. I also ran a separate read-only review with five reviewers:
the conflict resolutions
the effects of the provider registry move on web and mobile
the server-side merges
the other files both sides changed
the desktop branch and the combined build
Two skeptics then checked each finding. The only finding was the agent context budget, which is now fixed. The review also confirmed that claudeAgent paths are unchanged from upstream and that upstream added no new per-driver list that needs claudeCloud.
Activity
u9g commentedon Oct 27, 2026
Unblocked. Both patch branches are rebased onto
v0.1.4-nightly.20261027.3766(e109dc8d89) and pushed.Upstream has since withdrawn the 3766 release. The tag is still there, but the release is gone. So the dispatch with
upstream_tag=v0.1.4-nightly.20261027.3766(run 40493519260) stopped inpick-build.shwith "is not a release in pingdotgg/t3code".I dispatched again with no tag, so it builds the newest published nightly:
v0.1.4-nightly.20261027.3770(7c3b3b3605). That is 4 commits paste109dc8d89, and the only file they share with the patches isapps/server/package.json, which merges cleanly. In run 40493703467, "Apply patch branches" succeeded withpicked=3andpatched_sha=39b902a8fe. The Windows build is running.feat/claude-code-cloud581a494ea4+94058f16a7b160a5a834+54d3c2d7a4(2 commits)feat/desktop-update-repositoryf4dee53190da47cc28a8(1 commit)The commit messages are unchanged. I kept the cloud branch as 2 commits, with thread MCP as its own first commit, the same as #11.
feat/claude-code-cloudConflicts. All three were in the cloud commit. I read the upstream commits that touched each one, and each resolution keeps both sides:
Orchestrator.ts: the import list has the patch'sisClaudeCodeDriverand upstream'sisCompactionCommandMessage(fix(web): Steer no longer does nothing while a compaction runs pingdotgg/t3code#25837). The patch's subagent-stop check is unchanged.apps/mobile/src/lib/threadActivity.ts: fix(web,mobile): stopped runs no longer look like errors pingdotgg/t3code#25830 gave run interrupts a newstopicon, and the patch gives info notices aninfoicon.itemIconnow does both. The icon union andthread-work-log.tsxmap both of them; those merged on their own.apps/web/src/components/settings/providerDriverMeta.ts:packages/client-runtime, so web and mobile share it, and leftproviderDriverMeta.tsas a re-export. That file is now upstream's as is.claudeAgent.modelFamilies: ["Claude "]. Claude Cloud uses the Claude model catalog and the Claude icon, so its model labels shorten the same way local Claude's do (e.g. "Opus 5.5").ProviderIconstill checksisClaudeCodeDriverbefore it looks for a registry icon, and the Claude Cloud entry has no icon, so its icon does not change.One fix beyond the conflicts. pingdotgg/t3code#25785 added
AgentContextBudget.test.ts, which requires the MCP tool list size to equal the committed budget exactly, and pingdotgg/t3code#25790 set it to 42328 bytes. The patch addsmcpServersandproviderInstanceIdtot3_thread_launch, so the test failed at 42770. Each commit now carries its own value, so each passes on its own:claudeSystemAppendBytesandcodexAdditionalContextBytesdid not change. If either commit goes upstream, it will need theagent-context-increaselabel.Upstream and the patch both changed 15 other files, and those merged on their own. I compared each one's old base, upstream and rebased versions: nothing from either side is missing.
git range-diffshows no patch change lost; the only differences are the registry entry's new location (plusmodelFamilies) and the budget values.feat/desktop-update-repositoryIt rebased with no conflicts, and
git range-diffshows the change is identical. The only file it shares with upstream isdocs/operations/release.md, where upstream's linux-arm64 line merged cleanly.Verification
I ran everything on Windows with Node v26.12.0 and
./node_modules/.bin/vp. Upstream changedpnpm-lock.yamland severalpackage.jsonfiles, so I ransetup-worktree.tsin both worktrees first. For each failure I ran the same test file in a clean worktree ate109dc8d89and compared failing tests by name. Every test that fails also fails there, mostly on Windows paths, temp folders and spawned processes.feat/claude-code-cloud:vp test run apps/server/src/orchestration-v2/Adapters/ClaudeAdapterV2.test.ts apps/server/src/orchestration-v2/Adapters/ClaudeCloudQueryRunner.test.ts apps/server/src/provider/claudeCloud/ packages/provider-core/src/server/failure.test.tsgives 390 passed and 13 failed. The same 13 fail ate109dc8d89: 12ClaudeAdapterV2 attachmentstests and "pins tool search on when the user's Claude settings choose auto".OrchestratorReplayFixtures.integration.test.tsno longer exists.vp test run apps/server/src/orchestration-v2/testkit/ClaudeCloudReplayFixtures.integration.test.ts -t claudeCloudpasses 6/6.ClaudeReplayFixtures.integration.test.tsgives 36 passed and 2 failed (command_output_streaming/claudeAgentand "streams a subagent's foreground Bash output live"). The same 2 fail ate109dc8d89.ClaudeAdapterV2.remote.test.ts, mobilethreadActivity.test.ts,packages/client-runtime/src/,modelShortName.test.tsandContextWindowMeter.logic.test.tspass 1493/1493.AgentContextBudget.test.tspasses after the fix, andtransferBudgetV2.integration.test.tspasses.cd apps/server && npx --no-install tsc-rs --noEmitis clean, and so is the same command inapps/web,apps/mobileandpackages/client-runtime.vp run check:changed(125 files) passes format, lint, knip 1/2 and 2/2, graphql, unused patches, and typecheck of 36 packages. Its tests (96 files) have 44 failures in 4 files, and the same 44 fail ate109dc8d89:ClaudeAdapterV2.test.ts: the same 13 as abovestorageCleanup.test.ts: 24ProviderTurnStartService.test.ts: 4userInputAttachments.test.ts: 3feat/desktop-update-repository:vp test run apps/desktop/src/updates/gives 65 passed and 1 failed: "updates Linux .deb installs and leaves other non-AppImage installs off" (expected 'disabled' to equal 'idle'). It fails the same way ate109dc8d89.cd apps/desktop && npx --no-install tsc-rs --noEmitis clean.vp run check:changedpasses format, lint, knip and typecheck of 32 packages. Its tests fail 12: the.debtest above and 11 inscripts/build-desktop-artifact.test.ts(e.g.BundleNotSelfContainedError). The same 12 fail ate109dc8d89.Both branches together:
git merge-tree --write-treeof the two tips is clean, and so is applying each commit onto 3770 (7c3b3b3605).check:changedspawnsvpand, on Windows, only finds avp.exe, while the worktree has onlyvp.cmd. So I rannode scripts/check-changed.tswith a small preload that sends those spawns to the worktree's ownnode_modules/vite-plus/bin/vp.Review. I also ran a separate read-only review with five reviewers:
Two skeptics then checked each finding. The only finding was the agent context budget, which is now fixed. The review also confirmed that
claudeAgentpaths are unchanged from upstream and that upstream added no new per-driver list that needsclaudeCloud.github-actions commentedon Oct 27, 2026
Published https://github.com/u9g/t3code-patched/releases/tag/v0.1.4-nightly.20261027.377000, so this is resolved.