Repository navigation
chore: T4 now builds on T3 Code v0.1.5 - #135
Merged
Merged
Conversation
…otgg#25837) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…otgg#25860) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ingdotgg#25812) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ngdotgg#25882) 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>
…gdotgg#25854) 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>
…ingdotgg#25915) 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>
…ingdotgg#25910) 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>
pingdotgg#25912) 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>
pingdotgg#25675) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ft pane (pingdotgg#18492) Co-authored-by: maria-rcks <maria@kuuro.net>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…a thread (pingdotgg#26874) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…dits (pingdotgg#26876) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…one step (pingdotgg#26288) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…gg#26910) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
… note (pingdotgg#26893) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…otgg#26912) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ingdotgg#26917) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…s are labeled (pingdotgg#26928) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ts (pingdotgg#26715) Co-authored-by: PR Batch Tester <agent@local.test> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…poser (pingdotgg#26929) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
pingdotgg#26932) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
T4 moves its base from T3 Code v0.1.2 to v0.1.4 (779 commits, v0.1.3 included). The peer-link stack, project folders and every fix picked from upstream's main shipped there, so T4 takes upstream's code for them and keeps its own features on top. - Migrations 070-072 match upstream's ids and names, so the fork's reconciler is gone. Migration 069 keeps the fork's triggers, which also index messages agents write. - MCP tool additions move onto upstream's compact descriptions and action tools (pingdotgg#25423). t3_environment_link returns, as issue #3 planned once an official release ships the stack. - Upstream's handoff recovery (pingdotgg#25610) replaces the fork's own fix for switching back to a full conversation. - Fork code follows upstream's stricter comment, effect and Effect diagnostics rules. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The fork's own fix for this case gave way to upstream's handoff recovery (pingdotgg#25610). Its integration test stays: back on Claude at 190k of 200k tokens, the turn starts a fresh native thread that gets the whole thread, and the next turn continues on it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- upstream.json: base v0.1.4; only the tray (pingdotgg#19176) and the last-message sort (pingdotgg#22032) are still carried. - The README names the new base and versions, the two remaining carries, and that official releases from v0.1.4 on read a T4 database. - t4-release.yml gives 0.1.5-t4.1 as its example version. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Upstream ships linked environments behind a Labs toggle that starts off and, while off, also pauses existing links. Settings saved by earlier T4 builds have no value for it, so every machine's links would stop after this update. The fork defaults it to on; Settings > Labs still turns it off, and an explicit off stays off. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…notice Upstream's notification gate waits 2 s before a completion notice and drops it if the thread starts working again, expecting the next run to notify. The fork keeps turns the user didn't start quiet, so when one began within those 2 s, neither run notified and the user never heard that their own turn finished. Such a run now leaves the pending notice alone; a continuation of the user's own turn still replaces it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
T4 moves on to T3 Code v0.1.5 (25 commits on v0.1.4, no migration changes). Conflicts were small: the fork keeps its account failover and thread icon capabilities next to upstream's Turn into project, its Dismiss, icon and topic actions in the thread menu, and its header action slot on sidebar shelves, while the undo notice moves to the sidebar footer as upstream has it (pingdotgg#26874). cliRelease.ts keeps the fork's release repository. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Upstream's Update track switch (pingdotgg#26288) moves every machine to the newest npm release of the other track and saves that track on each desktop. T4 publishes neither npm releases nor a Nightly feed, so a switch could not install upstream T3, but it left T4 desktops on a track with no builds, where updates stop. On builds from this repository's releases (X.Y.Z-t4.N, X.Y.Z-test.N): - the server refuses any update that asks to switch tracks, which is how a switch reaches remote desktops and service hosts, from any T3 Code app; - the desktop ignores a saved track, so a machine an earlier build moved to Nightly recovers; - Settings > About and settings search no longer offer the switch. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
upstream.json, the README and the t4-release.yml example follow the new base. The tray (pingdotgg#19176) and the last-message sort (pingdotgg#22032) are still carried. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
When the desktop app cannot start, its recovery page offers to reinstall the last build that started or to open the releases page. Both linked to upstream's releases, where T4 versions do not exist and the installers are upstream T3 Code. They now open this repository's releases, from the same place every T4 download already uses. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 29, 2026
Closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
T4 moves its base from T3 Code
v0.1.2tov0.1.5, throughv0.1.4and skippingv0.1.3as a separate step: 804 upstream commits (779 tov0.1.4, then 25 tov0.1.5). Nearly everything T4 carried from upstream has now shipped there, so T4 uses upstream's code for it and carries only the tray (#19176) and the last-message sort (#22032).Closes #3
Changes users will notice
These come from following upstream's code; they belong in the release notes.
#21039. A project with no active threads gets no folder unless you filter to it./settings/betalinks redirect there. T4's own Beta page is gone: the boring sidebar and linked environments toggles are on Labs, Compact idle threads moved to Settings → Providers → Advanced.#26288) moves every machine to the newest npm release of the other track. T4 publishes neither npm releases nor a Nightly feed, so T4 builds hide it, refuse a switch started from any T3 Code app, and ignore a track an earlier build saved. A desktop that someone moved to Nightly gets updates again.#25610) replaces T4's fix(server): switching back to a provider whose old conversation is full starts a fresh one #134: switching back to a provider whose old conversation has no room still starts a fresh one with the thread's history, and now also keeps background work running and covers ACP providers.Also new for T4 users:
t3_environment_linkis back, with its link card, as issue Hide the agent tool t3_environment_link #3 planned once an official release ships the peer-link stack. Asked to work on a machine that isn't linked, an agent offers the link in a card instead of sending you to Settings.From upstream
v0.1.3,v0.1.4andv0.1.5bring, among others:#24865,#25251,#25778); F6 and arrow keys move through the sidebar (#25877).#16653and its stack) and project folders (#21039) upstream, with a Labs page, guest links (#24104) and custom snooze presets (#26208).#25423,#25790).#26164).#25610).#26238), capped comments at four lines and requires a reason on every React effect.v0.1.5: turn a No project thread into a project (#26767), the undo notice moves to the sidebar footer (#26874), choose what the thread details card shows (#26904), a Labs toggle keeps usage limits in view (#26859), release notes in the update popover (#26893), and Update everything updates service hosts without waiting on npm (#26917). No migration changes.Carries dropped
Shipped in
v0.1.4, so T4 now uses upstream's version:#16653,#16654,#16655,#16684,#16695,#16698,#16719,#17130.#21039.#23886,#21299,#23798,#24589,#24571,#24622,#24617,#23751,#24032,#24343.scripts/t4/upstream.jsonnow has basev0.1.5and only#19176and#22032. The README's carried table and feature list follow, and versions read0.1.6-t4.N.Migrations
Upstream ships the peer-link migrations at the same ids and names as T4 (070–072), so T4 has no migrations of its own any more and the reconciler from #121 is gone.
0.1.3-t4.Nbuild migrates as upstream's: nothing runs.0.1.2-t4.Nbuild has the peer-link migrations at 068–070. This version refuses to start on that database, with upstream's "would skip required schema migrations" error, and changes nothing. Install the current0.1.3-t4.Nrelease first, then this one.scripts/t4/README.mddescribes this and keepsundo-peer-link-migrations.ps1only for switching to an official release older thanv0.1.4, which T4 doesn't support.Conflicts
241 files conflicted. Most of the carried code resolved by merging against a base of
v0.1.2plus T4's carries, so only T4's own changes met upstream's. The rest, by area:#25423). T4's additions moved onto upstream's compact descriptions and action tools:pinont3_thread_launch(Agents can pin the threads they start #129),nextAccountinorchestrator_capabilities, pinned threads across machines int3_thread_list(feat: copy a thread's id, and let agents find pinned threads and bare thread ids across linked environments #50), bare thread ids found on linked machines,set_icon/clear_iconont3_thread_update(feat: threads get their own icon, experts get Start new topic, and the thread menu gets shorter #113), wait-on-message (feat(server): a thread wait ends when a message reaches the waiting thread #83),webhookPath(feat: webhook paths for agents, memory-limit retries, Go ahead instructions and emoticons #112) andt3_request_attention(Experts: turns you didn't start stay quiet, and an agent can ask for you with Needs you #102). The thread metadata tool lostlink_pull_requestupstream, as the separate tools cover it.t3_request_attentionand the Go ahead section.#25610solve the same problem. T4 takes upstream's recovery, which also probes the exact payload, keeps background work and covers ACP. fix(server): switching back to a provider whose old conversation is full starts a fresh one #134's integration test stays and passes on upstream's code: switching back to Claude at 190k of 200k starts a fresh native thread with the whole history.#26164. Upstream's fallback picks a new draft's starting model; T4's recommended-account hook may then move it to the best account of that provider, and the fallback notice matches any account of that provider. Failover of a running turn is unchanged.MessagesTimelineis rebuilt on upstream's version, which dropped the paint-only path, with T4's divider, jump to my last message, minimap groups, reply action and message times re-applied.@t3tools/client-runtime/thread-reference.v0.1.5merge. Ten files conflicted, all small: T4's account failover and thread icon capabilities sit next to upstream's Turn into project, the thread menu keeps T4's Dismiss, icon and topic actions with upstream's new item under More, and sidebar shelves keep T4's header action while the undo notice moves to the footer (#26874).cliRelease.tskeeps the fork's release repository.X.Y.Z-t4.N,X.Y.Z-test.N), so upstream's tests keep testing upstream's switch.Verification
Heavy steps ran one at a time.
check:changedstarts all its steps at once (format, lint, knip passes, a 4-way typecheck and unthrottled vitest), so its steps ran one by one instead, over the 432 files that differ fromv0.1.5.--maxWorkers=2, one package at a time; all pass:starts a fresh native thread when a returning handoff exceeds the old one.#26387), and the thread menu's More → Copy now lists upstream's Thread copy.node --test .github/scripts/t4-upstream-watch.test.cjs: 11 pass with the newupstream.json.migrate-dev-dbcopied a read-only snapshot of a real T4 database (history up to 072) and thev0.1.4build ran no migrations on it; its slot check passed.v0.1.5changes no migrations.vp1.0.0 fails to load@effect/vitestfiles and skips lint rules, so everything above ran with the workspace'snode_modules/.bin/vp.Workflows
Upstream added
agent-context-budget.yml,mobile-fingerprint-label.yml,relay-preview.yml,relay-preview-cleanup.ymlandstale-needs-more-info.yml. They are left as they are, to be disabled on GitHub after the merge.Done by Claude Opus 5.5 in Claude Code, in T3 Code.
🤖 Generated with Claude Code