Skip to content

chore(coil): merge upstream/main 580948708b (552 commits) - #164

Merged
radroid merged 561 commits into
mainfrom
coil/sync-20261008
Oct 8, 2026
Merged

radroid merged 561 commits into
mainfrom
coil/sync-20261008

Conversation

@radroid

@radroid radroid commented Oct 8, 2026

Copy link
Copy Markdown
Owner

Daily sync #161 stopped on 25 conflicts, with upstream 552 commits ahead. The range includes upstream's new orchestrator (pingdotgg#2829, orchestration v2), which deletes the v1 engine most fork server features hooked into. The maintainer chose to merge all of it and park the features that broke rather than port them in the same change.

Summary

 main
+  merge upstream/main cdd331b6c3 (547)       # conflict resolutions only
+  park fork features built on orchestration v1
+  ci: Chromium for server tests, retire release-workflow test
+  fix: fork code on Effect 4.0.1 + v2 thread shell
+  docs(coil-home): drop parked features
+  docs: seam ledger at cdd331b6c3
+  ci: 40-minute test gate
+  merge upstream/main 580948708b (5)        # relay-client fixes, no seam touched
+  docs: repoint the ledger at 580948708b

Parked (unwired, original paths under coil-parked/; see its README for each feature's dropped upstream edits and upstream replacement):

Feature Upstream now ships
Auto-resume Usage-limit recovery, Auto-resume limited threads (Settings → General)
Loops Scheduled tasks (partial overlap)
Web Push nothing
Needs-input notifications Opt-in Thread notifications (pingdotgg#11481)
Offline outbox + Queue button Server-side follow-up queue while a run is active; nothing while disconnected
Crash-recovery reconciler ProviderRuntimeRecoveryService at startup
#21 supervisor tolerance + heartbeat pingdotgg#14897 jittered backoff; no heartbeat

Still live: update delivery, branding (#71), mobile bare-Return send, clone diagnostics (#98), Azure auth classification (#122), backend heap headroom, the security overrides.

Review the resolutions with git log --merges -1 -p --cc <merge>; the seam ledger (docs/coil/SEAMS.md) now reads 65 files, +1100/-5774.

Evidence

Local, per package (vp test run --testTimeout=120000 --hookTimeout=120000, realpath'd TMPDIR):

Package Result
contracts / shared / client-runtime 651 / 1426 / 1957 passed
web 6621 passed
desktop 1482 passed (2 Electron-download races pass on re-run)
server 7189 passed, 1 failed
mobile 2165 passed, 2 failed
scripts 433 passed, 1 failed

None of the failures come from the merge:

  • server: UsageService v4-cache test. ENOTEMPTY on its own temp dir on macOS. The fork's server footprint does not touch it.
  • mobile: swiftc timeout under load. The EXPermissionsService TSan race happens because upstream's patch still targets expo-modules-core 57; the test is darwin-only, so Linux CI skips it.
  • scripts: the known Apple Silicon cross-arch Windows test.

Typecheck: 0 errors in every package (tsc --noEmit, including scripts). vp lint: clean.

Desktop release gates, run locally with the release's environment (unsigned): build:desktop, then the mac arm64 dmg with T3CODE_DESKTOP_UPDATE_REPOSITORY=disabled, the fork's app id and its 67 exclusions. Result: no app-update.yml was packaged, and verify-desktop-bundle.mjs passed (109.42 MiB asar, 3411 files, 4 native imports resolved).

Merge Danger

Door: one-way, in practice.

The first v2 launch copies state.sqlite into statev2.sqlite and works there; the v1 database stays untouched, so git revert -m 1 restores the old app but not anything done after the upgrade. The desktop app moves its browser profile to t3code-v2; upstream's one-time import carries localStorage (drafts, settings) but not cookies or IndexedDB, so a re-sign-in to T3 Connect or preview-browser sites may be needed. Clients and server must both speak orchestration protocol 2.

Blast Radius: everything

Every surface takes upstream's v2. The fork loses auto-resume (use upstream's), loops, Web Push, needs-input notifications (use upstream's thread notifications), and the offline outbox until each is ported.

Resolved locally by Claude Opus 5.5 in Claude Code.

🤖 Generated with Claude Code

esthor and others added 30 commits October 5, 2026 19:25
…gg#16307)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ll (pingdotgg#16273)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…ingdotgg#16275)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-authored-by: Lakshmi Tanmay <lakshmi@voltcrash.com>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…3563)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…pingdotgg#13565)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…et (pingdotgg#13566)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…13567)

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

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…s live beside it (pingdotgg#16340)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…utes map them to HTTP (pingdotgg#16341)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… group (pingdotgg#16353)

Fixes pingdotgg#4880. Originally pingdotgg#14639 by @Project516.

Co-authored-by: Project516 <138796702+Project516@users.noreply.github.com>
…ingdotgg#13758)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…14718)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…16357)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…dotgg#16206)

Favicons in ProjectEnrichmentService now keep for 15 minutes. Repository identity keeps its 1-minute TTL, so remote changes still show within a minute.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
… histories (pingdotgg#16358)

The Claude capabilities probe now asks for usage with skipBehaviors, so it no longer scans every local transcript and misses its 4 s deadline. Takes over pingdotgg#14456.

Co-authored-by: Ashkaan <a@ashkaan.me>
maria-rcks and others added 27 commits October 8, 2026 15:21
…rs (pingdotgg#17077)

Co-authored-by: maria-rcks <254055478+maria-rcks@users.noreply.github.com>
…otgg#17214)

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

Co-authored-by: PR Batch Tester <agent@local.test>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…otgg#17271)

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

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

Co-authored-by: Claude Code <noreply@anthropic.com>
Co-authored-by: Julius Marminge <51714798+juliusmarminge@users.noreply.github.com>
…dflared (pingdotgg#17275)

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

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…0585)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Absorbs upstream's orchestration v2 (pingdotgg#2829), Effect 4.0.1 (pingdotgg#16138) and
Expo SDK 58 / React Native 0.88 RC (pingdotgg#12045).

Conflicts resolved:
- Retired workflows (ci, deploy-relay, desktop-macos-preview-publish,
  mobile-eas-preview, mobile-eas-production, release-desktop, release):
  kept deleted.
- ClaudeAdapter.ts: deleted upstream (now orchestration-v2's
  ClaudeAdapterV2); the fork's loop hooks are parked with loops.
- server.ts, serverRuntimeStartup.ts (+test), McpHttpServer.ts: upstream's
  v2 wiring; the coil reactors, routes, loop toolkit and crash-recovery
  phase are parked.
- ChatView.tsx, ChatComposer.tsx, ComposerPrimaryActions.tsx,
  SettingsSidebarNav.tsx, settingsSearch.ts: upstream's; the outbox Queue
  button and the loops settings route are parked.
- client-runtime supervisor.ts (+test): upstream's rewrite (pingdotgg#14897 backoff,
  multi-route); the fork's #21 slow-backend tolerance and heartbeat are
  parked.
- __root.tsx: upstream's notices plus the coil update toast.
- Desktop: keep both (backend NODE_OPTIONS + T3CODE_CLI_PATH, coil update
  IPC handlers/channels after upstream's CLI and legacy-storage ones,
  CoilUpdateDelivery beside the renamed layerDesktopSsh); identity tests
  say "T3 Coil".
- Mobile composer types: upstream's alternate-submit signature, with the
  fork's bare-Return note.
- Source control: fork clone diagnostics beside upstream's Bitbucket
  locator errors; test helper follows upstream's makeLayer -> layer rename.
- SidebarChrome.tsx: the fork's derived wordmark moves into upstream's new
  SidebarBrandMark.
- contracts settings.ts: notifyOnNeedsInput beside sidebarWorkingShelfEnabled.
- pnpm-workspace.yaml: fork security overrides kept; the stale Expo 57 pins
  dropped for upstream's 58 ones; upstream's OpenCode Effect pins added.
- third-party-licenses.config.json: upstream's, plus http_ece.
- docs/user/source-control.md: upstream's Bitbucket settings copy, plus the
  fork's clone-credential note.
- pnpm-lock.yaml: seeded from upstream's lock and re-resolved; the only
  additions are web-push's tree, and the overrides lift path-to-regexp,
  valibot and xml2js.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Upstream's orchestration v2 (pingdotgg#2829) deleted the engine these features
hooked into. Move them, unported, to coil-parked/ at their original paths
and unwire them: auto-resume, loops (server, MCP toolkit, console,
settings, user guide), web push, needs-input notifications, the offline
outbox, and the crash-recovery reconciler.

coil-parked/README.md maps each feature to the upstream file edits that
were dropped and to what upstream now ships in its place. Lint ignores
the directory; no package typechecks or tests it.

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

Upstream's ServerBrowserPage.test.ts launches a real headless Chromium,
and upstream's ci.yml installs it first. The fork's CI, daily sync and
resolver run the same suite, so they install it the same way.

scripts/notify-discord-release.test.ts reads .github/workflows/release.yml,
which the fork retires. Delete it and add it to the sync script's retire
list so later syncs keep it deleted.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Effect 4.0.1 (pingdotgg#16138) moved effect/unstable/{process,http,cli} to
  effect/{process,http,cli}: desktop update delivery,
  scripts/coil/verify-mac-signature.ts and a source-control test follow.
- The update stager keeps node:crypto for its streaming SHA-256 of the
  ~470 MB download (Effect's Crypto digests a whole buffer), under the
  same per-file diagnostic opt-out upstream uses.
- The update toast's restart-when-idle check reads v2's thread runtime: a
  thread is busy while its run is active or parked at idle on background
  work that will wake it, and the toast subscribes to thread shells only
  while a restart is armed.
- Android's composer submit passes upstream's new `alternate` flag
  (always false there).
- The #122 Azure classification test uses it.effect.each for upstream's
  new no-test-in-loop rule.
- New upstream desktop tests assert the app name; they say "T3 Coil".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Needs-input notifications, Web Push with tolerant reconnect, and
auto-resume are parked after the orchestration v2 sync, so the
download page no longer lists them. Cursor's harness tag follows
upstream's marketing page (@cursor/sdk).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
65 upstream-owned files, +1100/-5774 (was 78, +2553/-5111). Sixteen rows
retire with the parked features; vite.config.ts, the new
DesktopApplicationMenu.test.ts fixture and the retired Discord test are
added. The mirror and parallel-path tables had only parked rows.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Server test files grew from 354 to 524 in this range. The fork's gate
already took 13-17 minutes of its 20, so raise it to 40 and the daily
sync, which runs the same verify after the merge, from 30 to 50.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@radroid
radroid merged commit 604ae7c into main Oct 8, 2026
0 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.