Skip to content

[coil-sync] daily sync needs attention (conflict) #151

Description

@github-actions

Automated daily upstream sync could not complete.

Result: conflict
Recovery tag: coil/last-good-20260913-125526
Run: 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 resolve on 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 to main. Runbook: docs/coil/sync-agent-runbook.md.

Activity

  1. github-actions commented on Sep 14, 2026

    @github-actions
    Author

    Automated daily upstream sync could not complete.

    Result: conflict
    Recovery tag: coil/last-good-20260914-143255
    Run: https://github.com/radroid/t3code/actions/runs/34856183514

    status 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 resolve on 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 to main. Runbook: docs/coil/sync-agent-runbook.md.

  2. github-actions commented on Sep 15, 2026

    @github-actions
    Author

    Automated daily upstream sync could not complete.

    Result: conflict
    Recovery tag: coil/last-good-20260915-125839
    Run: https://github.com/radroid/t3code/actions/runs/34971944748

    status 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 resolve on 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 to main. Runbook: docs/coil/sync-agent-runbook.md.

  3. github-actions commented on Sep 16, 2026

    @github-actions
    Author

    Automated daily upstream sync could not complete.

    Result: conflict
    Recovery tag: coil/last-good-20260916-125547
    Run: https://github.com/radroid/t3code/actions/runs/35098576088

    status 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 resolve on 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 to main. Runbook: docs/coil/sync-agent-runbook.md.

  4. github-actions commented on Sep 17, 2026

    @github-actions
    Author

    Automated daily upstream sync could not complete.

    Result: conflict
    Recovery tag: coil/last-good-20260917-125158
    Run: https://github.com/radroid/t3code/actions/runs/35223461239

    status 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 resolve on 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 to main. Runbook: docs/coil/sync-agent-runbook.md.

  5. github-actions commented on Sep 18, 2026

    @github-actions
    Author

    Automated daily upstream sync could not complete.

    Result: conflict
    Recovery tag: coil/last-good-20260918-122657
    Run: https://github.com/radroid/t3code/actions/runs/35344598813

    status 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 resolve on 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 to main. Runbook: docs/coil/sync-agent-runbook.md.

  6. github-actions commented on Sep 19, 2026

    @github-actions
    Author

    Automated daily upstream sync could not complete.

    Result: conflict
    Recovery tag: coil/last-good-20260919-120922
    Run: https://github.com/radroid/t3code/actions/runs/35441982234

    status 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 resolve on 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 to main. Runbook: docs/coil/sync-agent-runbook.md.

  7. radroid commented on Sep 20, 2026

    @radroid
    Owner

    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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    coil-syncUpstream sync needs a human/agent

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions