Skip to content

chore(sync)!: merge pingdotgg/t3code main - #385

Merged
Yarden-zamir merged 183 commits into
mainfrom
fork-sync/2026-10-27-0910
Oct 28, 2026
Merged

Yarden-zamir merged 183 commits into
mainfrom
fork-sync/2026-10-27-0910

Conversation

@Yarden-zamir

@Yarden-zamir Yarden-zamir commented Oct 27, 2026 •

Copy link
Copy Markdown
Owner

🤖 Merges pingdotgg/t3code main (73 upstream commits) into the fork. Upstream merged the linked environments stack that the fork had adopted (pingdotgg#16653 to pingdotgg#16719), so the adopted list is now empty.

Decision still open

The question below, from the first round of this pull request, is not answered yet. This merge keeps option A (both run, no code change). Options B and C stay possible as a follow-up.

pingdotgg#24741 "feat(mobile): add a 'Use last project' preference for new threads" overlaps the fork setting mobileNewThreadProject. Upstream's device preference decides first; the fork setting applies only when the project list still opens.

Behavior changes

  • Linked environments: the fork now runs upstream's merged link code. Arrows still give the links (MachinePeers), and manual links still refuse. The fork hides upstream's t3_environment_link and t3_environment_unlink tools; agent texts say that links come from arrows on the machine map. Upstream gates links with the Labs setting linkedEnvironmentsEnabled (off by default) on each machine. Without it, agents cannot reach other machines.
  • @ menu and send check: they use upstream's linked environments instead of the fork's readable machines list. Load balancing still uses the readable machines list.
  • Thread links: agents append #<messageId> to a thread's link as given. Agents now write upstream's t3-thread://v2/<environmentId>/<threadId> links. The fork #<messageId> fragment works on v1 and v2 links. Upstream shows every thread link as a chip; threadLinkChips now only adds chips for thread addresses and app links.
  • Queue: upstream's simpler Send now row replaces the fork Steer/Send button per message. The fork "Queue paused" row stays.
  • Background work banner: upstream's new banner. A fork hook (withBackgroundWorkDetails) adds the details popover with task names and output files to its icon.

Breaking changes

  • The fork client setting snoozeQuickOptions is removed. Upstream now has snooze presets in Settings (feat(threads): choose your own snooze options in settings pingdotgg/t3code#26208). Saved fork quick options are lost; set the choices again in upstream's setting.
  • Linked environments stop working on a machine until linkedEnvironmentsEnabled is on there. Set it through the machine map before the update reaches the machines.
  • Mobile: an invite enroll error now shows in the pairing form, not in the shared connection error.

Conflicts and resolution

About 130 files conflicted. Stack files take upstream's version, then the fork hooks apply again: MachinePeers and cliLinks.ts implement the new PeerLinks.enabled and describe, the CLI refusal layer stays, and Settings shows the arrow links. Other files merge both sides. Upstream deleted unreached code (pingdotgg#26238); fork code that used it gets it back (useEnvironmentIds, two mobile settings rows, some type exports) or drops it (serverGetSettings, terminal.restart, clearConnectionCatalog).

Fork fixes

  • Fork effects follow upstream's new rule that each React effect states its reason. Effects in upstream files got reasons; 45 fork files keep the rule at warn (vite.config.ts) until their effects state reasons. scripts/fork-effect-budget.json is gone with upstream's budget rule.
  • excludedUpstreamTests.ts is empty: upstream main has the link migrations.
  • Docs: docs/fork/operations.md, docs/fork/features.md, README.md, apps/machine-map/SPEC.md (MM-1906, MM-1907) follow the changes above.

Checks

  • checks.py: typecheck, migration check, adopted pull request check, format, lint and knip pass.
  • fork_tests.py: all 273 fork test files pass locally after the fixes. Fork CI runs the full suites.
  • "Agent context budget" (not required) fails: the measured MCP tool list grows by 680 bytes over main. Most of it is upstream's two link tools, which the test counts although the fork hides them from agents. The Claude and Codex instructions shrink by 108 bytes each. The committed budget has the new values; the check passes only with the agent-context-increase label, which a maintainer adds.

Fork repair skill changes

None.

PixPMusic and others added 29 commits October 27, 2026 00:36
…ngdotgg#24741)

Co-authored-by: none23 <n.anisimov.23@gmail.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
… warnings (pingdotgg#25815)

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

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

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: amv146 <39172404+amv146@users.noreply.github.com>
… a giant heading (pingdotgg#25804)

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

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

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

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…iB page kernels (pingdotgg#25825)

TEMPORARY workaround for an upstream Node bug: nodejs/node#67048
Node 26.9+ --build-sea writes linux-arm64 executables that 16/64 KiB page kernels cannot load.
linux-arm64 now injects with postject, and the archive build rejects incompatible ELF layouts.
One-time exception. Revert once Node ships a fix: grep for the Node issue URL and drop postject
from scripts/package.json.

Fixes pingdotgg#23433. Replaces pingdotgg#23443.

Co-authored-by: Lakshmi Tanmay <lakshmi@voltcrash.com>
Co-authored-by: maria-rcks <maria@kuuro.net>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…s 4x faster (pingdotgg#25824)

Co-authored-by: Omar <76748259+omar9848492@users.noreply.github.com>
Co-authored-by: Carlos D. Escobar-Valbuena <carlosdavidescobar@gmail.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 (Claude Code) <noreply@anthropic.com>
Co-authored-by: maria-rcks <maria@kuuro.net>
Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>
…7-0910

# Conflicts:
#	apps/mobile/src/lib/modelOptions.ts
#	apps/mobile/src/persistence/mobile-preferences.ts
…h no list open (pingdotgg#25809)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…saves a draft twice (pingdotgg#25768)

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

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

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

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…rom screen effects (pingdotgg#25820)

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

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

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Yash-Singh1 and others added 21 commits October 28, 2026 00:23
…real load (pingdotgg#26314)

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

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

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

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

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

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

# Conflicts:
#	apps/mobile/src/persistence/mobile-preferences.ts
Upstream merged the adopted linked environments stack (pingdotgg#16653 to pingdotgg#16719).
Conflicts take upstream's stack code, then apply the fork hooks again: arrows give the
links (MachinePeers), the CLI refuses manual links, and Settings shows arrow links.
…inks and removed code

- Thread links keep the #<messageId> fragment on upstream's v1 and v2 links.
- The @ menu and the send check use upstream's linked environments; load
  balancing keeps the machine map readable environments.
- Snooze quick options give way to upstream's snooze presets setting.
- Fork code that used code upstream deleted as unreached gets it back or drops it.
- Fork effects in upstream files state their reasons. Fork files keep the
  effect rule at warn until their effects state reasons (vite.config.ts).
- docs/fork: the adopted list is empty, linked environments need upstream's
  Labs setting, thread links have v2 forms, snooze quick options are gone.
- apps/machine-map/SPEC.md MM-1906 and MM-1907 follow the linked environments.
- A provider failure releases its held queue again: upstream's nextQueuedRun
  now skips held runs, so the fork hook reads the first queued run.
- Launch ids, message links and the agent context budget follow upstream.
…kground work details return

- t3_environment_link and t3_environment_unlink stay hidden in the fork; the
  texts that pointed to them say that links come from machine map arrows.
- The message link rule appends #<messageId> to the thread's link as given.
- A fork hook adds the background work details popover to upstream's new banner.
@Yarden-zamir Yarden-zamir changed the title chore(sync): merge pingdotgg/t3code main chore(sync)!: merge pingdotgg/t3code main Oct 28, 2026
@Yarden-zamir Yarden-zamir added the agent-context-increase The agent context budget grows on purpose label Oct 28, 2026
@Yarden-zamir

Copy link
Copy Markdown
Owner Author

🤖 Independent review (head 2557f096234f): changes needed.

  1. Medium: upstream's t3_environment_link tool creates a pairing card that always ends in MANUAL_LINK_REFUSAL in the fork. Fix: hide the link tools; fix the texts that point agents at them.
  2. Medium: forkThreadLinkInstructions.ts:7 still taught v1 message links; cross-machine message links could open nothing.
  3. Low: the fork's background-work details (task names, output files, icon popover) were lost under upstream's new banner, while docs/fork/features.md still described them.
  4. Low: removing "Snooze quick options" is breaking; the title needs !.
  5. Low: linkedEnvironmentsEnabled must be on before the update reaches the machines (set through the machine map, revision 675).
  6. Decision: mobileNewThreadProject overlaps upstream's "Use last project"; option A kept (both run, upstream decides first).

Confirmed: fork hooks intact (236 files before and after), every deleted fork file has a reason, migrations 70 to 72 do not collide.
Fixed in 3acafb866a9b: 1 to 4.

Fork runs skip upstream's PeerLinkRequests.test.ts: its link request card needs
t3_environment_link, which the fork hides.
@Yarden-zamir
Yarden-zamir marked this pull request as ready for review October 28, 2026 08:54
…pstream's gate

Upstream's toolkit keeps its Linked environments gate, which its eval reads.
The /mcp toolkit of the fork hides the two link tools in every case.
@Yarden-zamir
Yarden-zamir merged commit a98f8a2 into main Oct 28, 2026
22 checks passed
@Yarden-zamir
Yarden-zamir deleted the fork-sync/2026-10-27-0910 branch October 28, 2026 09:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agent-context-increase The agent context budget grows on purpose

Projects

None yet

Development

Successfully merging this pull request may close these issues.