Repository navigation
[coil-sync] daily sync needs attention (conflict) #151
Description
Activity
- addedcoil-syncUpstream sync needs a human/agentUpstream sync needs a human/agent
on Sep 13, 2026 Automated daily upstream sync could not complete.
Result:
conflict
Recovery tag:coil/last-good-20260914-143255
Run: https://github.com/radroid/t3code/actions/runs/34856183514status JSON
{ "kind": "daily", "result": "conflict", "upstream_range": "9375c7797 fix(release): preserve updates from npm-based services (#11732)\n6f00d3881 fix(web): remember panel width for each thread (#11310)\n8ef478eb0 fix(server): avoid extra round trips for terminal output (#11407)\n0dec07d91 fix(web): keep large image previews from stalling composer typing (#11324)\n01e05c152 docs(claude): clarify OpenRouter model selection (#11369)\nd8655ed2f feat(cli): add t3 service restart and make t3 update repoint the service eagerly (#11702)\ncba7dd778 feat(desktop): allow disabling the local environment (#9194)\ne3792a53f Update model and input type in ui-consistency.md\n0b54e00f9 Change input type from 'full_diff' to 'incremental'\n8984f8103 fix(web): test device hosts across selected environments (#11699)\n1ced38a66 fix(server): skip device hosts that resolve to the local machine (#11698)\n73b206f4b feat(web): show each worktree setup step and let users cancel it (#11372)\nb70015b6d feat(cli): add t3 uninstall for self-contained installs (#11659)\n91cd91c08 feat(release): publish npx t3 as a launcher over per-platform executable packages (#11607)\n2f7616ef1 ci(release): build the JS bundle once and run every platform and architecture in parallel (#11606)\n2c54f2ff1 ci(release): build CLI archives for five targets, each on its own architecture (#11605)\n07549200d feat(desktop): run the WSL backend from the Linux CLI archive (#11511)\naf6c138a0 feat(server): manage runtimes as release archives only, never from npm (#11510)\nc7f23c466 feat(cli): add t3 update for self-contained installs (#11451)\n13c134c10 feat(ssh): run preview builds on remotes from the release archive (#11319)\n8f90b380f feat(server): install preview runtimes from release archives (#11318)\neb8f6f42a ci(release): build, sign, and publish self-contained CLI archives (#11317)\n06de59b3d build(server): make the CLI bundle loadable as a Node single-executable (#11316)\n683aa8709 build(desktop): bundle the main process and stage only its native externals (#11410)\nd81278aa6 revert(web): remove the compact sidebar (#11685)\n1bbca0e78 feat(settings): choose how responses stream, with a warning on legacy token mode (#11678)\n3b75e607e feat(server): add reusable auth token for dev worktrees (#8606)\n564719165 fix(mobile): keep usage widget rows consistently sized (#11669)\n5e961d3d7 feat(web): flatten the connections page into one environments list (#11672)\n2d7374650 fix(web): disconnect offline servers from threads (#11671)\nc07575f57 feat(server): show finished paragraphs and code blocks while the response streams (#11062)\n66e39ca2a fix(web): apply device settings to selected environments (#11541)\n3689c98d2 fix(web): separate expanded tool output from adjacent hover highlights (#11658)\n9086a1f71 fix(mobile): adopt system glass for Live Activities (#11604)\n7b6109988 feat(web): show the linked pull request in the compact sidebar rail (#11652)\ndf7ccc8fd feat(web): refine compact thread row badges (#11644)\n77bca8b2d feat(web): add compact thread list mode (#9417)\n6e5e986f1 feat: badge background thread notifications on desktop and web (#11569)\ndd6ba84dc fix(server): fall back when new worktrees are unavailable (#6208)\n9bf349cf6 fix(cursor): preserve internal agent errors without transport labels (#11365)\n0118b5229 fix(web): keep sparse sidebar shelves at the bottom (#11595)\nf26198d79 feat(web): organize connections by environment (#11542)\n42b6bcc6f feat(web): add opt-in in-app thread notifications (#11570)\nca2cc1339 feat(web): add optional compact sidebar rail (#11525)\ne62868393 fix(web): retry startup after the server recovers (#11291)\n4a39cade9 fix(web): offer recovery from missing pages (#11314)\n20363c32c feat(web): add provider selector to pull request toolbar (#11524)\n17f8e2a8a feat(mobile): add pooled subscription usage widgets (#11506)\n0a91b9a11 feat(mobile): show startup crashes in Settings \u2192 Diagnostics (#11540)\n20a8f1de3 chore(mobile): enable noUncheckedIndexedAccess and noImplicitOverride (#11538)\ndb6e0531e feat(github): route pull request operations across matching accounts (#11367)\n8b3ddf51c fix(mobile): stop crashing on launch before the shell snapshot arrives (#11537)\nd7c71f91d feat(web): float the pull request comment composer (#11531)\n21d53ca2e fix(files): browse ignored files and load folders on demand (#11527)\n2ec59ca1f fix(web): hide back button for single linked pull requests (#11520)\n46140c96a fix(web): unify panel resizing and retain final drag width (#11529)\n3138f5716 fix(grok): emit task lifecycle for monitors and background shells (#9139)\n0c5771d60 fix(web): match draft row heights to thread rows (#11512)\n6fd68f5c3 feat(source-control): support Forgejo and Gitea with fj and tea (#11436)\nc29976458 fix(server): open Cursor links in classic IDE mode (#11498)\n0e0ddaeed feat(web): add opt-in thread notifications and sounds (#11481)\naf0657e3b fix(mobile): stop alerting that shared content vanished after sending it (#11487)\n5781e2be2 fix(mobile): stop crashing on launch when a thread has a PR stack (#11486)\n2587c8060 feat(web): switch saved environments off instead of removing them (#11478)\n2db675aef fix(usage): respect provider account homes (#11485)\n6cdbf76fa feat(web): expose each chat message as a heading for screen readers (#11199)\n68c2277f5 feat(composer): fold large pastes into text attachments (#11442)\n36caf200c feat(web): choose the default diff file state (#11484)\n8ddd9f7ef fix(desktop): bound backend shutdown wait during quit (#7599)\nfcbe45796 fix(usage): make unavailable account limits more visible (#10601)\naf2baccd1 fix(web): keep subagent rows visible under folded turns (#11474)\nc0ddfb3a8 feat(web): subagent spawns render as an expandable work row (#11433)\nb0c6c3b2f fix(web): tighten sidebar search and footer spacing (#11466)\nc1ff6ab3d fix(web): move viewer controls outside media and restore arrow navigation (#11470)\n75d8b132c feat(web): tint image chips with their average color (#11468)\n03e135577 fix(web): complete thread status icons and keep input threads prominent (#11461)\ncfeaca41a fix(web): preserve preview focus on window return (#11444)\n348645152 fix(chat): keep user input outside collapsed work (#11363)\nc542b781c fix(desktop): keep the native preview User-Agent so Turnstile passes (#7110)\nbbedad027 fix(mobile): render photo library picks to a bounded JPEG off the JS thread (#11440)\na43f9b45a fix(web): preserve snapshot preview size in sent messages (#11429)\n534952210 Delete .pnpm-store/v11 directory\n18d8cbfd9 fix(mobile): pin expo-audio so the release smoke patch stays in use (#11426)\n", "upstream_head": "9375c779707fb95c06670db6da87441720b2d2e2\n", "conflicted_files": "apps/desktop/src/backend/DesktopBackendConfiguration.ts apps/mobile/modules/t3-composer-editor/android/src/main/java/expo/modules/t3composereditor/T3ComposerEditorView.kt apps/mobile/modules/t3-composer-editor/ios/T3ComposerEditorView.swift apps/web/src/components/settings/settingsSearch.ts pnpm-lock.yaml \n", "culprit_commits": "cba7dd778 feat(desktop): allow disabling the local environment (#9194)\n07549200d feat(desktop): run the WSL backend from the Linux CLI archive (#11511)\n06de59b3d build(server): make the CLI bundle loadable as a Node single-executable (#11316)\nd81278aa6 revert(web): remove the compact sidebar (#11685)\n1bbca0e78 feat(settings): choose how responses stream, with a warning on legacy token mode (#11678)\n5e961d3d7 feat(web): flatten the connections page into one environments list (#11672)\nc07575f57 feat(server): show finished paragraphs and code blocks while the response streams (#11062)\n9086a1f71 fix(mobile): adopt system glass for Live Activities (#11604)\n77bca8b2d feat(web): add compact thread list mode (#9417)\n42b6bcc6f feat(web): add opt-in in-app thread notifications (#11570)\nca2cc1339 feat(web): add optional compact sidebar rail (#11525)\ndb6e0531e feat(github): route pull request operations across matching accounts (#11367)\n6fd68f5c3 feat(source-control): support Forgejo and Gitea with fj and tea (#11436)\n0e0ddaeed feat(web): add opt-in thread notifications and sounds (#11481)\n68c2277f5 feat(composer): fold large pastes into text attachments (#11442)\n36caf200c feat(web): choose the default diff file state (#11484)\nbbedad027 fix(mobile): render photo library picks to a bounded JPEG off the JS thread (#11440)\n18d8cbfd9 fix(mobile): pin expo-audio so the release smoke patch stays in use (#11426)\n", "failing_step": "\n", "patch_manifest": "5d3360ccc test(coil): the doomed-turn replay waits for the reactor's verdict, not a turn count\ndc619218e fix(coil): the bundle gate no longer fails a good release on regex quotes or JXA imports\n4b5c186a4 chore(deps): keep the astro 7.2.8 bump lock-only and inside the release-age policy\n3c3db729a chore(deps): resolve the lockfile for sharp 0.35.4 in /scripts\n4fae7d5d1 fix(coil): give http_ece a license notice so the desktop build passes\nfdada32d4 chore(deps): bump astro from 7.2.0 to 7.2.8\n0f9537582 chore(deps): bump sharp from 0.34.5 to 0.35.4 in /scripts\na068bb6de docs(coil): re-baseline the seam ledger for the 2026-09-12 sync\na81b3bd93 chore(coil): keep two seams additive after the merge\na0de8ee9d test(coil): the pre-ready desktop entry carries the fork's app name\nae3329145 ci(coil): install libsecret on Linux runners and the renamed Spectre component\nb8b4cb613 fix(coil): crash recovery leaves prepared restart continuations alone\n2eec9cf7d fix(coil): read Claude rate-limit rejections from the runtime warning\ne0438aaec fix(coil): queued messages carry structured context like a normal send\nc2207685f fix(coil): follow the Effect rc.112 and TypeScript 7 toolchain bumps\n89d522523 fix(coil): one failed auto-resume fire no longer aborts the tick\naefebcff3 test(coil): replay the #118 spend-limit payloads through the auto-resume classifier\nc48265fe4 test(coil): auto-resume tests wait on receipts, never on scheduler turns\n86054c7cb fix(server): classify Azure DevOps \"not authorized\" failures as authentication\n8391a6a32 fix(coil): the update toast's build age advances while the toast is visible\n8ed54891d test(coil): loops \u2014 tests wait on receipts, never on scheduler turns\n1c1af59ee feat(coil): loops \u2014 the supervisor announces what it did\n5c6b6f37a perf(coil): loops \u2014 pruning happens when a run ends, not on every write\nb14796927 fix(coil): loops \u2014 the test harness never moves the clock on its own\naafdeed80 fix(coil): loops \u2014 one store read per tick, and a harness that waits for the answer\n8e998c5fb fix(coil): loops \u2014 the console tells the truth about what it is showing\n588780000 fix(coil): loops \u2014 bound the state file and close the route and toolkit holes\n97de6179c fix(coil): loops \u2014 install the adapter hooks in production and correct the decision table\n8f07eb778 docs(coil): format the loops prototypes and rebuild the report\nabf29cfd7 fix(coil): loops \u2014 one store instance and loop_done wired across phases\n55dcd248e docs(coil): ledger totals for the loops seam row\n9397ad2d5 feat(coil): loops \u2014 the reactor, wired in (Phase 2)\n1ef7a6f92 feat(coil): loops \u2014 raise_blocker, loop_status and loop_done (Phase 5)\n3f15ffe71 docs(user): loops\nf16916d41 feat(coil): loops \u2014 Settings \u2192 Loops (Phase 4)\nb63e34b3e feat(coil): loops \u2014 the console overlay and the answer route (Phase 3)\ncc268cb68 docs(coil-home): the site no longer promises a daily rebase\n02f3b2cec docs(coil): the sync runbook and specs for a merge-based sync\ncfd948fe6 ci(coil): sync upstream by merging, not rebasing\n5caa9afa0 feat(coil): loops \u2014 the sentinel and the HTTP API (Phases 1\u20132)\n252ed85be feat(coil): loops \u2014 the pure decision table and guards (Phase 2)\n8af8a1fd0 feat(coil): loops \u2014 record the agent's own scheduled wakes and pending questions (Phase 1)\nea836a96e feat(coil): loops \u2014 the durable record, config and cron parse (Phase 1 foundation)\nffef26c1b docs(coil): resolve the #125 review findings and verify the plan's assumptions\n7ca73fa6d refactor(coil): isClaudeThread accepts a thread shell\n368b7b368 refactor(coil): one scope-auth helper for every fork route\n93c1e67b8 docs(coil): re-baseline the seam ledger against the 2026-09-02 merge-base\ndcf49a1c1 fix(mobile): Return no longer submits while dictation freezes the composer\n3bdf109e2 fix(coil): report the DPoP failure reason on the auto-resume route\n88d5e2421 fix(coil): a server auto-settle must not destroy an armed auto-resume\n5ac7b67f4 fix(web): the queue path counts file attachments, not just images\naab748d91 fix(coil): re-home the outbox idle gate upstream deleted with canSettle\n55ef32cd2 fix(coil): drop the pre-rename fork-seam import the rebase left behind\n50f65243a chore(deps): regenerate the lockfile against the 2026-09-02 upstream tree\nd96d6da07 test(coil): wait for the collided arm to be destroyed instead of looking once\nd029a8377 fix(coil): stop the fork's boot reconcile from swallowing upstream's orphan pass\nd9defcd55 docs(coil): re-baseline the seam ledger against the 2026-08-27 merge-base\nd6ba8b8e6 test(coil): provide the services upstream's orphaned-session reconcile now needs\ne7b51fbd1 docs(coil): Loops \u2014 design, prototypes and implementation plan (#42, #38 residue) (#120)\n178ed120f fix(coil): a turn that died inside the closed window isn't advancement (#121)\n8ebb3b3ba docs(coil): repoint the ledger at the final merge-base\naa9d1eff8 docs(coil): re-baseline the seam ledger against the 2026-08-17 merge-base\na216210a8 test(web): reconcile upstream's new running-send assertion with the fork's steer label\n9fcf81f4b test(coil): carry the app rename onto upstream's new DMG title assertion\n096d2cc53 fix(coil): migrate the update toast off the native title tooltip\n094d0abde docs(coil): fix seam-ledger rows the #71 rename left pointing at t3x names (#116)\na4a5098fd fix(coil): the verify gate must not require Bun-runtime imports the shipped app cannot reach (#107)\n470816d96 fix(coil): verify every packaged layer, and fail on layers the gate cannot see (#102) (#106)\n9bdd817b2 docs(coil): re-measure the seam ledger on the landing branch\nc6ad39389 fix(coil): drop a stray blank seam line the rebase left in ThreadComposer\ne49d1369d fix(web): surface enqueue failures as a toast, not the maskable error banner\n2aad2f7a1 docs(coil): re-baseline the seam ledger against the 2026-08-14 merge-base\n40b271d32 fix(server): name why a clone failed, and which provider it was\nf616ba3aa fix(coil): stop shipping upstream's update feed, which we never actually disabled\nf659ea8dd fix(coil): restore the release, and make two of its checks capable of failing\n51ee891dc fix(coil): publish a canonical Latest release, and re-arm retention\n723f95941 docs(coil): design a canonical Latest release for the fork\nf751f0a01 fix(coil): tell the truth about the one macOS prompt an update raises\ne0e8e22ff perf(coil): halve the desktop release bundle (#53)\n0602eef1c docs(coil): re-baseline the ledger for the sidebar wordmark row\nf404119d0 feat(coil): finish the app rename at the surfaces that name the app (#71)\n4c57838a2 docs(coil): repoint two ledger citations at the paths #71 moved\n324f88ca5 refactor(coil): retire the local desktop autobuild\n02ca4fd19 fix(coil): reach the renamed relay through a service binding (#71)\n81e6ec966 fix(coil): make --rotate emit the CI secret commands itself (#71)\n9b440b7b5 fix(coil): finish the certificate rotation and list all 47 rows in the ledger (#71)\n82db9038e chore(coil): re-record the designated requirement after the certificate rotation\nf02d7775d fix(coil): compute the build-counter offset in bash, not in an expression (#71)\ndd33f974b fix(coil): repoint the last references to moved files (#71)\nc181de9be style(coil): format the files this rename touched (#71)\neafe55a81 docs(coil): re-baseline the seam ledger and correct the runbooks (#71)\n490939a7e fix(coil): carry PRs #78 and #84 across the rename (#71)\n9426bcb8d feat(coil): move the relay, keeping the old hostname alive as a proxy (#71)\nbd8c6a5c3 feat(coil): cut the sync automation over to coil names (#71)\ne18120a1c feat(coil): move the release identity, offsetting the counter so clients keep updating (#71)\naa5bf5c8b feat(coil): rename the app to T3 Coil, with its own bundle id and certificate (#71)\neaad55239 refactor(coil): move the fork's directories and symbols off t3x (#71)\n893ff9dc5 docs(coil): design the t3x -> coil rename around its four silent failures (#71)\nc2533809c fix(deps): clear the sharp and @hono/node-server advisories by re-resolution (#58) (#87)\n08935e020 feat(coil): put the real install steps on the download page, from one source (#72)\n", "detail": "merge aborted; working tree restored\n" }
▶ To fix: comment
@claude resolveon this issue (or run the coil sync resolve (agent) workflow). An agent replays the merge, resolves the conflicts, runs typecheck/lint/test, and opens an ordinary PR for review — nothing is pushed tomain. Runbook:docs/coil/sync-agent-runbook.md.Automated daily upstream sync could not complete.
Result:
conflict
Recovery tag:coil/last-good-20260915-125839
Run: https://github.com/radroid/t3code/actions/runs/34971944748status JSON
{ "kind": "daily", "result": "conflict", "upstream_range": "50ff4c371 fix(mobile): ensure a compatible native client before verification (#11862)\n6ecc15fa2 fix(mobile): restrict row highlighting to pointer input (#11863)\n9ea892e3b fix(client): show thread state changes before remote replies (#11408)\na37b85279 perf(server): speed up worktree fetch and checkout (#11633)\n5b377e2a0 fix(server): bound Git process bursts to keep connections responsive (#11405)\ncc839c42b feat(web): queue messages sent client-side while the agent is working (#11673)\n2c19283af feat(server): persist the worktree setup send and progress on the thread (#11852)\n26b8f985d feat(mobile): add iPad keyboard shortcuts and command palette (#11679)\nb20d29dc4 fix(desktop): prevent startup from running twice (#11857)\n0310cbf9f fix: keep worktree setup visible after leaving and reopening the thread (#11836)\n5623089ae fix(server): disable color probes in worktree setup (#11843)\na62e7d670 refactor(server): align title generation with Effect conventions (#11847)\n08abda9dc refactor(server): resolve title links through source control providers (#11844)\n8b9f6d3d5 Change conclusion from 'failure' to 'neutral'\n970a8730e Change conclusion status from failure to neutral\n537dc0fe1 Remove labels from ui-consistency.md\ne9b055588 Remove labels from effect service conventions\n7cafe52bb fix(server): keep thread titles tied to user intent (#10720)\nb5b29e7b8 fix(server): stream tight list items one at a time in paragraph mode (#11833)\n5ea643981 feat(web): inline worktree setup rows and async setup scripts (#11832)\n6dbea7ed0 chore(mobile): bump app version to 1.2.0\nea6af5924 feat(mobile): redesign the Android agent activity card (#11645)\n3be02ae57 feat: add custom snooze dates and durations (#11800)\n014016a62 fix(web): make copy PR link discoverable in keybindings (#11826)\n9a49d6d5a ci(desktop): sign fork PR macOS previews without exposing signing secrets (#11760)\n5bf43c9f3 fix(web): align monogram project icons in menus (#11806)\n793122797 fix(server): stop refreshing providers on every config subscription (#11811)\n84192388b Add new GitHub user f-trycua\ndc0869b60 feat(server): use Clerk's device authorization grant for headless connect login (#11794)\n0f21fcbb6 feat(mobile): add a T3 Connect page to the Clerk profile (#11765)\nbcc20249c chore(deps): bump the Clerk stack to current releases (#11764)\n9d4bb550a fix(mobile): scale inline pills with Dynamic Type (#11792)\n549d182aa feat(mobile): clone repositories in the background and gate the draft on the clone (#11774)\n8d7c700c1 feat(web): clone repositories in the background instead of holding the palette open (#11762)\n112a7088d fix(web): use project monograms for automatic icon fallbacks (#11572)\nf328db30d chore(server): keep the legacy service entry point to the npm package only (#11770)\n9130d932f feat(web): add composer and PR number shortcuts (#11615)\n33118d9ab Add T3CODE_OTLP_PROTOCOL to allow protobuf protocol (#11224)\n47ace9496 fix(web): use consistent PR section toggles (#11763)\n494cfac24 Allow setting T3CODE_OTLP_HEADERS (#11218)\nec5ede5e6 fix(web): open video attachment thumbnails in the viewer (#11734)\n05e3bcbc6 fix(desktop): keep preview releases out of the nightly update changelog (#11753)\n955b787e6 fix(server): parse CLI versions with a \"v\" prefix (#11738)\nae67c5b81 fix(release): stop npm from pruning the platform packages' shipped node_modules (#11750)\n8b1ea4dd2 fix(desktop): restore Node discovery for WSL providers (#11741)\n9375c7797 fix(release): preserve updates from npm-based services (#11732)\n6f00d3881 fix(web): remember panel width for each thread (#11310)\n8ef478eb0 fix(server): avoid extra round trips for terminal output (#11407)\n0dec07d91 fix(web): keep large image previews from stalling composer typing (#11324)\n01e05c152 docs(claude): clarify OpenRouter model selection (#11369)\nd8655ed2f feat(cli): add t3 service restart and make t3 update repoint the service eagerly (#11702)\ncba7dd778 feat(desktop): allow disabling the local environment (#9194)\ne3792a53f Update model and input type in ui-consistency.md\n0b54e00f9 Change input type from 'full_diff' to 'incremental'\n8984f8103 fix(web): test device hosts across selected environments (#11699)\n1ced38a66 fix(server): skip device hosts that resolve to the local machine (#11698)\n73b206f4b feat(web): show each worktree setup step and let users cancel it (#11372)\nb70015b6d feat(cli): add t3 uninstall for self-contained installs (#11659)\n91cd91c08 feat(release): publish npx t3 as a launcher over per-platform executable packages (#11607)\n2f7616ef1 ci(release): build the JS bundle once and run every platform and architecture in parallel (#11606)\n2c54f2ff1 ci(release): build CLI archives for five targets, each on its own architecture (#11605)\n07549200d feat(desktop): run the WSL backend from the Linux CLI archive (#11511)\naf6c138a0 feat(server): manage runtimes as release archives only, never from npm (#11510)\nc7f23c466 feat(cli): add t3 update for self-contained installs (#11451)\n13c134c10 feat(ssh): run preview builds on remotes from the release archive (#11319)\n8f90b380f feat(server): install preview runtimes from release archives (#11318)\neb8f6f42a ci(release): build, sign, and publish self-contained CLI archives (#11317)\n06de59b3d build(server): make the CLI bundle loadable as a Node single-executable (#11316)\n683aa8709 build(desktop): bundle the main process and stage only its native externals (#11410)\nd81278aa6 revert(web): remove the compact sidebar (#11685)\n1bbca0e78 feat(settings): choose how responses stream, with a warning on legacy token mode (#11678)\n3b75e607e feat(server): add reusable auth token for dev worktrees (#8606)\n564719165 fix(mobile): keep usage widget rows consistently sized (#11669)\n5e961d3d7 feat(web): flatten the connections page into one environments list (#11672)\n2d7374650 fix(web): disconnect offline servers from threads (#11671)\nc07575f57 feat(server): show finished paragraphs and code blocks while the response streams (#11062)\n66e39ca2a fix(web): apply device settings to selected environments (#11541)\n3689c98d2 fix(web): separate expanded tool output from adjacent hover highlights (#11658)\n9086a1f71 fix(mobile): adopt system glass for Live Activities (#11604)\n7b6109988 feat(web): show the linked pull request in the compact sidebar rail (#11652)\ndf7ccc8fd feat(web): refine compact thread row badges (#11644)\n77bca8b2d feat(web): add compact thread list mode (#9417)\n6e5e986f1 feat: badge background thread notifications on desktop and web (#11569)\ndd6ba84dc fix(server): fall back when new worktrees are unavailable (#6208)\n9bf349cf6 fix(cursor): preserve internal agent errors without transport labels (#11365)\n0118b5229 fix(web): keep sparse sidebar shelves at the bottom (#11595)\nf26198d79 feat(web): organize connections by environment (#11542)\n42b6bcc6f feat(web): add opt-in in-app thread notifications (#11570)\nca2cc1339 feat(web): add optional compact sidebar rail (#11525)\ne62868393 fix(web): retry startup after the server recovers (#11291)\n4a39cade9 fix(web): offer recovery from missing pages (#11314)\n20363c32c feat(web): add provider selector to pull request toolbar (#11524)\n17f8e2a8a feat(mobile): add pooled subscription usage widgets (#11506)\n0a91b9a11 feat(mobile): show startup crashes in Settings \u2192 Diagnostics (#11540)\n20a8f1de3 chore(mobile): enable noUncheckedIndexedAccess and noImplicitOverride (#11538)\ndb6e0531e feat(github): route pull request operations across matching accounts (#11367)\n8b3ddf51c fix(mobile): stop crashing on launch before the shell snapshot arrives (#11537)\nd7c71f91d feat(web): float the pull request comment composer (#11531)\n21d53ca2e fix(files): browse ignored files and load folders on demand (#11527)\n2ec59ca1f fix(web): hide back button for single linked pull requests (#11520)\n", "upstream_head": "50ff4c371eab927a9650c114975241999f4cd7b1\n", "conflicted_files": "apps/desktop/src/backend/DesktopBackendConfiguration.ts apps/mobile/modules/t3-composer-editor/android/src/main/java/expo/modules/t3composereditor/T3ComposerEditorView.kt apps/mobile/modules/t3-composer-editor/ios/T3ComposerEditorView.swift apps/mobile/src/native/T3ComposerEditor.types.ts apps/server/src/serverRuntimeStartup.ts apps/server/src/sourceControl/SourceControlRepositoryService.ts apps/web/src/components/ChatView.tsx apps/web/src/components/chat/ComposerPrimaryActions.test.tsx apps/web/src/components/chat/ComposerPrimaryActions.tsx apps/web/src/components/settings/settingsSearch.ts pnpm-lock.yaml \n", "culprit_commits": "cc839c42b feat(web): queue messages sent client-side while the agent is working (#11673)\n2c19283af feat(server): persist the worktree setup send and progress on the thread (#11852)\n26b8f985d feat(mobile): add iPad keyboard shortcuts and command palette (#11679)\n0310cbf9f fix: keep worktree setup visible after leaving and reopening the thread (#11836)\n5ea643981 feat(web): inline worktree setup rows and async setup scripts (#11832)\n3be02ae57 feat: add custom snooze dates and durations (#11800)\n0f21fcbb6 feat(mobile): add a T3 Connect page to the Clerk profile (#11765)\nbcc20249c chore(deps): bump the Clerk stack to current releases (#11764)\n8d7c700c1 feat(web): clone repositories in the background instead of holding the palette open (#11762)\n9130d932f feat(web): add composer and PR number shortcuts (#11615)\n33118d9ab Add T3CODE_OTLP_PROTOCOL to allow protobuf protocol (#11224)\n494cfac24 Allow setting T3CODE_OTLP_HEADERS (#11218)\n8b1ea4dd2 fix(desktop): restore Node discovery for WSL providers (#11741)\n6f00d3881 fix(web): remember panel width for each thread (#11310)\ncba7dd778 feat(desktop): allow disabling the local environment (#9194)\n73b206f4b feat(web): show each worktree setup step and let users cancel it (#11372)\n07549200d feat(desktop): run the WSL backend from the Linux CLI archive (#11511)\n06de59b3d build(server): make the CLI bundle loadable as a Node single-executable (#11316)\nd81278aa6 revert(web): remove the compact sidebar (#11685)\n1bbca0e78 feat(settings): choose how responses stream, with a warning on legacy token mode (#11678)\n5e961d3d7 feat(web): flatten the connections page into one environments list (#11672)\n2d7374650 fix(web): disconnect offline servers from threads (#11671)\nc07575f57 feat(server): show finished paragraphs and code blocks while the response streams (#11062)\n9086a1f71 fix(mobile): adopt system glass for Live Activities (#11604)\n77bca8b2d feat(web): add compact thread list mode (#9417)\n42b6bcc6f feat(web): add opt-in in-app thread notifications (#11570)\nca2cc1339 feat(web): add optional compact sidebar rail (#11525)\ndb6e0531e feat(github): route pull request operations across matching accounts (#11367)\n2ec59ca1f fix(web): hide back button for single linked pull requests (#11520)\n6fd68f5c3 feat(source-control): support Forgejo and Gitea with fj and tea (#11436)\n0e0ddaeed feat(web): add opt-in thread notifications and sounds (#11481)\n68c2277f5 feat(composer): fold large pastes into text attachments (#11442)\n36caf200c feat(web): choose the default diff file state (#11484)\nbbedad027 fix(mobile): render photo library picks to a bounded JPEG off the JS thread (#11440)\n18d8cbfd9 fix(mobile): pin expo-audio so the release smoke patch stays in use (#11426)\n", "failing_step": "\n", "patch_manifest": "3acc43842 chore(coil): delete inherited upstream workflows instead of disabling th\n5d3360ccc test(coil): the doomed-turn replay waits for the reactor's verdict, not a turn count\ndc619218e fix(coil): the bundle gate no longer fails a good release on regex quotes or JXA imports\n4b5c186a4 chore(deps): keep the astro 7.2.8 bump lock-only and inside the release-age policy\n3c3db729a chore(deps): resolve the lockfile for sharp 0.35.4 in /scripts\n4fae7d5d1 fix(coil): give http_ece a license notice so the desktop build passes\nfdada32d4 chore(deps): bump astro from 7.2.0 to 7.2.8\n0f9537582 chore(deps): bump sharp from 0.34.5 to 0.35.4 in /scripts\na068bb6de docs(coil): re-baseline the seam ledger for the 2026-09-12 sync\na81b3bd93 chore(coil): keep two seams additive after the merge\na0de8ee9d test(coil): the pre-ready desktop entry carries the fork's app name\nae3329145 ci(coil): install libsecret on Linux runners and the renamed Spectre component\nb8b4cb613 fix(coil): crash recovery leaves prepared restart continuations alone\n2eec9cf7d fix(coil): read Claude rate-limit rejections from the runtime warning\ne0438aaec fix(coil): queued messages carry structured context like a normal send\nc2207685f fix(coil): follow the Effect rc.112 and TypeScript 7 toolchain bumps\n89d522523 fix(coil): one failed auto-resume fire no longer aborts the tick\naefebcff3 test(coil): replay the #118 spend-limit payloads through the auto-resume classifier\nc48265fe4 test(coil): auto-resume tests wait on receipts, never on scheduler turns\n86054c7cb fix(server): classify Azure DevOps \"not authorized\" failures as authentication\n8391a6a32 fix(coil): the update toast's build age advances while the toast is visible\n8ed54891d test(coil): loops \u2014 tests wait on receipts, never on scheduler turns\n1c1af59ee feat(coil): loops \u2014 the supervisor announces what it did\n5c6b6f37a perf(coil): loops \u2014 pruning happens when a run ends, not on every write\nb14796927 fix(coil): loops \u2014 the test harness never moves the clock on its own\naafdeed80 fix(coil): loops \u2014 one store read per tick, and a harness that waits for the answer\n8e998c5fb fix(coil): loops \u2014 the console tells the truth about what it is showing\n588780000 fix(coil): loops \u2014 bound the state file and close the route and toolkit holes\n97de6179c fix(coil): loops \u2014 install the adapter hooks in production and correct the decision table\n8f07eb778 docs(coil): format the loops prototypes and rebuild the report\nabf29cfd7 fix(coil): loops \u2014 one store instance and loop_done wired across phases\n55dcd248e docs(coil): ledger totals for the loops seam row\n9397ad2d5 feat(coil): loops \u2014 the reactor, wired in (Phase 2)\n1ef7a6f92 feat(coil): loops \u2014 raise_blocker, loop_status and loop_done (Phase 5)\n3f15ffe71 docs(user): loops\nf16916d41 feat(coil): loops \u2014 Settings \u2192 Loops (Phase 4)\nb63e34b3e feat(coil): loops \u2014 the console overlay and the answer route (Phase 3)\ncc268cb68 docs(coil-home): the site no longer promises a daily rebase\n02f3b2cec docs(coil): the sync runbook and specs for a merge-based sync\ncfd948fe6 ci(coil): sync upstream by merging, not rebasing\n5caa9afa0 feat(coil): loops \u2014 the sentinel and the HTTP API (Phases 1\u20132)\n252ed85be feat(coil): loops \u2014 the pure decision table and guards (Phase 2)\n8af8a1fd0 feat(coil): loops \u2014 record the agent's own scheduled wakes and pending questions (Phase 1)\nea836a96e feat(coil): loops \u2014 the durable record, config and cron parse (Phase 1 foundation)\nffef26c1b docs(coil): resolve the #125 review findings and verify the plan's assumptions\n7ca73fa6d refactor(coil): isClaudeThread accepts a thread shell\n368b7b368 refactor(coil): one scope-auth helper for every fork route\n93c1e67b8 docs(coil): re-baseline the seam ledger against the 2026-09-02 merge-base\ndcf49a1c1 fix(mobile): Return no longer submits while dictation freezes the composer\n3bdf109e2 fix(coil): report the DPoP failure reason on the auto-resume route\n88d5e2421 fix(coil): a server auto-settle must not destroy an armed auto-resume\n5ac7b67f4 fix(web): the queue path counts file attachments, not just images\naab748d91 fix(coil): re-home the outbox idle gate upstream deleted with canSettle\n55ef32cd2 fix(coil): drop the pre-rename fork-seam import the rebase left behind\n50f65243a chore(deps): regenerate the lockfile against the 2026-09-02 upstream tree\nd96d6da07 test(coil): wait for the collided arm to be destroyed instead of looking once\nd029a8377 fix(coil): stop the fork's boot reconcile from swallowing upstream's orphan pass\nd9defcd55 docs(coil): re-baseline the seam ledger against the 2026-08-27 merge-base\nd6ba8b8e6 test(coil): provide the services upstream's orphaned-session reconcile now needs\ne7b51fbd1 docs(coil): Loops \u2014 design, prototypes and implementation plan (#42, #38 residue) (#120)\n178ed120f fix(coil): a turn that died inside the closed window isn't advancement (#121)\n8ebb3b3ba docs(coil): repoint the ledger at the final merge-base\naa9d1eff8 docs(coil): re-baseline the seam ledger against the 2026-08-17 merge-base\na216210a8 test(web): reconcile upstream's new running-send assertion with the fork's steer label\n9fcf81f4b test(coil): carry the app rename onto upstream's new DMG title assertion\n096d2cc53 fix(coil): migrate the update toast off the native title tooltip\n094d0abde docs(coil): fix seam-ledger rows the #71 rename left pointing at t3x names (#116)\na4a5098fd fix(coil): the verify gate must not require Bun-runtime imports the shipped app cannot reach (#107)\n470816d96 fix(coil): verify every packaged layer, and fail on layers the gate cannot see (#102) (#106)\n9bdd817b2 docs(coil): re-measure the seam ledger on the landing branch\nc6ad39389 fix(coil): drop a stray blank seam line the rebase left in ThreadComposer\ne49d1369d fix(web): surface enqueue failures as a toast, not the maskable error banner\n2aad2f7a1 docs(coil): re-baseline the seam ledger against the 2026-08-14 merge-base\n40b271d32 fix(server): name why a clone failed, and which provider it was\nf616ba3aa fix(coil): stop shipping upstream's update feed, which we never actually disabled\nf659ea8dd fix(coil): restore the release, and make two of its checks capable of failing\n51ee891dc fix(coil): publish a canonical Latest release, and re-arm retention\n723f95941 docs(coil): design a canonical Latest release for the fork\nf751f0a01 fix(coil): tell the truth about the one macOS prompt an update raises\ne0e8e22ff perf(coil): halve the desktop release bundle (#53)\n0602eef1c docs(coil): re-baseline the ledger for the sidebar wordmark row\nf404119d0 feat(coil): finish the app rename at the surfaces that name the app (#71)\n4c57838a2 docs(coil): repoint two ledger citations at the paths #71 moved\n324f88ca5 refactor(coil): retire the local desktop autobuild\n02ca4fd19 fix(coil): reach the renamed relay through a service binding (#71)\n81e6ec966 fix(coil): make --rotate emit the CI secret commands itself (#71)\n9b440b7b5 fix(coil): finish the certificate rotation and list all 47 rows in the ledger (#71)\n82db9038e chore(coil): re-record the designated requirement after the certificate rotation\nf02d7775d fix(coil): compute the build-counter offset in bash, not in an expression (#71)\ndd33f974b fix(coil): repoint the last references to moved files (#71)\nc181de9be style(coil): format the files this rename touched (#71)\neafe55a81 docs(coil): re-baseline the seam ledger and correct the runbooks (#71)\n490939a7e fix(coil): carry PRs #78 and #84 across the rename (#71)\n9426bcb8d feat(coil): move the relay, keeping the old hostname alive as a proxy (#71)\nbd8c6a5c3 feat(coil): cut the sync automation over to coil names (#71)\ne18120a1c feat(coil): move the release identity, offsetting the counter so clients keep updating (#71)\naa5bf5c8b feat(coil): rename the app to T3 Coil, with its own bundle id and certificate (#71)\neaad55239 refactor(coil): move the fork's directories and symbols off t3x (#71)\n893ff9dc5 docs(coil): design the t3x -> coil rename around its four silent failures (#71)\nc2533809c fix(deps): clear the sharp and @hono/node-server advisories by re-resolution (#58) (#87)\n", "detail": "merge aborted; working tree restored\n" }
▶ To fix: comment
@claude resolveon this issue (or run the coil sync resolve (agent) workflow). An agent replays the merge, resolves the conflicts, runs typecheck/lint/test, and opens an ordinary PR for review — nothing is pushed tomain. Runbook:docs/coil/sync-agent-runbook.md.Automated daily upstream sync could not complete.
Result:
conflict
Recovery tag:coil/last-good-20260916-125547
Run: https://github.com/radroid/t3code/actions/runs/35098576088status JSON
{ "kind": "daily", "result": "conflict", "upstream_range": "ccf220be2 docs: make the standalone installer the primary way to get the CLI (#11696)\nb900fc94e feat(web): reveal timestamps on tool rows and turn folds (#8641)\nbf55408a5 fix(server): resolve Node for standalone helper scripts (#12033)\n6ee03240b fix(clients): hold the discovered machine icon across relay refreshes (#12030)\nc1b2ed650 fix(clients): show unsupported environments as neutral rows with their machine icon (#12026)\n0f5a1513e fix(web): stop the worktree setup card from flashing and shifting (#12015)\nfe896e6a9 chore(release): prepare v0.0.42\n53612cc04 fix(server): detect unsupported legacy Android command-line tools (#12017)\n3060cc461 fix(release): restrict stable channels to main\n47ef0177d Revert \"chore(release): prepare v0.0.41\"\n0bf2d6b01 chore(release): prepare v0.0.41\nf8500f112 fix(mobile): use native toolbar search for licenses (#12011)\need974c12 fix(server): keep Claude rewind when fork history length changes (#11954)\n0ec2b08a9 fix(mobile): bare t3code:// links no longer reset navigation to Home (#12002)\n8c18b5bb2 fix(antigravity): stop health checks from filling the disk with _MEI folders (#12008)\n935c55b37 fix(clients): disable incompatible environments during discovery (#11990)\n7a368fe7c refactor: give project monograms their own icon variant (#11993)\nb12c92f69 fix(server): reuse Git index metadata during checkpoint capture (#10792)\n37a8ab2b2 feat(lint): extend Hermes API bans with a configurable API list (#11982)\n6f7aaffe2 fix(contracts): avoid Intl.Segmenter in monogram validation (Hermes crash) (#11984)\n87a12b53f fix(usage): refresh limits when the tab opens (#11928)\nf4600d77d fix: reduce GitHub quota use with sharing enabled (#11888)\nb84f63bb1 fix(server): block updates under legacy service launchers (#11940)\nf0a0ead94 fix(web): keep PR controls readable in narrow panels (#11962)\n2c16c1d26 fix(mobile): block incompatible server connections (#11974)\ne6ae764f4 feat(mobile): add v2 preview store builds (#11966)\n719a76ca1 feat(web): choose queue or steer for follow-up messages (#11964)\n96bddf812 fix(desktop): paste as text no longer doubles the pasted text (#11958)\nb18a560bb fix(mobile): update Reanimated and Worklets (#11957)\n844203d4f chore(deps): bump Clerk stack to latest stable versions (#11956)\na5da32750 fix(client-runtime): preserve cached turns and older-page loading (#8309)\n3efdcc529 Preserve diff tree order and collapsed folders (#11931)\n7235701de fix(server): release preview hosts after unanswered requests (#11381)\n24b711b7f fix: multiple UI and server bug fixes (#11593)\n438465d6b feat: add customizable soft-tint project monograms (#11845)\nd07ffbe35 fix(mobile): keep iOS chat rows aligned after measurement (#11813)\ncaf8b5d79 fix(mobile): wait for thread deep link hydration (#11502)\nd1790aa14 fix(mobile): add missing thread rename action (#11503)\n2a264adc6 fix(server): explain how to configure a missing Codex executable (#11345)\n9a6b57be2 fix(web): drop the filled well behind the sidebar header buttons (#11660)\nc1b221041 fix(desktop): keep the sidebar brand and window buttons aligned (#11906)\nae53072af fix(web): keep the composer ready during background worktree setup (#11883)\ne33b710d5 fix(mobile): match command palette colors to sheets (#11861)\nbf3be75c4 fix(web): center refresh devices in the empty state (#11808)\n3c4c9a125 fix(web): restore composer focus after closing option menus (#11884)\n50ff4c371 fix(mobile): ensure a compatible native client before verification (#11862)\n6ecc15fa2 fix(mobile): restrict row highlighting to pointer input (#11863)\n9ea892e3b fix(client): show thread state changes before remote replies (#11408)\na37b85279 perf(server): speed up worktree fetch and checkout (#11633)\n5b377e2a0 fix(server): bound Git process bursts to keep connections responsive (#11405)\ncc839c42b feat(web): queue messages sent client-side while the agent is working (#11673)\n2c19283af feat(server): persist the worktree setup send and progress on the thread (#11852)\n26b8f985d feat(mobile): add iPad keyboard shortcuts and command palette (#11679)\nb20d29dc4 fix(desktop): prevent startup from running twice (#11857)\n0310cbf9f fix: keep worktree setup visible after leaving and reopening the thread (#11836)\n5623089ae fix(server): disable color probes in worktree setup (#11843)\na62e7d670 refactor(server): align title generation with Effect conventions (#11847)\n08abda9dc refactor(server): resolve title links through source control providers (#11844)\n8b9f6d3d5 Change conclusion from 'failure' to 'neutral'\n970a8730e Change conclusion status from failure to neutral\n537dc0fe1 Remove labels from ui-consistency.md\ne9b055588 Remove labels from effect service conventions\n7cafe52bb fix(server): keep thread titles tied to user intent (#10720)\nb5b29e7b8 fix(server): stream tight list items one at a time in paragraph mode (#11833)\n5ea643981 feat(web): inline worktree setup rows and async setup scripts (#11832)\n6dbea7ed0 chore(mobile): bump app version to 1.2.0\nea6af5924 feat(mobile): redesign the Android agent activity card (#11645)\n3be02ae57 feat: add custom snooze dates and durations (#11800)\n014016a62 fix(web): make copy PR link discoverable in keybindings (#11826)\n9a49d6d5a ci(desktop): sign fork PR macOS previews without exposing signing secrets (#11760)\n5bf43c9f3 fix(web): align monogram project icons in menus (#11806)\n793122797 fix(server): stop refreshing providers on every config subscription (#11811)\n84192388b Add new GitHub user f-trycua\ndc0869b60 feat(server): use Clerk's device authorization grant for headless connect login (#11794)\n0f21fcbb6 feat(mobile): add a T3 Connect page to the Clerk profile (#11765)\nbcc20249c chore(deps): bump the Clerk stack to current releases (#11764)\n9d4bb550a fix(mobile): scale inline pills with Dynamic Type (#11792)\n549d182aa feat(mobile): clone repositories in the background and gate the draft on the clone (#11774)\n8d7c700c1 feat(web): clone repositories in the background instead of holding the palette open (#11762)\n112a7088d fix(web): use project monograms for automatic icon fallbacks (#11572)\nf328db30d chore(server): keep the legacy service entry point to the npm package only (#11770)\n9130d932f feat(web): add composer and PR number shortcuts (#11615)\n33118d9ab Add T3CODE_OTLP_PROTOCOL to allow protobuf protocol (#11224)\n47ace9496 fix(web): use consistent PR section toggles (#11763)\n494cfac24 Allow setting T3CODE_OTLP_HEADERS (#11218)\nec5ede5e6 fix(web): open video attachment thumbnails in the viewer (#11734)\n05e3bcbc6 fix(desktop): keep preview releases out of the nightly update changelog (#11753)\n955b787e6 fix(server): parse CLI versions with a \"v\" prefix (#11738)\nae67c5b81 fix(release): stop npm from pruning the platform packages' shipped node_modules (#11750)\n8b1ea4dd2 fix(desktop): restore Node discovery for WSL providers (#11741)\n9375c7797 fix(release): preserve updates from npm-based services (#11732)\n6f00d3881 fix(web): remember panel width for each thread (#11310)\n8ef478eb0 fix(server): avoid extra round trips for terminal output (#11407)\n0dec07d91 fix(web): keep large image previews from stalling composer typing (#11324)\n01e05c152 docs(claude): clarify OpenRouter model selection (#11369)\nd8655ed2f feat(cli): add t3 service restart and make t3 update repoint the service eagerly (#11702)\ncba7dd778 feat(desktop): allow disabling the local environment (#9194)\ne3792a53f Update model and input type in ui-consistency.md\n0b54e00f9 Change input type from 'full_diff' to 'incremental'\n8984f8103 fix(web): test device hosts across selected environments (#11699)\n", "upstream_head": "ccf220be205f0e509021dbc8cbda90daa638e20d\n", "conflicted_files": "apps/desktop/src/backend/DesktopBackendConfiguration.ts apps/mobile/modules/t3-composer-editor/android/src/main/java/expo/modules/t3composereditor/T3ComposerEditorView.kt apps/mobile/modules/t3-composer-editor/ios/T3ComposerEditorView.swift apps/mobile/src/native/T3ComposerEditor.types.ts apps/server/src/serverRuntimeStartup.ts apps/server/src/sourceControl/SourceControlRepositoryService.ts apps/web/src/components/ChatView.tsx apps/web/src/components/chat/ComposerPrimaryActions.test.tsx apps/web/src/components/chat/ComposerPrimaryActions.tsx apps/web/src/components/settings/settingsSearch.ts apps/web/src/routes/_chat.$environmentId.$threadId.tsx pnpm-lock.yaml \n", "culprit_commits": "0f5a1513e fix(web): stop the worktree setup card from flashing and shifting (#12015)\nfe896e6a9 chore(release): prepare v0.0.42\n47ef0177d Revert \"chore(release): prepare v0.0.41\"\n0bf2d6b01 chore(release): prepare v0.0.41\n719a76ca1 feat(web): choose queue or steer for follow-up messages (#11964)\nb18a560bb fix(mobile): update Reanimated and Worklets (#11957)\n844203d4f chore(deps): bump Clerk stack to latest stable versions (#11956)\nae53072af fix(web): keep the composer ready during background worktree setup (#11883)\ncc839c42b feat(web): queue messages sent client-side while the agent is working (#11673)\n2c19283af feat(server): persist the worktree setup send and progress on the thread (#11852)\n26b8f985d feat(mobile): add iPad keyboard shortcuts and command palette (#11679)\n0310cbf9f fix: keep worktree setup visible after leaving and reopening the thread (#11836)\n5ea643981 feat(web): inline worktree setup rows and async setup scripts (#11832)\n3be02ae57 feat: add custom snooze dates and durations (#11800)\n0f21fcbb6 feat(mobile): add a T3 Connect page to the Clerk profile (#11765)\nbcc20249c chore(deps): bump the Clerk stack to current releases (#11764)\n8d7c700c1 feat(web): clone repositories in the background instead of holding the palette open (#11762)\n9130d932f feat(web): add composer and PR number shortcuts (#11615)\n33118d9ab Add T3CODE_OTLP_PROTOCOL to allow protobuf protocol (#11224)\n494cfac24 Allow setting T3CODE_OTLP_HEADERS (#11218)\n8b1ea4dd2 fix(desktop): restore Node discovery for WSL providers (#11741)\n6f00d3881 fix(web): remember panel width for each thread (#11310)\ncba7dd778 feat(desktop): allow disabling the local environment (#9194)\n73b206f4b feat(web): show each worktree setup step and let users cancel it (#11372)\n07549200d feat(desktop): run the WSL backend from the Linux CLI archive (#11511)\n06de59b3d build(server): make the CLI bundle loadable as a Node single-executable (#11316)\nd81278aa6 revert(web): remove the compact sidebar (#11685)\n1bbca0e78 feat(settings): choose how responses stream, with a warning on legacy token mode (#11678)\n5e961d3d7 feat(web): flatten the connections page into one environments list (#11672)\n2d7374650 fix(web): disconnect offline servers from threads (#11671)\nc07575f57 feat(server): show finished paragraphs and code blocks while the response streams (#11062)\n9086a1f71 fix(mobile): adopt system glass for Live Activities (#11604)\n77bca8b2d feat(web): add compact thread list mode (#9417)\n42b6bcc6f feat(web): add opt-in in-app thread notifications (#11570)\nca2cc1339 feat(web): add optional compact sidebar rail (#11525)\ndb6e0531e feat(github): route pull request operations across matching accounts (#11367)\n2ec59ca1f fix(web): hide back button for single linked pull requests (#11520)\n6fd68f5c3 feat(source-control): support Forgejo and Gitea with fj and tea (#11436)\n0e0ddaeed feat(web): add opt-in thread notifications and sounds (#11481)\n68c2277f5 feat(composer): fold large pastes into text attachments (#11442)\n", "failing_step": "\n", "patch_manifest": "3acc43842 chore(coil): delete inherited upstream workflows instead of disabling th\n5d3360ccc test(coil): the doomed-turn replay waits for the reactor's verdict, not a turn count\ndc619218e fix(coil): the bundle gate no longer fails a good release on regex quotes or JXA imports\n4b5c186a4 chore(deps): keep the astro 7.2.8 bump lock-only and inside the release-age policy\n3c3db729a chore(deps): resolve the lockfile for sharp 0.35.4 in /scripts\n4fae7d5d1 fix(coil): give http_ece a license notice so the desktop build passes\nfdada32d4 chore(deps): bump astro from 7.2.0 to 7.2.8\n0f9537582 chore(deps): bump sharp from 0.34.5 to 0.35.4 in /scripts\na068bb6de docs(coil): re-baseline the seam ledger for the 2026-09-12 sync\na81b3bd93 chore(coil): keep two seams additive after the merge\na0de8ee9d test(coil): the pre-ready desktop entry carries the fork's app name\nae3329145 ci(coil): install libsecret on Linux runners and the renamed Spectre component\nb8b4cb613 fix(coil): crash recovery leaves prepared restart continuations alone\n2eec9cf7d fix(coil): read Claude rate-limit rejections from the runtime warning\ne0438aaec fix(coil): queued messages carry structured context like a normal send\nc2207685f fix(coil): follow the Effect rc.112 and TypeScript 7 toolchain bumps\n89d522523 fix(coil): one failed auto-resume fire no longer aborts the tick\naefebcff3 test(coil): replay the #118 spend-limit payloads through the auto-resume classifier\nc48265fe4 test(coil): auto-resume tests wait on receipts, never on scheduler turns\n86054c7cb fix(server): classify Azure DevOps \"not authorized\" failures as authentication\n8391a6a32 fix(coil): the update toast's build age advances while the toast is visible\n8ed54891d test(coil): loops \u2014 tests wait on receipts, never on scheduler turns\n1c1af59ee feat(coil): loops \u2014 the supervisor announces what it did\n5c6b6f37a perf(coil): loops \u2014 pruning happens when a run ends, not on every write\nb14796927 fix(coil): loops \u2014 the test harness never moves the clock on its own\naafdeed80 fix(coil): loops \u2014 one store read per tick, and a harness that waits for the answer\n8e998c5fb fix(coil): loops \u2014 the console tells the truth about what it is showing\n588780000 fix(coil): loops \u2014 bound the state file and close the route and toolkit holes\n97de6179c fix(coil): loops \u2014 install the adapter hooks in production and correct the decision table\n8f07eb778 docs(coil): format the loops prototypes and rebuild the report\nabf29cfd7 fix(coil): loops \u2014 one store instance and loop_done wired across phases\n55dcd248e docs(coil): ledger totals for the loops seam row\n9397ad2d5 feat(coil): loops \u2014 the reactor, wired in (Phase 2)\n1ef7a6f92 feat(coil): loops \u2014 raise_blocker, loop_status and loop_done (Phase 5)\n3f15ffe71 docs(user): loops\nf16916d41 feat(coil): loops \u2014 Settings \u2192 Loops (Phase 4)\nb63e34b3e feat(coil): loops \u2014 the console overlay and the answer route (Phase 3)\ncc268cb68 docs(coil-home): the site no longer promises a daily rebase\n02f3b2cec docs(coil): the sync runbook and specs for a merge-based sync\ncfd948fe6 ci(coil): sync upstream by merging, not rebasing\n5caa9afa0 feat(coil): loops \u2014 the sentinel and the HTTP API (Phases 1\u20132)\n252ed85be feat(coil): loops \u2014 the pure decision table and guards (Phase 2)\n8af8a1fd0 feat(coil): loops \u2014 record the agent's own scheduled wakes and pending questions (Phase 1)\nea836a96e feat(coil): loops \u2014 the durable record, config and cron parse (Phase 1 foundation)\nffef26c1b docs(coil): resolve the #125 review findings and verify the plan's assumptions\n7ca73fa6d refactor(coil): isClaudeThread accepts a thread shell\n368b7b368 refactor(coil): one scope-auth helper for every fork route\n93c1e67b8 docs(coil): re-baseline the seam ledger against the 2026-09-02 merge-base\ndcf49a1c1 fix(mobile): Return no longer submits while dictation freezes the composer\n3bdf109e2 fix(coil): report the DPoP failure reason on the auto-resume route\n88d5e2421 fix(coil): a server auto-settle must not destroy an armed auto-resume\n5ac7b67f4 fix(web): the queue path counts file attachments, not just images\naab748d91 fix(coil): re-home the outbox idle gate upstream deleted with canSettle\n55ef32cd2 fix(coil): drop the pre-rename fork-seam import the rebase left behind\n50f65243a chore(deps): regenerate the lockfile against the 2026-09-02 upstream tree\nd96d6da07 test(coil): wait for the collided arm to be destroyed instead of looking once\nd029a8377 fix(coil): stop the fork's boot reconcile from swallowing upstream's orphan pass\nd9defcd55 docs(coil): re-baseline the seam ledger against the 2026-08-27 merge-base\nd6ba8b8e6 test(coil): provide the services upstream's orphaned-session reconcile now needs\ne7b51fbd1 docs(coil): Loops \u2014 design, prototypes and implementation plan (#42, #38 residue) (#120)\n178ed120f fix(coil): a turn that died inside the closed window isn't advancement (#121)\n8ebb3b3ba docs(coil): repoint the ledger at the final merge-base\naa9d1eff8 docs(coil): re-baseline the seam ledger against the 2026-08-17 merge-base\na216210a8 test(web): reconcile upstream's new running-send assertion with the fork's steer label\n9fcf81f4b test(coil): carry the app rename onto upstream's new DMG title assertion\n096d2cc53 fix(coil): migrate the update toast off the native title tooltip\n094d0abde docs(coil): fix seam-ledger rows the #71 rename left pointing at t3x names (#116)\na4a5098fd fix(coil): the verify gate must not require Bun-runtime imports the shipped app cannot reach (#107)\n470816d96 fix(coil): verify every packaged layer, and fail on layers the gate cannot see (#102) (#106)\n9bdd817b2 docs(coil): re-measure the seam ledger on the landing branch\nc6ad39389 fix(coil): drop a stray blank seam line the rebase left in ThreadComposer\ne49d1369d fix(web): surface enqueue failures as a toast, not the maskable error banner\n2aad2f7a1 docs(coil): re-baseline the seam ledger against the 2026-08-14 merge-base\n40b271d32 fix(server): name why a clone failed, and which provider it was\nf616ba3aa fix(coil): stop shipping upstream's update feed, which we never actually disabled\nf659ea8dd fix(coil): restore the release, and make two of its checks capable of failing\n51ee891dc fix(coil): publish a canonical Latest release, and re-arm retention\n723f95941 docs(coil): design a canonical Latest release for the fork\nf751f0a01 fix(coil): tell the truth about the one macOS prompt an update raises\ne0e8e22ff perf(coil): halve the desktop release bundle (#53)\n0602eef1c docs(coil): re-baseline the ledger for the sidebar wordmark row\nf404119d0 feat(coil): finish the app rename at the surfaces that name the app (#71)\n4c57838a2 docs(coil): repoint two ledger citations at the paths #71 moved\n324f88ca5 refactor(coil): retire the local desktop autobuild\n02ca4fd19 fix(coil): reach the renamed relay through a service binding (#71)\n81e6ec966 fix(coil): make --rotate emit the CI secret commands itself (#71)\n9b440b7b5 fix(coil): finish the certificate rotation and list all 47 rows in the ledger (#71)\n82db9038e chore(coil): re-record the designated requirement after the certificate rotation\nf02d7775d fix(coil): compute the build-counter offset in bash, not in an expression (#71)\ndd33f974b fix(coil): repoint the last references to moved files (#71)\nc181de9be style(coil): format the files this rename touched (#71)\neafe55a81 docs(coil): re-baseline the seam ledger and correct the runbooks (#71)\n490939a7e fix(coil): carry PRs #78 and #84 across the rename (#71)\n9426bcb8d feat(coil): move the relay, keeping the old hostname alive as a proxy (#71)\nbd8c6a5c3 feat(coil): cut the sync automation over to coil names (#71)\ne18120a1c feat(coil): move the release identity, offsetting the counter so clients keep updating (#71)\naa5bf5c8b feat(coil): rename the app to T3 Coil, with its own bundle id and certificate (#71)\neaad55239 refactor(coil): move the fork's directories and symbols off t3x (#71)\n893ff9dc5 docs(coil): design the t3x -> coil rename around its four silent failures (#71)\nc2533809c fix(deps): clear the sharp and @hono/node-server advisories by re-resolution (#58) (#87)\n", "detail": "merge aborted; working tree restored\n" }
▶ To fix: comment
@claude resolveon this issue (or run the coil sync resolve (agent) workflow). An agent replays the merge, resolves the conflicts, runs typecheck/lint/test, and opens an ordinary PR for review — nothing is pushed tomain. Runbook:docs/coil/sync-agent-runbook.md.Automated daily upstream sync could not complete.
Result:
conflict
Recovery tag:coil/last-good-20260917-125158
Run: https://github.com/radroid/t3code/actions/runs/35223461239status JSON
{ "kind": "daily", "result": "conflict", "upstream_range": "1ab2dfb5a fix(desktop): keep preview picking active across subframe navigation (#9741)\n298f8c95c feat(mobile): add favorites to model picker (#12231)\ndd9528a97 fix(mobile): keep screen awake during dictation (#12227)\n0150c6a53 feat(web): start new threads with multiple models in separate worktrees (#12179)\nc0dded88b feat(web): command palette finds the pull requests and usage pages (#12211)\nc4ca1b0f9 feat(settings): add automatic storage cleanup per machine and project (#11598)\n2a47fc905 fix(skills): support unicode currency symbols as skill aliases (#12098)\n01eb4b9a8 fix(web): align notification icons with titles (#12202)\n712f8cad3 feat(web): command palette search matches thread IDs (#11185)\n886c83450 fix(web): folder links from chat open the file tree instead of a broken preview (#10909)\n6d1d54944 fix(diff): collapse files by default (#12190)\nf17165a76 fix(web): preserve thread reading positions (#12144)\n71d12d8c4 feat(web): make keybindings searchable from settings search (#12175)\nd359e94ca feat(web): enable rich text composer by default (#12160)\ndf466c798 fix(web): fall back when pull request avatars fail (#11728)\n573a8f2f3 fix(web): keep header spacing stable when sidebar drawer opens (#12162)\n901db8966 fix(server): keep VCS waits from blocking turn completion (#11970)\nd42a3bd2a fix(server): keep ready checkpoints when a later placeholder arrives (#8432)\n88d0c40c8 chore(mobile): bump app version to 1.2.1\n8130a9f13 fix(server): flush checkpoint objects and refs before publishing them (#10944)\n4abb07eac feat(mobile): port worktree setup progress and agent handoff (#12177)\n3bee4c286 fix(server): settle cancelled worktree setup before rollback (#12176)\n962bf6292 fix(web): show author avatars in pull request previews (#12125)\n315b72371 Remove `new` badge from Fable 5.1 (#12173)\nd612d12b8 fix(web): reuse cached GitHub PR details across entry points (#12168)\n19ee856ec fix(server): propagate linked pr changes and settle threads immediately (#12161)\nc12ba7581 feat(web): make pull request comments easier to scan (#12150)\nc1738f131 fix(server): keep large sparse checkouts on the fast checkpoint path (#12154)\ned88937cf fix(mobile): prevent Android compose FAB animation jitter (#12169)\n892b86da1 fix(web): align composer task rows (#12165)\ne47a11e1e fix(web): align follow-up and license settings controls (#12167)\n9686cd9af feat(web): choose themes from chat with color previews (#12143)\ne106fe95c design(mobile): unify Android Material layouts and native controls (#11841)\n394af73e0 fix(web): default diff panel to working tree (#12139)\ned1238979 fix(web): keep tool timestamps before disclosure chevrons (#12152)\n22539f2a4 fix(chat): group thoughts into the changing tool activity line (#12147)\ndda44ed33 fix(web): show tooltips for composer environment and workspace controls (#11787)\n01e64193d fix(web): simplify agent approval prompts (#12082)\nf1b497a55 feat(cli): show installer and update download progress (#12044)\n52ad70ec4 fix(web): prioritize linked pull requests over automatic diffs (#12142)\naae361c4e fix(review): show complete counts and load large diffs progressively (#10822)\n32e8b2584 fix(web): show private repository media in pull request tabs (#11706)\n384de0858 fix(web): adapt provider settings to available content width (#12138)\nd1a644897 fix(web): dropped folders become path chips on the local environment and are refused on remote ones (#12001)\neff44be43 feat(usage): show OpenCode Go, Cursor, and Grok subscription limits (#12115)\n052c7ae53 feat(chat): show provider thinking traces (#11784)\nf4ef5155f feat(web): add send shortcut and follow-up controls (#12075)\n0b83045d0 feat(providers): expose native slash commands across clients (#11519)\ne8ca3a828 refactor(web): centralize pull request icon state presentation (#11144)\nf45c6b4a7 fix(web): submit PR comments with Cmd/Ctrl+Enter (#11994)\nccf220be2 docs: make the standalone installer the primary way to get the CLI (#11696)\nb900fc94e feat(web): reveal timestamps on tool rows and turn folds (#8641)\nbf55408a5 fix(server): resolve Node for standalone helper scripts (#12033)\n6ee03240b fix(clients): hold the discovered machine icon across relay refreshes (#12030)\nc1b2ed650 fix(clients): show unsupported environments as neutral rows with their machine icon (#12026)\n0f5a1513e fix(web): stop the worktree setup card from flashing and shifting (#12015)\nfe896e6a9 chore(release): prepare v0.0.42\n53612cc04 fix(server): detect unsupported legacy Android command-line tools (#12017)\n3060cc461 fix(release): restrict stable channels to main\n47ef0177d Revert \"chore(release): prepare v0.0.41\"\n0bf2d6b01 chore(release): prepare v0.0.41\nf8500f112 fix(mobile): use native toolbar search for licenses (#12011)\need974c12 fix(server): keep Claude rewind when fork history length changes (#11954)\n0ec2b08a9 fix(mobile): bare t3code:// links no longer reset navigation to Home (#12002)\n8c18b5bb2 fix(antigravity): stop health checks from filling the disk with _MEI folders (#12008)\n935c55b37 fix(clients): disable incompatible environments during discovery (#11990)\n7a368fe7c refactor: give project monograms their own icon variant (#11993)\nb12c92f69 fix(server): reuse Git index metadata during checkpoint capture (#10792)\n37a8ab2b2 feat(lint): extend Hermes API bans with a configurable API list (#11982)\n6f7aaffe2 fix(contracts): avoid Intl.Segmenter in monogram validation (Hermes crash) (#11984)\n87a12b53f fix(usage): refresh limits when the tab opens (#11928)\nf4600d77d fix: reduce GitHub quota use with sharing enabled (#11888)\nb84f63bb1 fix(server): block updates under legacy service launchers (#11940)\nf0a0ead94 fix(web): keep PR controls readable in narrow panels (#11962)\n2c16c1d26 fix(mobile): block incompatible server connections (#11974)\ne6ae764f4 feat(mobile): add v2 preview store builds (#11966)\n719a76ca1 feat(web): choose queue or steer for follow-up messages (#11964)\n96bddf812 fix(desktop): paste as text no longer doubles the pasted text (#11958)\nb18a560bb fix(mobile): update Reanimated and Worklets (#11957)\n844203d4f chore(deps): bump Clerk stack to latest stable versions (#11956)\na5da32750 fix(client-runtime): preserve cached turns and older-page loading (#8309)\n3efdcc529 Preserve diff tree order and collapsed folders (#11931)\n7235701de fix(server): release preview hosts after unanswered requests (#11381)\n24b711b7f fix: multiple UI and server bug fixes (#11593)\n438465d6b feat: add customizable soft-tint project monograms (#11845)\nd07ffbe35 fix(mobile): keep iOS chat rows aligned after measurement (#11813)\ncaf8b5d79 fix(mobile): wait for thread deep link hydration (#11502)\nd1790aa14 fix(mobile): add missing thread rename action (#11503)\n2a264adc6 fix(server): explain how to configure a missing Codex executable (#11345)\n9a6b57be2 fix(web): drop the filled well behind the sidebar header buttons (#11660)\nc1b221041 fix(desktop): keep the sidebar brand and window buttons aligned (#11906)\nae53072af fix(web): keep the composer ready during background worktree setup (#11883)\ne33b710d5 fix(mobile): match command palette colors to sheets (#11861)\nbf3be75c4 fix(web): center refresh devices in the empty state (#11808)\n3c4c9a125 fix(web): restore composer focus after closing option menus (#11884)\n50ff4c371 fix(mobile): ensure a compatible native client before verification (#11862)\n6ecc15fa2 fix(mobile): restrict row highlighting to pointer input (#11863)\n9ea892e3b fix(client): show thread state changes before remote replies (#11408)\na37b85279 perf(server): speed up worktree fetch and checkout (#11633)\n5b377e2a0 fix(server): bound Git process bursts to keep connections responsive (#11405)\n", "upstream_head": "1ab2dfb5a7bd2996f79407b5d02cae6132a7626c\n", "conflicted_files": "apps/desktop/src/backend/DesktopBackendConfiguration.ts apps/mobile/modules/t3-composer-editor/android/src/main/java/expo/modules/t3composereditor/T3ComposerEditorView.kt apps/mobile/modules/t3-composer-editor/ios/T3ComposerEditorView.swift apps/mobile/src/native/T3ComposerEditor.types.ts apps/server/src/serverRuntimeStartup.ts apps/server/src/sourceControl/SourceControlRepositoryService.ts apps/web/src/components/ChatView.tsx apps/web/src/components/chat/ChatComposer.tsx apps/web/src/components/chat/ComposerPrimaryActions.test.tsx apps/web/src/components/chat/ComposerPrimaryActions.tsx apps/web/src/components/settings/SettingsPanels.tsx apps/web/src/components/settings/settingsSearch.ts apps/web/src/routes/_chat.$environmentId.$threadId.tsx packages/shared/src/composerTrigger.test.ts pnpm-lock.yaml \n", "culprit_commits": "dd9528a97 fix(mobile): keep screen awake during dictation (#12227)\n0150c6a53 feat(web): start new threads with multiple models in separate worktrees (#12179)\nc4ca1b0f9 feat(settings): add automatic storage cleanup per machine and project (#11598)\n2a47fc905 fix(skills): support unicode currency symbols as skill aliases (#12098)\nf17165a76 fix(web): preserve thread reading positions (#12144)\n71d12d8c4 feat(web): make keybindings searchable from settings search (#12175)\nd359e94ca feat(web): enable rich text composer by default (#12160)\ne47a11e1e fix(web): align follow-up and license settings controls (#12167)\n394af73e0 fix(web): default diff panel to working tree (#12139)\n01e64193d fix(web): simplify agent approval prompts (#12082)\n52ad70ec4 fix(web): prioritize linked pull requests over automatic diffs (#12142)\nd1a644897 fix(web): dropped folders become path chips on the local environment and are refused on remote ones (#12001)\n052c7ae53 feat(chat): show provider thinking traces (#11784)\nf4ef5155f feat(web): add send shortcut and follow-up controls (#12075)\n0f5a1513e fix(web): stop the worktree setup card from flashing and shifting (#12015)\nfe896e6a9 chore(release): prepare v0.0.42\n47ef0177d Revert \"chore(release): prepare v0.0.41\"\n0bf2d6b01 chore(release): prepare v0.0.41\n719a76ca1 feat(web): choose queue or steer for follow-up messages (#11964)\nb18a560bb fix(mobile): update Reanimated and Worklets (#11957)\n844203d4f chore(deps): bump Clerk stack to latest stable versions (#11956)\nae53072af fix(web): keep the composer ready during background worktree setup (#11883)\n3c4c9a125 fix(web): restore composer focus after closing option menus (#11884)\ncc839c42b feat(web): queue messages sent client-side while the agent is working (#11673)\n2c19283af feat(server): persist the worktree setup send and progress on the thread (#11852)\n26b8f985d feat(mobile): add iPad keyboard shortcuts and command palette (#11679)\n0310cbf9f fix: keep worktree setup visible after leaving and reopening the thread (#11836)\n5ea643981 feat(web): inline worktree setup rows and async setup scripts (#11832)\n3be02ae57 feat: add custom snooze dates and durations (#11800)\n0f21fcbb6 feat(mobile): add a T3 Connect page to the Clerk profile (#11765)\nbcc20249c chore(deps): bump the Clerk stack to current releases (#11764)\n8d7c700c1 feat(web): clone repositories in the background instead of holding the palette open (#11762)\n9130d932f feat(web): add composer and PR number shortcuts (#11615)\n33118d9ab Add T3CODE_OTLP_PROTOCOL to allow protobuf protocol (#11224)\n494cfac24 Allow setting T3CODE_OTLP_HEADERS (#11218)\n8b1ea4dd2 fix(desktop): restore Node discovery for WSL providers (#11741)\n6f00d3881 fix(web): remember panel width for each thread (#11310)\n0dec07d91 fix(web): keep large image previews from stalling composer typing (#11324)\ncba7dd778 feat(desktop): allow disabling the local environment (#9194)\n73b206f4b feat(web): show each worktree setup step and let users cancel it (#11372)\n", "failing_step": "\n", "patch_manifest": "3acc43842 chore(coil): delete inherited upstream workflows instead of disabling th\n5d3360ccc test(coil): the doomed-turn replay waits for the reactor's verdict, not a turn count\ndc619218e fix(coil): the bundle gate no longer fails a good release on regex quotes or JXA imports\n4b5c186a4 chore(deps): keep the astro 7.2.8 bump lock-only and inside the release-age policy\n3c3db729a chore(deps): resolve the lockfile for sharp 0.35.4 in /scripts\n4fae7d5d1 fix(coil): give http_ece a license notice so the desktop build passes\nfdada32d4 chore(deps): bump astro from 7.2.0 to 7.2.8\n0f9537582 chore(deps): bump sharp from 0.34.5 to 0.35.4 in /scripts\na068bb6de docs(coil): re-baseline the seam ledger for the 2026-09-12 sync\na81b3bd93 chore(coil): keep two seams additive after the merge\na0de8ee9d test(coil): the pre-ready desktop entry carries the fork's app name\nae3329145 ci(coil): install libsecret on Linux runners and the renamed Spectre component\nb8b4cb613 fix(coil): crash recovery leaves prepared restart continuations alone\n2eec9cf7d fix(coil): read Claude rate-limit rejections from the runtime warning\ne0438aaec fix(coil): queued messages carry structured context like a normal send\nc2207685f fix(coil): follow the Effect rc.112 and TypeScript 7 toolchain bumps\n89d522523 fix(coil): one failed auto-resume fire no longer aborts the tick\naefebcff3 test(coil): replay the #118 spend-limit payloads through the auto-resume classifier\nc48265fe4 test(coil): auto-resume tests wait on receipts, never on scheduler turns\n86054c7cb fix(server): classify Azure DevOps \"not authorized\" failures as authentication\n8391a6a32 fix(coil): the update toast's build age advances while the toast is visible\n8ed54891d test(coil): loops \u2014 tests wait on receipts, never on scheduler turns\n1c1af59ee feat(coil): loops \u2014 the supervisor announces what it did\n5c6b6f37a perf(coil): loops \u2014 pruning happens when a run ends, not on every write\nb14796927 fix(coil): loops \u2014 the test harness never moves the clock on its own\naafdeed80 fix(coil): loops \u2014 one store read per tick, and a harness that waits for the answer\n8e998c5fb fix(coil): loops \u2014 the console tells the truth about what it is showing\n588780000 fix(coil): loops \u2014 bound the state file and close the route and toolkit holes\n97de6179c fix(coil): loops \u2014 install the adapter hooks in production and correct the decision table\n8f07eb778 docs(coil): format the loops prototypes and rebuild the report\nabf29cfd7 fix(coil): loops \u2014 one store instance and loop_done wired across phases\n55dcd248e docs(coil): ledger totals for the loops seam row\n9397ad2d5 feat(coil): loops \u2014 the reactor, wired in (Phase 2)\n1ef7a6f92 feat(coil): loops \u2014 raise_blocker, loop_status and loop_done (Phase 5)\n3f15ffe71 docs(user): loops\nf16916d41 feat(coil): loops \u2014 Settings \u2192 Loops (Phase 4)\nb63e34b3e feat(coil): loops \u2014 the console overlay and the answer route (Phase 3)\ncc268cb68 docs(coil-home): the site no longer promises a daily rebase\n02f3b2cec docs(coil): the sync runbook and specs for a merge-based sync\ncfd948fe6 ci(coil): sync upstream by merging, not rebasing\n5caa9afa0 feat(coil): loops \u2014 the sentinel and the HTTP API (Phases 1\u20132)\n252ed85be feat(coil): loops \u2014 the pure decision table and guards (Phase 2)\n8af8a1fd0 feat(coil): loops \u2014 record the agent's own scheduled wakes and pending questions (Phase 1)\nea836a96e feat(coil): loops \u2014 the durable record, config and cron parse (Phase 1 foundation)\nffef26c1b docs(coil): resolve the #125 review findings and verify the plan's assumptions\n7ca73fa6d refactor(coil): isClaudeThread accepts a thread shell\n368b7b368 refactor(coil): one scope-auth helper for every fork route\n93c1e67b8 docs(coil): re-baseline the seam ledger against the 2026-09-02 merge-base\ndcf49a1c1 fix(mobile): Return no longer submits while dictation freezes the composer\n3bdf109e2 fix(coil): report the DPoP failure reason on the auto-resume route\n88d5e2421 fix(coil): a server auto-settle must not destroy an armed auto-resume\n5ac7b67f4 fix(web): the queue path counts file attachments, not just images\naab748d91 fix(coil): re-home the outbox idle gate upstream deleted with canSettle\n55ef32cd2 fix(coil): drop the pre-rename fork-seam import the rebase left behind\n50f65243a chore(deps): regenerate the lockfile against the 2026-09-02 upstream tree\nd96d6da07 test(coil): wait for the collided arm to be destroyed instead of looking once\nd029a8377 fix(coil): stop the fork's boot reconcile from swallowing upstream's orphan pass\nd9defcd55 docs(coil): re-baseline the seam ledger against the 2026-08-27 merge-base\nd6ba8b8e6 test(coil): provide the services upstream's orphaned-session reconcile now needs\ne7b51fbd1 docs(coil): Loops \u2014 design, prototypes and implementation plan (#42, #38 residue) (#120)\n178ed120f fix(coil): a turn that died inside the closed window isn't advancement (#121)\n8ebb3b3ba docs(coil): repoint the ledger at the final merge-base\naa9d1eff8 docs(coil): re-baseline the seam ledger against the 2026-08-17 merge-base\na216210a8 test(web): reconcile upstream's new running-send assertion with the fork's steer label\n9fcf81f4b test(coil): carry the app rename onto upstream's new DMG title assertion\n096d2cc53 fix(coil): migrate the update toast off the native title tooltip\n094d0abde docs(coil): fix seam-ledger rows the #71 rename left pointing at t3x names (#116)\na4a5098fd fix(coil): the verify gate must not require Bun-runtime imports the shipped app cannot reach (#107)\n470816d96 fix(coil): verify every packaged layer, and fail on layers the gate cannot see (#102) (#106)\n9bdd817b2 docs(coil): re-measure the seam ledger on the landing branch\nc6ad39389 fix(coil): drop a stray blank seam line the rebase left in ThreadComposer\ne49d1369d fix(web): surface enqueue failures as a toast, not the maskable error banner\n2aad2f7a1 docs(coil): re-baseline the seam ledger against the 2026-08-14 merge-base\n40b271d32 fix(server): name why a clone failed, and which provider it was\nf616ba3aa fix(coil): stop shipping upstream's update feed, which we never actually disabled\nf659ea8dd fix(coil): restore the release, and make two of its checks capable of failing\n51ee891dc fix(coil): publish a canonical Latest release, and re-arm retention\n723f95941 docs(coil): design a canonical Latest release for the fork\nf751f0a01 fix(coil): tell the truth about the one macOS prompt an update raises\ne0e8e22ff perf(coil): halve the desktop release bundle (#53)\n0602eef1c docs(coil): re-baseline the ledger for the sidebar wordmark row\nf404119d0 feat(coil): finish the app rename at the surfaces that name the app (#71)\n4c57838a2 docs(coil): repoint two ledger citations at the paths #71 moved\n324f88ca5 refactor(coil): retire the local desktop autobuild\n02ca4fd19 fix(coil): reach the renamed relay through a service binding (#71)\n81e6ec966 fix(coil): make --rotate emit the CI secret commands itself (#71)\n9b440b7b5 fix(coil): finish the certificate rotation and list all 47 rows in the ledger (#71)\n82db9038e chore(coil): re-record the designated requirement after the certificate rotation\nf02d7775d fix(coil): compute the build-counter offset in bash, not in an expression (#71)\ndd33f974b fix(coil): repoint the last references to moved files (#71)\nc181de9be style(coil): format the files this rename touched (#71)\neafe55a81 docs(coil): re-baseline the seam ledger and correct the runbooks (#71)\n490939a7e fix(coil): carry PRs #78 and #84 across the rename (#71)\n9426bcb8d feat(coil): move the relay, keeping the old hostname alive as a proxy (#71)\nbd8c6a5c3 feat(coil): cut the sync automation over to coil names (#71)\ne18120a1c feat(coil): move the release identity, offsetting the counter so clients keep updating (#71)\naa5bf5c8b feat(coil): rename the app to T3 Coil, with its own bundle id and certificate (#71)\neaad55239 refactor(coil): move the fork's directories and symbols off t3x (#71)\n893ff9dc5 docs(coil): design the t3x -> coil rename around its four silent failures (#71)\nc2533809c fix(deps): clear the sharp and @hono/node-server advisories by re-resolution (#58) (#87)\n", "detail": "merge aborted; working tree restored\n" }
▶ To fix: comment
@claude resolveon this issue (or run the coil sync resolve (agent) workflow). An agent replays the merge, resolves the conflicts, runs typecheck/lint/test, and opens an ordinary PR for review — nothing is pushed tomain. Runbook:docs/coil/sync-agent-runbook.md.Automated daily upstream sync could not complete.
Result:
conflict
Recovery tag:coil/last-good-20260918-122657
Run: https://github.com/radroid/t3code/actions/runs/35344598813status JSON
{ "kind": "daily", "result": "conflict", "upstream_range": "9ea9c3d5d fix(web): keep a file-to-symlink type change from crashing the diff view (#11075)\n52e4b4429 chore(deps): bump parents that carry vulnerable transitive dependencies (#12417)\n56a9bf2bd fix(git): prevent stale branch selections from restoring files (#10574)\nc5bbf3d14 chore(deps): bump the npm_and_yarn group across 1 directory with 3 updates (#12411)\n747962568 chore(relay): deploy with the Alchemy CLI and publish client config through an Action (#12401)\ne3c85ead6 chore(refs): sync Effect and Alchemy references to rc.115 and beta.78 (#12327)\nd547e3b12 chore(deps): upgrade Effect to rc.115 and Alchemy to beta.78 (#12326)\n243e94470 fix(mobile): remove Android input underline backgrounds (#12394)\n7a2cce826 feat(mobile): add copy thread ID to thread list actions (#12228)\n818add08f fix(mobile): use singular label for one settings environment (#12282)\n994654198 fix(web): share accessible color picker controls (#12355)\ncc39ec100 fix(mobile): share request action button defaults (#12366)\nc7fa1e969 fix(mobile): share settings action row defaults (#12369)\nfa2decfce refactor(web): share standalone page layout (#12354)\n58fcae64a refactor(mobile): share file preview feedback (#12368)\n1a2a03f44 refactor(mobile): share local environment lists (#12365)\n18dcc43ac refactor(mobile): share connection form fields (#12364)\n767a5dbd0 refactor(mobile): share thread list section controls (#12363)\n8eb1f6e74 refactor(web): reuse inline settings actions (#12362)\n4aa841a8d refactor(web): share settings group surfaces (#12360)\n14337401b refactor(mobile): share Android toolbar search fields (#12359)\n6088c8104 refactor(web): share diagnostic process actions (#12358)\na1390ac65 fix(mobile): share settings control row layout (#12356)\n05a8c6016 fix(mobile): share accessible connection trace controls (#12371)\n5a3901331 fix(web): share touch-visible pull request edit actions (#12370)\n8583eac64 refactor(web): reuse searchable picker inputs (#12353)\n53510d44e fix(mobile): define Clerk colors in every Uniwind theme (#12344)\n3fd5d6439 fix(web): keep numbered jumps from stealing browser tabs (#12315)\n9051ed9c3 feat(web): open diff files from a right-click context menu (#11842)\n256e630ef feat(web): filter sidebar from thread menu (#8719)\n3fd21df62 fix(server): pass Codex image attachments by path to avoid oversized requests (#11050)\n5f2253956 chore(review): keep review bots out of the vendored .repos references (#12333)\n1455cb5c3 fix(server): checkpoint workspaces with empty nested repositories (#12181)\nfcfd9f911 fix(web): keep chat from jumping when the scroll-to-end pill mounts (#12317)\nd17f46d76 fix(server): refresh file search outside checkpoint processing (#12308)\n67993623a fix(server): capture checkpoints when baseline lookup fails (#12307)\nb4620d595 fix(server): reject file rewind in shared workspaces (#12306)\nb17cc2ab5 fix(server): bound provider event log records before serialization (#12305)\n4cc984fed fix(web): keep browser pages aligned during panel animations (#12329)\ne26af33b2 fix(web): keep PR panel actions in the current thread (#12320)\n6deac7a92 fix(mobile): show Agent behavior icon on Android (#12316)\n675869d2b fix(usage): preserve saved totals after transcript cleanup (#12304)\n592021f00 fix(web): collapse thoughts within tool groups (#12302)\n4749035bd fix(web): keep composer banners compact and readable (#12166)\n03950089f feat(web): pull request files can be marked as viewed (#7721)\n8db3c250f fix(mobile): prevent overlapping text and UI on Android chat messages (#11611)\nc25c3e0ee feat(mobile): make Settings easier to navigate and scope (#12272)\n2d8378b44 fix(web): avoid reopening settled threads when adding projects (#11804)\nfbc8b9600 fix(web): keep thoughts and failed tool calls in one activity row (#12270)\nd4d5d12e8 fix(shared): keep the newest shared usage scan (#10315)\n1ab2dfb5a fix(desktop): keep preview picking active across subframe navigation (#9741)\n298f8c95c feat(mobile): add favorites to model picker (#12231)\ndd9528a97 fix(mobile): keep screen awake during dictation (#12227)\n0150c6a53 feat(web): start new threads with multiple models in separate worktrees (#12179)\nc0dded88b feat(web): command palette finds the pull requests and usage pages (#12211)\nc4ca1b0f9 feat(settings): add automatic storage cleanup per machine and project (#11598)\n2a47fc905 fix(skills): support unicode currency symbols as skill aliases (#12098)\n01eb4b9a8 fix(web): align notification icons with titles (#12202)\n712f8cad3 feat(web): command palette search matches thread IDs (#11185)\n886c83450 fix(web): folder links from chat open the file tree instead of a broken preview (#10909)\n6d1d54944 fix(diff): collapse files by default (#12190)\nf17165a76 fix(web): preserve thread reading positions (#12144)\n71d12d8c4 feat(web): make keybindings searchable from settings search (#12175)\nd359e94ca feat(web): enable rich text composer by default (#12160)\ndf466c798 fix(web): fall back when pull request avatars fail (#11728)\n573a8f2f3 fix(web): keep header spacing stable when sidebar drawer opens (#12162)\n901db8966 fix(server): keep VCS waits from blocking turn completion (#11970)\nd42a3bd2a fix(server): keep ready checkpoints when a later placeholder arrives (#8432)\n88d0c40c8 chore(mobile): bump app version to 1.2.1\n8130a9f13 fix(server): flush checkpoint objects and refs before publishing them (#10944)\n4abb07eac feat(mobile): port worktree setup progress and agent handoff (#12177)\n3bee4c286 fix(server): settle cancelled worktree setup before rollback (#12176)\n962bf6292 fix(web): show author avatars in pull request previews (#12125)\n315b72371 Remove `new` badge from Fable 5.1 (#12173)\nd612d12b8 fix(web): reuse cached GitHub PR details across entry points (#12168)\n19ee856ec fix(server): propagate linked pr changes and settle threads immediately (#12161)\nc12ba7581 feat(web): make pull request comments easier to scan (#12150)\nc1738f131 fix(server): keep large sparse checkouts on the fast checkpoint path (#12154)\ned88937cf fix(mobile): prevent Android compose FAB animation jitter (#12169)\n892b86da1 fix(web): align composer task rows (#12165)\ne47a11e1e fix(web): align follow-up and license settings controls (#12167)\n9686cd9af feat(web): choose themes from chat with color previews (#12143)\ne106fe95c design(mobile): unify Android Material layouts and native controls (#11841)\n394af73e0 fix(web): default diff panel to working tree (#12139)\ned1238979 fix(web): keep tool timestamps before disclosure chevrons (#12152)\n22539f2a4 fix(chat): group thoughts into the changing tool activity line (#12147)\ndda44ed33 fix(web): show tooltips for composer environment and workspace controls (#11787)\n01e64193d fix(web): simplify agent approval prompts (#12082)\nf1b497a55 feat(cli): show installer and update download progress (#12044)\n52ad70ec4 fix(web): prioritize linked pull requests over automatic diffs (#12142)\naae361c4e fix(review): show complete counts and load large diffs progressively (#10822)\n32e8b2584 fix(web): show private repository media in pull request tabs (#11706)\n384de0858 fix(web): adapt provider settings to available content width (#12138)\nd1a644897 fix(web): dropped folders become path chips on the local environment and are refused on remote ones (#12001)\neff44be43 feat(usage): show OpenCode Go, Cursor, and Grok subscription limits (#12115)\n052c7ae53 feat(chat): show provider thinking traces (#11784)\nf4ef5155f feat(web): add send shortcut and follow-up controls (#12075)\n0b83045d0 feat(providers): expose native slash commands across clients (#11519)\ne8ca3a828 refactor(web): centralize pull request icon state presentation (#11144)\nf45c6b4a7 fix(web): submit PR comments with Cmd/Ctrl+Enter (#11994)\n", "upstream_head": "9ea9c3d5d2c444133e3ddff40eecf38737951589\n", "conflicted_files": "apps/desktop/src/backend/DesktopBackendConfiguration.ts apps/mobile/modules/t3-composer-editor/android/src/main/java/expo/modules/t3composereditor/T3ComposerEditorView.kt apps/mobile/modules/t3-composer-editor/ios/T3ComposerEditorView.swift apps/mobile/src/components/AppSymbol.tsx apps/mobile/src/native/T3ComposerEditor.types.ts apps/server/src/serverRuntimeStartup.ts apps/server/src/sourceControl/SourceControlRepositoryService.ts apps/web/src/components/ChatView.tsx apps/web/src/components/chat/ChatComposer.tsx apps/web/src/components/chat/ComposerPrimaryActions.test.tsx apps/web/src/components/chat/ComposerPrimaryActions.tsx apps/web/src/components/settings/SettingsPanels.tsx apps/web/src/components/settings/settingsSearch.ts apps/web/src/routes/_chat.$environmentId.$threadId.tsx packages/shared/src/composerTrigger.test.ts pnpm-lock.yaml \n", "culprit_commits": "52e4b4429 chore(deps): bump parents that carry vulnerable transitive dependencies (#12417)\nc5bbf3d14 chore(deps): bump the npm_and_yarn group across 1 directory with 3 updates (#12411)\nd547e3b12 chore(deps): upgrade Effect to rc.115 and Alchemy to beta.78 (#12326)\n4aa841a8d refactor(web): share settings group surfaces (#12360)\n3fd5d6439 fix(web): keep numbered jumps from stealing browser tabs (#12315)\nfcfd9f911 fix(web): keep chat from jumping when the scroll-to-end pill mounts (#12317)\nb4620d595 fix(server): reject file rewind in shared workspaces (#12306)\ne26af33b2 fix(web): keep PR panel actions in the current thread (#12320)\n6deac7a92 fix(mobile): show Agent behavior icon on Android (#12316)\n4749035bd fix(web): keep composer banners compact and readable (#12166)\n03950089f feat(web): pull request files can be marked as viewed (#7721)\n298f8c95c feat(mobile): add favorites to model picker (#12231)\ndd9528a97 fix(mobile): keep screen awake during dictation (#12227)\n0150c6a53 feat(web): start new threads with multiple models in separate worktrees (#12179)\nc4ca1b0f9 feat(settings): add automatic storage cleanup per machine and project (#11598)\n2a47fc905 fix(skills): support unicode currency symbols as skill aliases (#12098)\nf17165a76 fix(web): preserve thread reading positions (#12144)\n71d12d8c4 feat(web): make keybindings searchable from settings search (#12175)\nd359e94ca feat(web): enable rich text composer by default (#12160)\ne47a11e1e fix(web): align follow-up and license settings controls (#12167)\ne106fe95c design(mobile): unify Android Material layouts and native controls (#11841)\n394af73e0 fix(web): default diff panel to working tree (#12139)\n01e64193d fix(web): simplify agent approval prompts (#12082)\n52ad70ec4 fix(web): prioritize linked pull requests over automatic diffs (#12142)\nd1a644897 fix(web): dropped folders become path chips on the local environment and are refused on remote ones (#12001)\n052c7ae53 feat(chat): show provider thinking traces (#11784)\nf4ef5155f feat(web): add send shortcut and follow-up controls (#12075)\n0f5a1513e fix(web): stop the worktree setup card from flashing and shifting (#12015)\nfe896e6a9 chore(release): prepare v0.0.42\n47ef0177d Revert \"chore(release): prepare v0.0.41\"\n0bf2d6b01 chore(release): prepare v0.0.41\n719a76ca1 feat(web): choose queue or steer for follow-up messages (#11964)\nb18a560bb fix(mobile): update Reanimated and Worklets (#11957)\n844203d4f chore(deps): bump Clerk stack to latest stable versions (#11956)\nae53072af fix(web): keep the composer ready during background worktree setup (#11883)\n3c4c9a125 fix(web): restore composer focus after closing option menus (#11884)\ncc839c42b feat(web): queue messages sent client-side while the agent is working (#11673)\n2c19283af feat(server): persist the worktree setup send and progress on the thread (#11852)\n26b8f985d feat(mobile): add iPad keyboard shortcuts and command palette (#11679)\n0310cbf9f fix: keep worktree setup visible after leaving and reopening the thread (#11836)\n", "failing_step": "\n", "patch_manifest": "3acc43842 chore(coil): delete inherited upstream workflows instead of disabling th\n5d3360ccc test(coil): the doomed-turn replay waits for the reactor's verdict, not a turn count\ndc619218e fix(coil): the bundle gate no longer fails a good release on regex quotes or JXA imports\n4b5c186a4 chore(deps): keep the astro 7.2.8 bump lock-only and inside the release-age policy\n3c3db729a chore(deps): resolve the lockfile for sharp 0.35.4 in /scripts\n4fae7d5d1 fix(coil): give http_ece a license notice so the desktop build passes\nfdada32d4 chore(deps): bump astro from 7.2.0 to 7.2.8\n0f9537582 chore(deps): bump sharp from 0.34.5 to 0.35.4 in /scripts\na068bb6de docs(coil): re-baseline the seam ledger for the 2026-09-12 sync\na81b3bd93 chore(coil): keep two seams additive after the merge\na0de8ee9d test(coil): the pre-ready desktop entry carries the fork's app name\nae3329145 ci(coil): install libsecret on Linux runners and the renamed Spectre component\nb8b4cb613 fix(coil): crash recovery leaves prepared restart continuations alone\n2eec9cf7d fix(coil): read Claude rate-limit rejections from the runtime warning\ne0438aaec fix(coil): queued messages carry structured context like a normal send\nc2207685f fix(coil): follow the Effect rc.112 and TypeScript 7 toolchain bumps\n89d522523 fix(coil): one failed auto-resume fire no longer aborts the tick\naefebcff3 test(coil): replay the #118 spend-limit payloads through the auto-resume classifier\nc48265fe4 test(coil): auto-resume tests wait on receipts, never on scheduler turns\n86054c7cb fix(server): classify Azure DevOps \"not authorized\" failures as authentication\n8391a6a32 fix(coil): the update toast's build age advances while the toast is visible\n8ed54891d test(coil): loops \u2014 tests wait on receipts, never on scheduler turns\n1c1af59ee feat(coil): loops \u2014 the supervisor announces what it did\n5c6b6f37a perf(coil): loops \u2014 pruning happens when a run ends, not on every write\nb14796927 fix(coil): loops \u2014 the test harness never moves the clock on its own\naafdeed80 fix(coil): loops \u2014 one store read per tick, and a harness that waits for the answer\n8e998c5fb fix(coil): loops \u2014 the console tells the truth about what it is showing\n588780000 fix(coil): loops \u2014 bound the state file and close the route and toolkit holes\n97de6179c fix(coil): loops \u2014 install the adapter hooks in production and correct the decision table\n8f07eb778 docs(coil): format the loops prototypes and rebuild the report\nabf29cfd7 fix(coil): loops \u2014 one store instance and loop_done wired across phases\n55dcd248e docs(coil): ledger totals for the loops seam row\n9397ad2d5 feat(coil): loops \u2014 the reactor, wired in (Phase 2)\n1ef7a6f92 feat(coil): loops \u2014 raise_blocker, loop_status and loop_done (Phase 5)\n3f15ffe71 docs(user): loops\nf16916d41 feat(coil): loops \u2014 Settings \u2192 Loops (Phase 4)\nb63e34b3e feat(coil): loops \u2014 the console overlay and the answer route (Phase 3)\ncc268cb68 docs(coil-home): the site no longer promises a daily rebase\n02f3b2cec docs(coil): the sync runbook and specs for a merge-based sync\ncfd948fe6 ci(coil): sync upstream by merging, not rebasing\n5caa9afa0 feat(coil): loops \u2014 the sentinel and the HTTP API (Phases 1\u20132)\n252ed85be feat(coil): loops \u2014 the pure decision table and guards (Phase 2)\n8af8a1fd0 feat(coil): loops \u2014 record the agent's own scheduled wakes and pending questions (Phase 1)\nea836a96e feat(coil): loops \u2014 the durable record, config and cron parse (Phase 1 foundation)\nffef26c1b docs(coil): resolve the #125 review findings and verify the plan's assumptions\n7ca73fa6d refactor(coil): isClaudeThread accepts a thread shell\n368b7b368 refactor(coil): one scope-auth helper for every fork route\n93c1e67b8 docs(coil): re-baseline the seam ledger against the 2026-09-02 merge-base\ndcf49a1c1 fix(mobile): Return no longer submits while dictation freezes the composer\n3bdf109e2 fix(coil): report the DPoP failure reason on the auto-resume route\n88d5e2421 fix(coil): a server auto-settle must not destroy an armed auto-resume\n5ac7b67f4 fix(web): the queue path counts file attachments, not just images\naab748d91 fix(coil): re-home the outbox idle gate upstream deleted with canSettle\n55ef32cd2 fix(coil): drop the pre-rename fork-seam import the rebase left behind\n50f65243a chore(deps): regenerate the lockfile against the 2026-09-02 upstream tree\nd96d6da07 test(coil): wait for the collided arm to be destroyed instead of looking once\nd029a8377 fix(coil): stop the fork's boot reconcile from swallowing upstream's orphan pass\nd9defcd55 docs(coil): re-baseline the seam ledger against the 2026-08-27 merge-base\nd6ba8b8e6 test(coil): provide the services upstream's orphaned-session reconcile now needs\ne7b51fbd1 docs(coil): Loops \u2014 design, prototypes and implementation plan (#42, #38 residue) (#120)\n178ed120f fix(coil): a turn that died inside the closed window isn't advancement (#121)\n8ebb3b3ba docs(coil): repoint the ledger at the final merge-base\naa9d1eff8 docs(coil): re-baseline the seam ledger against the 2026-08-17 merge-base\na216210a8 test(web): reconcile upstream's new running-send assertion with the fork's steer label\n9fcf81f4b test(coil): carry the app rename onto upstream's new DMG title assertion\n096d2cc53 fix(coil): migrate the update toast off the native title tooltip\n094d0abde docs(coil): fix seam-ledger rows the #71 rename left pointing at t3x names (#116)\na4a5098fd fix(coil): the verify gate must not require Bun-runtime imports the shipped app cannot reach (#107)\n470816d96 fix(coil): verify every packaged layer, and fail on layers the gate cannot see (#102) (#106)\n9bdd817b2 docs(coil): re-measure the seam ledger on the landing branch\nc6ad39389 fix(coil): drop a stray blank seam line the rebase left in ThreadComposer\ne49d1369d fix(web): surface enqueue failures as a toast, not the maskable error banner\n2aad2f7a1 docs(coil): re-baseline the seam ledger against the 2026-08-14 merge-base\n40b271d32 fix(server): name why a clone failed, and which provider it was\nf616ba3aa fix(coil): stop shipping upstream's update feed, which we never actually disabled\nf659ea8dd fix(coil): restore the release, and make two of its checks capable of failing\n51ee891dc fix(coil): publish a canonical Latest release, and re-arm retention\n723f95941 docs(coil): design a canonical Latest release for the fork\nf751f0a01 fix(coil): tell the truth about the one macOS prompt an update raises\ne0e8e22ff perf(coil): halve the desktop release bundle (#53)\n0602eef1c docs(coil): re-baseline the ledger for the sidebar wordmark row\nf404119d0 feat(coil): finish the app rename at the surfaces that name the app (#71)\n4c57838a2 docs(coil): repoint two ledger citations at the paths #71 moved\n324f88ca5 refactor(coil): retire the local desktop autobuild\n02ca4fd19 fix(coil): reach the renamed relay through a service binding (#71)\n81e6ec966 fix(coil): make --rotate emit the CI secret commands itself (#71)\n9b440b7b5 fix(coil): finish the certificate rotation and list all 47 rows in the ledger (#71)\n82db9038e chore(coil): re-record the designated requirement after the certificate rotation\nf02d7775d fix(coil): compute the build-counter offset in bash, not in an expression (#71)\ndd33f974b fix(coil): repoint the last references to moved files (#71)\nc181de9be style(coil): format the files this rename touched (#71)\neafe55a81 docs(coil): re-baseline the seam ledger and correct the runbooks (#71)\n490939a7e fix(coil): carry PRs #78 and #84 across the rename (#71)\n9426bcb8d feat(coil): move the relay, keeping the old hostname alive as a proxy (#71)\nbd8c6a5c3 feat(coil): cut the sync automation over to coil names (#71)\ne18120a1c feat(coil): move the release identity, offsetting the counter so clients keep updating (#71)\naa5bf5c8b feat(coil): rename the app to T3 Coil, with its own bundle id and certificate (#71)\neaad55239 refactor(coil): move the fork's directories and symbols off t3x (#71)\n893ff9dc5 docs(coil): design the t3x -> coil rename around its four silent failures (#71)\nc2533809c fix(deps): clear the sharp and @hono/node-server advisories by re-resolution (#58) (#87)\n", "detail": "merge aborted; working tree restored\n" }
▶ To fix: comment
@claude resolveon this issue (or run the coil sync resolve (agent) workflow). An agent replays the merge, resolves the conflicts, runs typecheck/lint/test, and opens an ordinary PR for review — nothing is pushed tomain. Runbook:docs/coil/sync-agent-runbook.md.Automated daily upstream sync could not complete.
Result:
conflict
Recovery tag:coil/last-good-20260919-120922
Run: https://github.com/radroid/t3code/actions/runs/35441982234status JSON
{ "kind": "daily", "result": "conflict", "upstream_range": "dfbb11bdd fix(web): show plain text in collapsed thought previews (#12377)\n408ff8ae9 fix: detect installed editors outside PATH (#12439)\n7a326c244 chore(mobile): add dev client script with preview environment (#12558)\n29a23fdf1 fix(mobile): adapt workspace navigation and expand controls (#12551)\n803f94e78 fix(release): drop placeholder allowBuilds entry that broke desktop builds (#12544)\na8693eb4e chore(desktop): leave main process metrics export off until a metric exists (#12540)\nefb96939f fix(codex): surface app permission requests as approvable (#7861)\n82059df15 feat(desktop): export main process telemetry over OTLP (#12520)\n0f1b572b9 fix(mobile): align built-in theme colors with desktop (#12534)\n5378f87f9 fix(preview): recover host registration after request timeouts (#12535)\n823119350 feat(mobile): view and control agent devices (#12531)\ncb3d95c17 fix(server): release oversized pull request diff cache entries (#12523)\n9cb586acd refactor: remove obsolete code (#9917)\ne74c668d7 fix(release): strip Alchemy progress before parsing relay state (#12519)\n4931d73af fix(ci): reconcile native change labels against pinned commits (#12517)\nbd0b9edac fix(release): read relay configuration without loading deployment providers (#12518)\nde6a230db fix(acp): accept SDK elicitation requests (#11294)\n8c3b5bef1 fix(mobile): prefer pull-to-refresh on list screens (#12515)\nd99bc5a4d feat(web): sort pull requests by what is blocked on me (#12508)\nea15f17af fix(mobile): use native settings and snooze controls (#12512)\n3bb06ad91 feat(server): export log records over OTLP (#12493)\n82cd1d1aa fix(mobile): preserve multiple model favorites (#12505)\n93e04160a feat(mobile): search projects when starting a task (#12496)\n88b9226d2 refactor(mobile): compose review menus through the shared header (#12400)\naba1c6352 refactor(mobile): share archived thread header configuration (#12399)\n7ee60f4bc refactor(mobile): share terminal header and menu configuration (#12391)\n54bbed660 refactor(mobile): share file header actions and search configuration (#12390)\n989bde889 refactor(mobile): configure thread headers through the shared core (#12389)\n4fb9dfc8b refactor(mobile): centralize platform header rendering (#12388)\n7230f6b1b refactor(mobile): split settings selection rows by platform (#12384)\ndec073228 refactor(mobile): isolate thread row appearance by platform (#12383)\n429d66c13 refactor(mobile): split native menus by platform (#12382)\n7e7cd3246 refactor(mobile): split home headers by platform (#12381)\n53830d413 perf(mobile): isolate iOS Live Activity imports (#12380)\ne0649ed7d perf(mobile): isolate Material You conversion on Android (#12379)\n4d36142c0 fix(mobile): keep archived threads visible during iOS search (#12420)\n869347bc2 fix(server): retry transient git failures during checkpoint capture (#11665)\ne84f23a97 fix(web): speed up PR previews with fewer GitHub requests (#11825)\n8ebb61123 fix(ci): accept V2 transfer reports without cross-scenario comparisons (#12492)\n6d68677ff fix(server): restore secrets when settings persistence fails (#12487)\nc557bb10a fix(web): sidebar search matches message content (#11761)\nc03b24026 fix(git): explain fetch failures without exposing remote output (#12485)\n80c1f771b fix(relay): accept delegated thread IDs in activity routes (#12484)\n4c61e3d7e fix(mobile): synchronize native notification delegates (#12483)\ndcdf5e6a0 fix(build): parse executable imports without matching source strings (#12488)\ned6fe339d fix(build): retain multiple license notices for one package (#12489)\n9118b6d3e fix(mobile): synchronize native permission registry access (#12482)\neadeaf228 fix(bitbucket): preserve rate limits from optional PR reads (#12486)\nbd5dc58c6 fix(web): client spans reach the trace proxy again (#12332)\nccad9f69a Use T3 Device panel for mobile testing (#12414)\n9ea9c3d5d fix(web): keep a file-to-symlink type change from crashing the diff view (#11075)\n52e4b4429 chore(deps): bump parents that carry vulnerable transitive dependencies (#12417)\n56a9bf2bd fix(git): prevent stale branch selections from restoring files (#10574)\nc5bbf3d14 chore(deps): bump the npm_and_yarn group across 1 directory with 3 updates (#12411)\n747962568 chore(relay): deploy with the Alchemy CLI and publish client config through an Action (#12401)\ne3c85ead6 chore(refs): sync Effect and Alchemy references to rc.115 and beta.78 (#12327)\nd547e3b12 chore(deps): upgrade Effect to rc.115 and Alchemy to beta.78 (#12326)\n243e94470 fix(mobile): remove Android input underline backgrounds (#12394)\n7a2cce826 feat(mobile): add copy thread ID to thread list actions (#12228)\n818add08f fix(mobile): use singular label for one settings environment (#12282)\n994654198 fix(web): share accessible color picker controls (#12355)\ncc39ec100 fix(mobile): share request action button defaults (#12366)\nc7fa1e969 fix(mobile): share settings action row defaults (#12369)\nfa2decfce refactor(web): share standalone page layout (#12354)\n58fcae64a refactor(mobile): share file preview feedback (#12368)\n1a2a03f44 refactor(mobile): share local environment lists (#12365)\n18dcc43ac refactor(mobile): share connection form fields (#12364)\n767a5dbd0 refactor(mobile): share thread list section controls (#12363)\n8eb1f6e74 refactor(web): reuse inline settings actions (#12362)\n4aa841a8d refactor(web): share settings group surfaces (#12360)\n14337401b refactor(mobile): share Android toolbar search fields (#12359)\n6088c8104 refactor(web): share diagnostic process actions (#12358)\na1390ac65 fix(mobile): share settings control row layout (#12356)\n05a8c6016 fix(mobile): share accessible connection trace controls (#12371)\n5a3901331 fix(web): share touch-visible pull request edit actions (#12370)\n8583eac64 refactor(web): reuse searchable picker inputs (#12353)\n53510d44e fix(mobile): define Clerk colors in every Uniwind theme (#12344)\n3fd5d6439 fix(web): keep numbered jumps from stealing browser tabs (#12315)\n9051ed9c3 feat(web): open diff files from a right-click context menu (#11842)\n256e630ef feat(web): filter sidebar from thread menu (#8719)\n3fd21df62 fix(server): pass Codex image attachments by path to avoid oversized requests (#11050)\n5f2253956 chore(review): keep review bots out of the vendored .repos references (#12333)\n1455cb5c3 fix(server): checkpoint workspaces with empty nested repositories (#12181)\nfcfd9f911 fix(web): keep chat from jumping when the scroll-to-end pill mounts (#12317)\nd17f46d76 fix(server): refresh file search outside checkpoint processing (#12308)\n67993623a fix(server): capture checkpoints when baseline lookup fails (#12307)\nb4620d595 fix(server): reject file rewind in shared workspaces (#12306)\nb17cc2ab5 fix(server): bound provider event log records before serialization (#12305)\n4cc984fed fix(web): keep browser pages aligned during panel animations (#12329)\ne26af33b2 fix(web): keep PR panel actions in the current thread (#12320)\n6deac7a92 fix(mobile): show Agent behavior icon on Android (#12316)\n675869d2b fix(usage): preserve saved totals after transcript cleanup (#12304)\n592021f00 fix(web): collapse thoughts within tool groups (#12302)\n4749035bd fix(web): keep composer banners compact and readable (#12166)\n03950089f feat(web): pull request files can be marked as viewed (#7721)\n8db3c250f fix(mobile): prevent overlapping text and UI on Android chat messages (#11611)\nc25c3e0ee feat(mobile): make Settings easier to navigate and scope (#12272)\n2d8378b44 fix(web): avoid reopening settled threads when adding projects (#11804)\nfbc8b9600 fix(web): keep thoughts and failed tool calls in one activity row (#12270)\nd4d5d12e8 fix(shared): keep the newest shared usage scan (#10315)\n", "upstream_head": "dfbb11bdd7c3f1a5575cb55d3e3abb12be025727\n", "conflicted_files": "apps/desktop/src/backend/DesktopBackendConfiguration.ts apps/mobile/modules/t3-composer-editor/android/src/main/java/expo/modules/t3composereditor/T3ComposerEditorView.kt apps/mobile/modules/t3-composer-editor/ios/T3ComposerEditorView.swift apps/mobile/src/components/AppSymbol.tsx apps/mobile/src/native/T3ComposerEditor.types.ts apps/server/src/serverRuntimeStartup.ts apps/server/src/sourceControl/SourceControlRepositoryService.ts apps/web/src/components/ChatView.tsx apps/web/src/components/chat/ChatComposer.tsx apps/web/src/components/chat/ComposerPrimaryActions.test.tsx apps/web/src/components/chat/ComposerPrimaryActions.tsx apps/web/src/components/settings/SettingsPanels.tsx apps/web/src/components/settings/settingsSearch.ts apps/web/src/routes/_chat.$environmentId.$threadId.tsx packages/contracts/src/ipc.ts packages/shared/src/composerTrigger.test.ts pnpm-lock.yaml \n", "culprit_commits": "29a23fdf1 fix(mobile): adapt workspace navigation and expand controls (#12551)\nefb96939f fix(codex): surface app permission requests as approvable (#7861)\n823119350 feat(mobile): view and control agent devices (#12531)\n9cb586acd refactor: remove obsolete code (#9917)\n3bb06ad91 feat(server): export log records over OTLP (#12493)\n4c61e3d7e fix(mobile): synchronize native notification delegates (#12483)\n9118b6d3e fix(mobile): synchronize native permission registry access (#12482)\n52e4b4429 chore(deps): bump parents that carry vulnerable transitive dependencies (#12417)\nc5bbf3d14 chore(deps): bump the npm_and_yarn group across 1 directory with 3 updates (#12411)\nd547e3b12 chore(deps): upgrade Effect to rc.115 and Alchemy to beta.78 (#12326)\n4aa841a8d refactor(web): share settings group surfaces (#12360)\n3fd5d6439 fix(web): keep numbered jumps from stealing browser tabs (#12315)\nfcfd9f911 fix(web): keep chat from jumping when the scroll-to-end pill mounts (#12317)\nb4620d595 fix(server): reject file rewind in shared workspaces (#12306)\ne26af33b2 fix(web): keep PR panel actions in the current thread (#12320)\n6deac7a92 fix(mobile): show Agent behavior icon on Android (#12316)\n4749035bd fix(web): keep composer banners compact and readable (#12166)\n03950089f feat(web): pull request files can be marked as viewed (#7721)\n298f8c95c feat(mobile): add favorites to model picker (#12231)\ndd9528a97 fix(mobile): keep screen awake during dictation (#12227)\n0150c6a53 feat(web): start new threads with multiple models in separate worktrees (#12179)\nc4ca1b0f9 feat(settings): add automatic storage cleanup per machine and project (#11598)\n2a47fc905 fix(skills): support unicode currency symbols as skill aliases (#12098)\nf17165a76 fix(web): preserve thread reading positions (#12144)\n71d12d8c4 feat(web): make keybindings searchable from settings search (#12175)\nd359e94ca feat(web): enable rich text composer by default (#12160)\ne47a11e1e fix(web): align follow-up and license settings controls (#12167)\ne106fe95c design(mobile): unify Android Material layouts and native controls (#11841)\n394af73e0 fix(web): default diff panel to working tree (#12139)\n01e64193d fix(web): simplify agent approval prompts (#12082)\n52ad70ec4 fix(web): prioritize linked pull requests over automatic diffs (#12142)\nd1a644897 fix(web): dropped folders become path chips on the local environment and are refused on remote ones (#12001)\n052c7ae53 feat(chat): show provider thinking traces (#11784)\nf4ef5155f feat(web): add send shortcut and follow-up controls (#12075)\n0f5a1513e fix(web): stop the worktree setup card from flashing and shifting (#12015)\nfe896e6a9 chore(release): prepare v0.0.42\n47ef0177d Revert \"chore(release): prepare v0.0.41\"\n0bf2d6b01 chore(release): prepare v0.0.41\n719a76ca1 feat(web): choose queue or steer for follow-up messages (#11964)\nb18a560bb fix(mobile): update Reanimated and Worklets (#11957)\n", "failing_step": "\n", "patch_manifest": "3acc43842 chore(coil): delete inherited upstream workflows instead of disabling th\n5d3360ccc test(coil): the doomed-turn replay waits for the reactor's verdict, not a turn count\ndc619218e fix(coil): the bundle gate no longer fails a good release on regex quotes or JXA imports\n4b5c186a4 chore(deps): keep the astro 7.2.8 bump lock-only and inside the release-age policy\n3c3db729a chore(deps): resolve the lockfile for sharp 0.35.4 in /scripts\n4fae7d5d1 fix(coil): give http_ece a license notice so the desktop build passes\nfdada32d4 chore(deps): bump astro from 7.2.0 to 7.2.8\n0f9537582 chore(deps): bump sharp from 0.34.5 to 0.35.4 in /scripts\na068bb6de docs(coil): re-baseline the seam ledger for the 2026-09-12 sync\na81b3bd93 chore(coil): keep two seams additive after the merge\na0de8ee9d test(coil): the pre-ready desktop entry carries the fork's app name\nae3329145 ci(coil): install libsecret on Linux runners and the renamed Spectre component\nb8b4cb613 fix(coil): crash recovery leaves prepared restart continuations alone\n2eec9cf7d fix(coil): read Claude rate-limit rejections from the runtime warning\ne0438aaec fix(coil): queued messages carry structured context like a normal send\nc2207685f fix(coil): follow the Effect rc.112 and TypeScript 7 toolchain bumps\n89d522523 fix(coil): one failed auto-resume fire no longer aborts the tick\naefebcff3 test(coil): replay the #118 spend-limit payloads through the auto-resume classifier\nc48265fe4 test(coil): auto-resume tests wait on receipts, never on scheduler turns\n86054c7cb fix(server): classify Azure DevOps \"not authorized\" failures as authentication\n8391a6a32 fix(coil): the update toast's build age advances while the toast is visible\n8ed54891d test(coil): loops \u2014 tests wait on receipts, never on scheduler turns\n1c1af59ee feat(coil): loops \u2014 the supervisor announces what it did\n5c6b6f37a perf(coil): loops \u2014 pruning happens when a run ends, not on every write\nb14796927 fix(coil): loops \u2014 the test harness never moves the clock on its own\naafdeed80 fix(coil): loops \u2014 one store read per tick, and a harness that waits for the answer\n8e998c5fb fix(coil): loops \u2014 the console tells the truth about what it is showing\n588780000 fix(coil): loops \u2014 bound the state file and close the route and toolkit holes\n97de6179c fix(coil): loops \u2014 install the adapter hooks in production and correct the decision table\n8f07eb778 docs(coil): format the loops prototypes and rebuild the report\nabf29cfd7 fix(coil): loops \u2014 one store instance and loop_done wired across phases\n55dcd248e docs(coil): ledger totals for the loops seam row\n9397ad2d5 feat(coil): loops \u2014 the reactor, wired in (Phase 2)\n1ef7a6f92 feat(coil): loops \u2014 raise_blocker, loop_status and loop_done (Phase 5)\n3f15ffe71 docs(user): loops\nf16916d41 feat(coil): loops \u2014 Settings \u2192 Loops (Phase 4)\nb63e34b3e feat(coil): loops \u2014 the console overlay and the answer route (Phase 3)\ncc268cb68 docs(coil-home): the site no longer promises a daily rebase\n02f3b2cec docs(coil): the sync runbook and specs for a merge-based sync\ncfd948fe6 ci(coil): sync upstream by merging, not rebasing\n5caa9afa0 feat(coil): loops \u2014 the sentinel and the HTTP API (Phases 1\u20132)\n252ed85be feat(coil): loops \u2014 the pure decision table and guards (Phase 2)\n8af8a1fd0 feat(coil): loops \u2014 record the agent's own scheduled wakes and pending questions (Phase 1)\nea836a96e feat(coil): loops \u2014 the durable record, config and cron parse (Phase 1 foundation)\nffef26c1b docs(coil): resolve the #125 review findings and verify the plan's assumptions\n7ca73fa6d refactor(coil): isClaudeThread accepts a thread shell\n368b7b368 refactor(coil): one scope-auth helper for every fork route\n93c1e67b8 docs(coil): re-baseline the seam ledger against the 2026-09-02 merge-base\ndcf49a1c1 fix(mobile): Return no longer submits while dictation freezes the composer\n3bdf109e2 fix(coil): report the DPoP failure reason on the auto-resume route\n88d5e2421 fix(coil): a server auto-settle must not destroy an armed auto-resume\n5ac7b67f4 fix(web): the queue path counts file attachments, not just images\naab748d91 fix(coil): re-home the outbox idle gate upstream deleted with canSettle\n55ef32cd2 fix(coil): drop the pre-rename fork-seam import the rebase left behind\n50f65243a chore(deps): regenerate the lockfile against the 2026-09-02 upstream tree\nd96d6da07 test(coil): wait for the collided arm to be destroyed instead of looking once\nd029a8377 fix(coil): stop the fork's boot reconcile from swallowing upstream's orphan pass\nd9defcd55 docs(coil): re-baseline the seam ledger against the 2026-08-27 merge-base\nd6ba8b8e6 test(coil): provide the services upstream's orphaned-session reconcile now needs\ne7b51fbd1 docs(coil): Loops \u2014 design, prototypes and implementation plan (#42, #38 residue) (#120)\n178ed120f fix(coil): a turn that died inside the closed window isn't advancement (#121)\n8ebb3b3ba docs(coil): repoint the ledger at the final merge-base\naa9d1eff8 docs(coil): re-baseline the seam ledger against the 2026-08-17 merge-base\na216210a8 test(web): reconcile upstream's new running-send assertion with the fork's steer label\n9fcf81f4b test(coil): carry the app rename onto upstream's new DMG title assertion\n096d2cc53 fix(coil): migrate the update toast off the native title tooltip\n094d0abde docs(coil): fix seam-ledger rows the #71 rename left pointing at t3x names (#116)\na4a5098fd fix(coil): the verify gate must not require Bun-runtime imports the shipped app cannot reach (#107)\n470816d96 fix(coil): verify every packaged layer, and fail on layers the gate cannot see (#102) (#106)\n9bdd817b2 docs(coil): re-measure the seam ledger on the landing branch\nc6ad39389 fix(coil): drop a stray blank seam line the rebase left in ThreadComposer\ne49d1369d fix(web): surface enqueue failures as a toast, not the maskable error banner\n2aad2f7a1 docs(coil): re-baseline the seam ledger against the 2026-08-14 merge-base\n40b271d32 fix(server): name why a clone failed, and which provider it was\nf616ba3aa fix(coil): stop shipping upstream's update feed, which we never actually disabled\nf659ea8dd fix(coil): restore the release, and make two of its checks capable of failing\n51ee891dc fix(coil): publish a canonical Latest release, and re-arm retention\n723f95941 docs(coil): design a canonical Latest release for the fork\nf751f0a01 fix(coil): tell the truth about the one macOS prompt an update raises\ne0e8e22ff perf(coil): halve the desktop release bundle (#53)\n0602eef1c docs(coil): re-baseline the ledger for the sidebar wordmark row\nf404119d0 feat(coil): finish the app rename at the surfaces that name the app (#71)\n4c57838a2 docs(coil): repoint two ledger citations at the paths #71 moved\n324f88ca5 refactor(coil): retire the local desktop autobuild\n02ca4fd19 fix(coil): reach the renamed relay through a service binding (#71)\n81e6ec966 fix(coil): make --rotate emit the CI secret commands itself (#71)\n9b440b7b5 fix(coil): finish the certificate rotation and list all 47 rows in the ledger (#71)\n82db9038e chore(coil): re-record the designated requirement after the certificate rotation\nf02d7775d fix(coil): compute the build-counter offset in bash, not in an expression (#71)\ndd33f974b fix(coil): repoint the last references to moved files (#71)\nc181de9be style(coil): format the files this rename touched (#71)\neafe55a81 docs(coil): re-baseline the seam ledger and correct the runbooks (#71)\n490939a7e fix(coil): carry PRs #78 and #84 across the rename (#71)\n9426bcb8d feat(coil): move the relay, keeping the old hostname alive as a proxy (#71)\nbd8c6a5c3 feat(coil): cut the sync automation over to coil names (#71)\ne18120a1c feat(coil): move the release identity, offsetting the counter so clients keep updating (#71)\naa5bf5c8b feat(coil): rename the app to T3 Coil, with its own bundle id and certificate (#71)\neaad55239 refactor(coil): move the fork's directories and symbols off t3x (#71)\n893ff9dc5 docs(coil): design the t3x -> coil rename around its four silent failures (#71)\nc2533809c fix(deps): clear the sharp and @hono/node-server advisories by re-resolution (#58) (#87)\n", "detail": "merge aborted; working tree restored\n" }
▶ To fix: comment
@claude resolveon this issue (or run the coil sync resolve (agent) workflow). An agent replays the merge, resolves the conflicts, runs typecheck/lint/test, and opens an ordinary PR for review — nothing is pushed tomain. Runbook:docs/coil/sync-agent-runbook.md.Resolved by hand in #153 (335 upstream commits, 23 conflicts). Three fork seams shrank because upstream absorbed the work (pingdotgg#11673 queue, pingdotgg#11762 clone progress, pingdotgg#11679 enterBehavior); details and the re-baselined ledger are in the PR.
Automated daily upstream sync could not complete.
Result:
conflictRecovery tag:
coil/last-good-20260913-125526Run: https://github.com/radroid/t3code/actions/runs/34758355160
status JSON
{ "kind": "daily", "result": "conflict", "upstream_range": "20363c32c feat(web): add provider selector to pull request toolbar (#11524)\n17f8e2a8a feat(mobile): add pooled subscription usage widgets (#11506)\n0a91b9a11 feat(mobile): show startup crashes in Settings \u2192 Diagnostics (#11540)\n20a8f1de3 chore(mobile): enable noUncheckedIndexedAccess and noImplicitOverride (#11538)\ndb6e0531e feat(github): route pull request operations across matching accounts (#11367)\n8b3ddf51c fix(mobile): stop crashing on launch before the shell snapshot arrives (#11537)\nd7c71f91d feat(web): float the pull request comment composer (#11531)\n21d53ca2e fix(files): browse ignored files and load folders on demand (#11527)\n2ec59ca1f fix(web): hide back button for single linked pull requests (#11520)\n46140c96a fix(web): unify panel resizing and retain final drag width (#11529)\n3138f5716 fix(grok): emit task lifecycle for monitors and background shells (#9139)\n0c5771d60 fix(web): match draft row heights to thread rows (#11512)\n6fd68f5c3 feat(source-control): support Forgejo and Gitea with fj and tea (#11436)\nc29976458 fix(server): open Cursor links in classic IDE mode (#11498)\n0e0ddaeed feat(web): add opt-in thread notifications and sounds (#11481)\naf0657e3b fix(mobile): stop alerting that shared content vanished after sending it (#11487)\n5781e2be2 fix(mobile): stop crashing on launch when a thread has a PR stack (#11486)\n2587c8060 feat(web): switch saved environments off instead of removing them (#11478)\n2db675aef fix(usage): respect provider account homes (#11485)\n6cdbf76fa feat(web): expose each chat message as a heading for screen readers (#11199)\n68c2277f5 feat(composer): fold large pastes into text attachments (#11442)\n36caf200c feat(web): choose the default diff file state (#11484)\n8ddd9f7ef fix(desktop): bound backend shutdown wait during quit (#7599)\nfcbe45796 fix(usage): make unavailable account limits more visible (#10601)\naf2baccd1 fix(web): keep subagent rows visible under folded turns (#11474)\nc0ddfb3a8 feat(web): subagent spawns render as an expandable work row (#11433)\nb0c6c3b2f fix(web): tighten sidebar search and footer spacing (#11466)\nc1ff6ab3d fix(web): move viewer controls outside media and restore arrow navigation (#11470)\n75d8b132c feat(web): tint image chips with their average color (#11468)\n03e135577 fix(web): complete thread status icons and keep input threads prominent (#11461)\ncfeaca41a fix(web): preserve preview focus on window return (#11444)\n348645152 fix(chat): keep user input outside collapsed work (#11363)\nc542b781c fix(desktop): keep the native preview User-Agent so Turnstile passes (#7110)\nbbedad027 fix(mobile): render photo library picks to a bounded JPEG off the JS thread (#11440)\na43f9b45a fix(web): preserve snapshot preview size in sent messages (#11429)\n534952210 Delete .pnpm-store/v11 directory\n18d8cbfd9 fix(mobile): pin expo-audio so the release smoke patch stays in use (#11426)\n", "upstream_head": "20363c32c9bfdbf49c2716ef11d1f18483fcc01b\n", "conflicted_files": "apps/mobile/modules/t3-composer-editor/android/src/main/java/expo/modules/t3composereditor/T3ComposerEditorView.kt apps/mobile/modules/t3-composer-editor/ios/T3ComposerEditorView.swift apps/web/src/components/settings/settingsSearch.ts \n", "culprit_commits": "db6e0531e feat(github): route pull request operations across matching accounts (#11367)\n6fd68f5c3 feat(source-control): support Forgejo and Gitea with fj and tea (#11436)\n0e0ddaeed feat(web): add opt-in thread notifications and sounds (#11481)\n68c2277f5 feat(composer): fold large pastes into text attachments (#11442)\n36caf200c feat(web): choose the default diff file state (#11484)\n", "failing_step": "\n", "patch_manifest": "5d3360ccc test(coil): the doomed-turn replay waits for the reactor's verdict, not a turn count\ndc619218e fix(coil): the bundle gate no longer fails a good release on regex quotes or JXA imports\n4b5c186a4 chore(deps): keep the astro 7.2.8 bump lock-only and inside the release-age policy\n3c3db729a chore(deps): resolve the lockfile for sharp 0.35.4 in /scripts\n4fae7d5d1 fix(coil): give http_ece a license notice so the desktop build passes\nfdada32d4 chore(deps): bump astro from 7.2.0 to 7.2.8\n0f9537582 chore(deps): bump sharp from 0.34.5 to 0.35.4 in /scripts\na068bb6de docs(coil): re-baseline the seam ledger for the 2026-09-12 sync\na81b3bd93 chore(coil): keep two seams additive after the merge\na0de8ee9d test(coil): the pre-ready desktop entry carries the fork's app name\nae3329145 ci(coil): install libsecret on Linux runners and the renamed Spectre component\nb8b4cb613 fix(coil): crash recovery leaves prepared restart continuations alone\n2eec9cf7d fix(coil): read Claude rate-limit rejections from the runtime warning\ne0438aaec fix(coil): queued messages carry structured context like a normal send\nc2207685f fix(coil): follow the Effect rc.112 and TypeScript 7 toolchain bumps\n89d522523 fix(coil): one failed auto-resume fire no longer aborts the tick\naefebcff3 test(coil): replay the #118 spend-limit payloads through the auto-resume classifier\nc48265fe4 test(coil): auto-resume tests wait on receipts, never on scheduler turns\n86054c7cb fix(server): classify Azure DevOps \"not authorized\" failures as authentication\n8391a6a32 fix(coil): the update toast's build age advances while the toast is visible\n8ed54891d test(coil): loops \u2014 tests wait on receipts, never on scheduler turns\n1c1af59ee feat(coil): loops \u2014 the supervisor announces what it did\n5c6b6f37a perf(coil): loops \u2014 pruning happens when a run ends, not on every write\nb14796927 fix(coil): loops \u2014 the test harness never moves the clock on its own\naafdeed80 fix(coil): loops \u2014 one store read per tick, and a harness that waits for the answer\n8e998c5fb fix(coil): loops \u2014 the console tells the truth about what it is showing\n588780000 fix(coil): loops \u2014 bound the state file and close the route and toolkit holes\n97de6179c fix(coil): loops \u2014 install the adapter hooks in production and correct the decision table\n8f07eb778 docs(coil): format the loops prototypes and rebuild the report\nabf29cfd7 fix(coil): loops \u2014 one store instance and loop_done wired across phases\n55dcd248e docs(coil): ledger totals for the loops seam row\n9397ad2d5 feat(coil): loops \u2014 the reactor, wired in (Phase 2)\n1ef7a6f92 feat(coil): loops \u2014 raise_blocker, loop_status and loop_done (Phase 5)\n3f15ffe71 docs(user): loops\nf16916d41 feat(coil): loops \u2014 Settings \u2192 Loops (Phase 4)\nb63e34b3e feat(coil): loops \u2014 the console overlay and the answer route (Phase 3)\ncc268cb68 docs(coil-home): the site no longer promises a daily rebase\n02f3b2cec docs(coil): the sync runbook and specs for a merge-based sync\ncfd948fe6 ci(coil): sync upstream by merging, not rebasing\n5caa9afa0 feat(coil): loops \u2014 the sentinel and the HTTP API (Phases 1\u20132)\n252ed85be feat(coil): loops \u2014 the pure decision table and guards (Phase 2)\n8af8a1fd0 feat(coil): loops \u2014 record the agent's own scheduled wakes and pending questions (Phase 1)\nea836a96e feat(coil): loops \u2014 the durable record, config and cron parse (Phase 1 foundation)\nffef26c1b docs(coil): resolve the #125 review findings and verify the plan's assumptions\n7ca73fa6d refactor(coil): isClaudeThread accepts a thread shell\n368b7b368 refactor(coil): one scope-auth helper for every fork route\n93c1e67b8 docs(coil): re-baseline the seam ledger against the 2026-09-02 merge-base\ndcf49a1c1 fix(mobile): Return no longer submits while dictation freezes the composer\n3bdf109e2 fix(coil): report the DPoP failure reason on the auto-resume route\n88d5e2421 fix(coil): a server auto-settle must not destroy an armed auto-resume\n5ac7b67f4 fix(web): the queue path counts file attachments, not just images\naab748d91 fix(coil): re-home the outbox idle gate upstream deleted with canSettle\n55ef32cd2 fix(coil): drop the pre-rename fork-seam import the rebase left behind\n50f65243a chore(deps): regenerate the lockfile against the 2026-09-02 upstream tree\nd96d6da07 test(coil): wait for the collided arm to be destroyed instead of looking once\nd029a8377 fix(coil): stop the fork's boot reconcile from swallowing upstream's orphan pass\nd9defcd55 docs(coil): re-baseline the seam ledger against the 2026-08-27 merge-base\nd6ba8b8e6 test(coil): provide the services upstream's orphaned-session reconcile now needs\ne7b51fbd1 docs(coil): Loops \u2014 design, prototypes and implementation plan (#42, #38 residue) (#120)\n178ed120f fix(coil): a turn that died inside the closed window isn't advancement (#121)\n8ebb3b3ba docs(coil): repoint the ledger at the final merge-base\naa9d1eff8 docs(coil): re-baseline the seam ledger against the 2026-08-17 merge-base\na216210a8 test(web): reconcile upstream's new running-send assertion with the fork's steer label\n9fcf81f4b test(coil): carry the app rename onto upstream's new DMG title assertion\n096d2cc53 fix(coil): migrate the update toast off the native title tooltip\n094d0abde docs(coil): fix seam-ledger rows the #71 rename left pointing at t3x names (#116)\na4a5098fd fix(coil): the verify gate must not require Bun-runtime imports the shipped app cannot reach (#107)\n470816d96 fix(coil): verify every packaged layer, and fail on layers the gate cannot see (#102) (#106)\n9bdd817b2 docs(coil): re-measure the seam ledger on the landing branch\nc6ad39389 fix(coil): drop a stray blank seam line the rebase left in ThreadComposer\ne49d1369d fix(web): surface enqueue failures as a toast, not the maskable error banner\n2aad2f7a1 docs(coil): re-baseline the seam ledger against the 2026-08-14 merge-base\n40b271d32 fix(server): name why a clone failed, and which provider it was\nf616ba3aa fix(coil): stop shipping upstream's update feed, which we never actually disabled\nf659ea8dd fix(coil): restore the release, and make two of its checks capable of failing\n51ee891dc fix(coil): publish a canonical Latest release, and re-arm retention\n723f95941 docs(coil): design a canonical Latest release for the fork\nf751f0a01 fix(coil): tell the truth about the one macOS prompt an update raises\ne0e8e22ff perf(coil): halve the desktop release bundle (#53)\n0602eef1c docs(coil): re-baseline the ledger for the sidebar wordmark row\nf404119d0 feat(coil): finish the app rename at the surfaces that name the app (#71)\n4c57838a2 docs(coil): repoint two ledger citations at the paths #71 moved\n324f88ca5 refactor(coil): retire the local desktop autobuild\n02ca4fd19 fix(coil): reach the renamed relay through a service binding (#71)\n81e6ec966 fix(coil): make --rotate emit the CI secret commands itself (#71)\n9b440b7b5 fix(coil): finish the certificate rotation and list all 47 rows in the ledger (#71)\n82db9038e chore(coil): re-record the designated requirement after the certificate rotation\nf02d7775d fix(coil): compute the build-counter offset in bash, not in an expression (#71)\ndd33f974b fix(coil): repoint the last references to moved files (#71)\nc181de9be style(coil): format the files this rename touched (#71)\neafe55a81 docs(coil): re-baseline the seam ledger and correct the runbooks (#71)\n490939a7e fix(coil): carry PRs #78 and #84 across the rename (#71)\n9426bcb8d feat(coil): move the relay, keeping the old hostname alive as a proxy (#71)\nbd8c6a5c3 feat(coil): cut the sync automation over to coil names (#71)\ne18120a1c feat(coil): move the release identity, offsetting the counter so clients keep updating (#71)\naa5bf5c8b feat(coil): rename the app to T3 Coil, with its own bundle id and certificate (#71)\neaad55239 refactor(coil): move the fork's directories and symbols off t3x (#71)\n893ff9dc5 docs(coil): design the t3x -> coil rename around its four silent failures (#71)\nc2533809c fix(deps): clear the sharp and @hono/node-server advisories by re-resolution (#58) (#87)\n08935e020 feat(coil): put the real install steps on the download page, from one source (#72)\n", "detail": "merge aborted; working tree restored\n" }▶ To fix: comment
@claude resolveon this issue (or run the coil sync resolve (agent) workflow). An agent replays the merge, resolves the conflicts, runs typecheck/lint/test, and opens an ordinary PR for review — nothing is pushed tomain. Runbook:docs/coil/sync-agent-runbook.md.