Skip to content

[coil-sync] daily sync needs attention (verify-failed) #159

Description

@github-actions

Automated daily upstream sync could not complete.

Result: verify-failed
Recovery tag: coil/last-good-20260923-130714
Run: https://github.com/radroid/t3code/actions/runs/35864700276

status JSON
{
  "kind": "daily",
  "result": "verify-failed",
  "upstream_range": "f5ef0ddb9 chore(mobile): bump app version to 1.3.1\neb6c170c4 test(desktop): remove redundant keyring module-load test (#13220)\nb21c54565 fix(web): sort title matches by recent activity (#13219)\n829af7b73 feat(web): navigate back and forward with mod+[ and mod+] (#13212)\n23c7ab901 fix(mobile): recover from screen render errors (#13197)\n10882bea7 chore(web): no-restyle fails lint, and the ceiling gate goes (#13210)\n0e512db34 refactor(web): composer controls own their look instead of restyling ui components (#13209)\n71c9b6931 refactor(web): Button consumers outside the composer stop restyling it (#13208)\nf46522777 refactor(web): app code stops restyling sidebar, popover, table and misc ui exports (#13207)\n21079391c refactor(web): field controls stop restyling Input, Select, Combobox and Command (#13206)\n866fc9075 refactor(web): menu triggers and items stop restyling ui/menu (#13205)\n361b047f5 refactor(web): ui components drop their secondary className props (#13193)\n266d70cc4 refactor(web): context chips render through one ContextChip component (#13192)\n29931dd3a hatch/variant functions (#13191)\naca3c87cd chore(mobile): clear the legacy-list deletion fallout (#13203)\neafb4a934 fix(server): GitHub PR lookups stop probing owner-qualified heads (#13200)\n18de6bb32 fix(server): background PR sync reads summaries in batches (#13198)\n5975ec78b fix(server): background PR checks spend less GitHub quota (#13189)\n0c91f687d refactor(mobile): retire the legacy grouped thread list (#13183)\n151324b2c perf(mobile): recycle the default v2 home list and scope the snooze minute tick (#13149)\n219c1d265 fix(web): align provider emails without clipping (#13174)\ndb898a306 refactor(mobile): remaining className platform ternaries become class variants (#13188)\n21be723ad refactor(mobile): git sheets use uniwind platform variants instead of className ternaries (#13185)\nb9199617d fix(mobile): uniwind platform variants stay guarded on both platforms (#13172)\n6975efd3d fix(web): the pull request badge reads at the meta size again (#13175)\n2eaff0824 chore(lint): keep mobile theme escape-hatch allowlist honest (#13146)\n96c4bfa0a feat(providers): check remote compatibility ranges (#13130)\na493946bb fix(mobile): keep ordinary offline outbox failures out of console.warn (#13144)\nca864a25b chore(models): use GPT-6 Luna for text generation (#13115)\ne4422eec7 fix(desktop): find linuxbrew node for the WSL backend (#7827)\nb954af60c test(web): cover usage model ordering without static markup (#13104)\n68607c5a9 fix(web): preserve nested scroll behavior in chat timeline (#13167)\nf22331240 fix(server): generate PR diffs from branch changes (#13170)\n5821b778f refactor(mobile): break module cycles with focused extractions (#13151)\n5d493d67c docs(mobile): document the two mobile routes that intentionally skip deep links (#13164)\n6dcde218a revert(mobile): git sheets back to Platform.OS ternaries (un-guarded uniwind variants broke both platforms) (#13169)\n340965191 chore(mobile): name the two project favicon caches by their job (#13160)\nec28eefa0 refactor(mobile): git sheets use uniwind platform variants instead of className ternaries (#13161)\n7e65b226e feat(auth): share provider sign-in flows and credential bindings (#12983)\ndb9a0671b refactor(web): move settings scope pickers into breadcrumbs (#13165)\n242816af8 feat(web): show settings scope as a sentence at the top of the page (#13139)\nbed0b4cda chore(mobile): drop dead nitro-markdown tgz override and @expo/metro-runtime (#13148)\nd7819c188 chore(devices): bump agent-device to 0.21.12 (#13124)\nf193a6863 fix(server): bypass owned caches on explicit provider refresh (#13109)\n",
  "upstream_head": "f5ef0ddb90a8c36584e181b1913e7b8a5df30ffc\n",
  "conflicted_files": "\n",
  "culprit_commits": "\n",
  "failing_step": "lint\n",
  "patch_manifest": "2edd6909e docs(coil): repoint the seam ledger at the final merge-base\n85cc65480 docs(coil): re-baseline the seam ledger for the 2026-09-22 sync\n2041766be fix(coil): the offline queue releases the attachment uploads it drops\n8df97aad1 fix(deps): patch Nanoid zero-size advisory\n5379a8e49 chore(coil): Dependabot runs go green: vendored repos excluded, 38 advisories re-resolved (#155)\nfecbf70d1 fix(coil): scripts typecheck passes on effect rc.115 (#154)\n2c426238b fix(coil): the bundle gate requires only each layer's native externals\n3acc43842 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)\n",
  "detail": "merge clean but 'lint' failed\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 24, 2026

    @github-actions
    Author

    Automated daily upstream sync could not complete.

    Result: conflict
    Recovery tag: coil/last-good-20260924-125953
    Run: https://github.com/radroid/t3code/actions/runs/36002508394

    status JSON
    {
      "kind": "daily",
      "result": "conflict",
      "upstream_range": "b2b43bef7 fix(server): preserve racy edits in review diff previews (#12613)\ne67abcf79 feat(observability): honor the OpenTelemetry kill switch (#13355)\n9383f4ad7 chore: add scratchyone to vouched list (#13353)\n78af372cf feat(web): add an interactive 3D device workspace (#12787)\nf1add18ae fix(shared): preserve final quoted empty CSV records (#11425)\n21e2b7de0 fix(web): switches announce their real state to screen readers (#11580)\n9030a60ea fix(web): composer chip rings no longer clip at the editor edge (#13301)\n6b4b19096 fix(desktop): SnapShot shortcut helper no longer adds a Dock icon on macOS (#13286)\nc0912debc fix(web): use a brain icon for the effort dropdown (#13309)\ne4eb9977f fix(server): stop replaying old agent alerts on restart (#13340)\n894d33419 fix(preview): use the visible browser for new agent sessions (#13064)\nd4cd7d5c3 fix(providers): restore compatibility ranges for every harness (#13328)\neffaab94e fix(web): show previous worktree branch on second line (#13314)\ne407f9bb0 fix(ci): shard release tests like pull request CI (#13321)\n68fb7f4b8 feat(mobile): manage environment and provider updates (#13302)\n11e91f126 feat(mobile): capture Live Activities and agent notifications in showcase screenshots (#13316)\nf5ef0ddb9 chore(mobile): bump app version to 1.3.1\neb6c170c4 test(desktop): remove redundant keyring module-load test (#13220)\nb21c54565 fix(web): sort title matches by recent activity (#13219)\n829af7b73 feat(web): navigate back and forward with mod+[ and mod+] (#13212)\n23c7ab901 fix(mobile): recover from screen render errors (#13197)\n10882bea7 chore(web): no-restyle fails lint, and the ceiling gate goes (#13210)\n0e512db34 refactor(web): composer controls own their look instead of restyling ui components (#13209)\n71c9b6931 refactor(web): Button consumers outside the composer stop restyling it (#13208)\nf46522777 refactor(web): app code stops restyling sidebar, popover, table and misc ui exports (#13207)\n21079391c refactor(web): field controls stop restyling Input, Select, Combobox and Command (#13206)\n866fc9075 refactor(web): menu triggers and items stop restyling ui/menu (#13205)\n361b047f5 refactor(web): ui components drop their secondary className props (#13193)\n266d70cc4 refactor(web): context chips render through one ContextChip component (#13192)\n29931dd3a hatch/variant functions (#13191)\naca3c87cd chore(mobile): clear the legacy-list deletion fallout (#13203)\neafb4a934 fix(server): GitHub PR lookups stop probing owner-qualified heads (#13200)\n18de6bb32 fix(server): background PR sync reads summaries in batches (#13198)\n5975ec78b fix(server): background PR checks spend less GitHub quota (#13189)\n0c91f687d refactor(mobile): retire the legacy grouped thread list (#13183)\n151324b2c perf(mobile): recycle the default v2 home list and scope the snooze minute tick (#13149)\n219c1d265 fix(web): align provider emails without clipping (#13174)\ndb898a306 refactor(mobile): remaining className platform ternaries become class variants (#13188)\n21be723ad refactor(mobile): git sheets use uniwind platform variants instead of className ternaries (#13185)\nb9199617d fix(mobile): uniwind platform variants stay guarded on both platforms (#13172)\n6975efd3d fix(web): the pull request badge reads at the meta size again (#13175)\n2eaff0824 chore(lint): keep mobile theme escape-hatch allowlist honest (#13146)\n96c4bfa0a feat(providers): check remote compatibility ranges (#13130)\na493946bb fix(mobile): keep ordinary offline outbox failures out of console.warn (#13144)\nca864a25b chore(models): use GPT-6 Luna for text generation (#13115)\ne4422eec7 fix(desktop): find linuxbrew node for the WSL backend (#7827)\nb954af60c test(web): cover usage model ordering without static markup (#13104)\n68607c5a9 fix(web): preserve nested scroll behavior in chat timeline (#13167)\nf22331240 fix(server): generate PR diffs from branch changes (#13170)\n5821b778f refactor(mobile): break module cycles with focused extractions (#13151)\n5d493d67c docs(mobile): document the two mobile routes that intentionally skip deep links (#13164)\n6dcde218a revert(mobile): git sheets back to Platform.OS ternaries (un-guarded uniwind variants broke both platforms) (#13169)\n340965191 chore(mobile): name the two project favicon caches by their job (#13160)\nec28eefa0 refactor(mobile): git sheets use uniwind platform variants instead of className ternaries (#13161)\n7e65b226e feat(auth): share provider sign-in flows and credential bindings (#12983)\ndb9a0671b refactor(web): move settings scope pickers into breadcrumbs (#13165)\n242816af8 feat(web): show settings scope as a sentence at the top of the page (#13139)\nbed0b4cda chore(mobile): drop dead nitro-markdown tgz override and @expo/metro-runtime (#13148)\nd7819c188 chore(devices): bump agent-device to 0.21.12 (#13124)\nf193a6863 fix(server): bypass owned caches on explicit provider refresh (#13109)\n",
      "upstream_head": "b2b43bef73447c483ceae486890cb79f01c369cb\n",
      "conflicted_files": "apps/desktop/src/ipc/channels.ts \n",
      "culprit_commits": "78af372cf feat(web): add an interactive 3D device workspace (#12787)\n",
      "failing_step": "\n",
      "patch_manifest": "2edd6909e docs(coil): repoint the seam ledger at the final merge-base\n85cc65480 docs(coil): re-baseline the seam ledger for the 2026-09-22 sync\n2041766be fix(coil): the offline queue releases the attachment uploads it drops\n8df97aad1 fix(deps): patch Nanoid zero-size advisory\n5379a8e49 chore(coil): Dependabot runs go green: vendored repos excluded, 38 advisories re-resolved (#155)\nfecbf70d1 fix(coil): scripts typecheck passes on effect rc.115 (#154)\n2c426238b fix(coil): the bundle gate requires only each layer's native externals\n3acc43842 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)\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 25, 2026

    @github-actions
    Author

    Automated daily upstream sync could not complete.

    Result: conflict
    Recovery tag: coil/last-good-20260925-130624
    Run: https://github.com/radroid/t3code/actions/runs/36138705960

    status JSON
    {
      "kind": "daily",
      "result": "conflict",
      "upstream_range": "e5a46d6c5 feat(usage): read cursor, opencode, and antigravity history (#10409)\n1c1270663 fix(mobile): render assigned project icons in chat list (#12810)\ne55e7315e fix: update OpenAI logo to current brand asset (#13611)\ne3e7cc3fc fix(usage): price Claude fast-mode requests at the fast rate (#13599)\n86054b6df fix(desktop): `t3 app` keeps working after a second desktop app quits (#13585)\n13d6b3051 fix(web): new worktree threads no longer say \"checkout\" during setup (#13590)\nb3de243d5 fix(dev): one t3.json setup action that works on every OS (#13589)\nd10bd1360 perf(desktop): cache compiled JavaScript between launches (#13501)\nc13f7d93f feat(release): ship a Linux .deb that updates itself (#13575)\n20f0ff178 fix(web): keep nested task states out of parent bullets (#11477)\na107f8a07 fix(clients): a preview app no longer knocks the desktop's own server offline (#13577)\n7b8443116 fix(web): size the Android fold model from the inner display (#13574)\ndf9826f08 feat(web): agents working banner links to the Agents panel (#13572)\n1e192b255 fix(mcp): preview errors tell agents what to do instead (#13559)\n99641fd09 feat(desktop): keep running threads synced in the background (#13554)\n0c84b4289 fix(web): paste after clicking away from the composer lands in it again (#13553)\n4f27a8463 fix(mcp): preview snapshots fit in the agent's tool output again (#13558)\n9957349c0 feat(web): control Android foldables in the Device panel (#13534)\n6391be272 fix(server): newer Codex models get T3 Code's instructions again (#13547)\nab70c8943 fix(clients): sync status no longer flickers when opening running threads (#13551)\n29abbf9b4 fix(web): collapsed composer bar stops flipping its labels while you scroll (#13555)\nebdcda135 fix(web): selected text stays visible on a revealed file line (#13548)\nfc46b8c3d ci(relay): add a forced manual relay deploy (#13550)\n568c9bc4d chore: clear Effect language service suggestions (#13536)\n3e2370fbb feat(web): add usage page keybinding (#9434)\n91e53e501 fix(server): report the Grok account email so usage limits merge across environments (#12588)\n0cab7d5ab fix(server): Grok accounts with no usage yet no longer vanish from Limits (#12799)\nd23eab13d fix(relay): export tunnel cleanup counters to Axiom (#13528)\n46f3c2ca2 feat(web): add iPhone Duo 3D controls (#12813)\nfd4651005 fix(web): keep sidebar terminal pulses in sync (#12962)\n59abcd67a fix(mobile): make Android subscription usage widgets scrollable (#13474)\n72447f23d feat(grok): offer one-click updates through `grok update` (#13523)\n9c524d577 fix(mobile): capture a lit 6.9-inch lock screen in the agent-activity showcase (#13522)\n8d7b5e998 fix(connect): remove tunnels after hosts go offline (#9386)\nd4a33457c fix(desktop): desktop updates reconnect in seconds, not minutes (#12006)\n9a91177c3 fix(web): sidebar Back always returns to the main app (#13516)\n720490adc fix(web): normalize disabled control opacity (#11441)\na36af0637 fix(server): streamed section titles wait for the text under them (#13504)\n8251c8de7 fix(web): working and monitoring threads fade in the sidebar again (#13506)\n010967041 feat(threads): add per-thread auto-settle switch (#11846)\nd5d48742c feat(codex): require Codex 0.156 and regenerate its protocol (#13481)\n567783ecd fix(codex): the protocol generator runs again on Effect rc.115 (#13480)\nf3cb2a1fe fix(antigravity): keep Windows runtime unpacking under MAX_PATH (#13389)\n66129c6fd feat(web): run shell commands from chat in the thread terminal (#13060)\ne759847f9 fix(acp): keep one answer when a running tool reports progress (#13386)\n53456bc01 fix(marketing): use the official OpenCode and Antigravity logos (#13365)\nf61f979c7 fix(web,mobile): drop the baked-in tile from the Antigravity icon (#13373)\ncdb26fe63 fix(antigravity): let Stop end commands that outlived their turn (#13388)\n87d842801 fix(observability): a malformed OTEL_RESOURCE_ATTRIBUTES no longer stops startup (#13469)\n3412097bf feat(server): show and redeem Claude banked resets (#13118)\n7cfb4987f chore(ci): use GPT 6 Sol Max for check agents (#13473)\n84c436bcf fix(mobile): branch search finds remote and space-typed branches (#13454)\nffb5fcce7 fix(server): keep Codex's reset answer when the re-probe fails (#13363)\nf26ee083f fix(web): appearance classes use theme tokens and scale values (#13397)\n315fcca10 fix(web): web colors come from theme tokens (#13371)\n80fc23ac3 lint/unknown and static (#13366)\ncb1a3f346 fix(web): show repository names on linked pull requests (#13061)\nb2b43bef7 fix(server): preserve racy edits in review diff previews (#12613)\ne67abcf79 feat(observability): honor the OpenTelemetry kill switch (#13355)\n9383f4ad7 chore: add scratchyone to vouched list (#13353)\n78af372cf feat(web): add an interactive 3D device workspace (#12787)\nf1add18ae fix(shared): preserve final quoted empty CSV records (#11425)\n21e2b7de0 fix(web): switches announce their real state to screen readers (#11580)\n9030a60ea fix(web): composer chip rings no longer clip at the editor edge (#13301)\n6b4b19096 fix(desktop): SnapShot shortcut helper no longer adds a Dock icon on macOS (#13286)\nc0912debc fix(web): use a brain icon for the effort dropdown (#13309)\ne4eb9977f fix(server): stop replaying old agent alerts on restart (#13340)\n894d33419 fix(preview): use the visible browser for new agent sessions (#13064)\nd4cd7d5c3 fix(providers): restore compatibility ranges for every harness (#13328)\neffaab94e fix(web): show previous worktree branch on second line (#13314)\ne407f9bb0 fix(ci): shard release tests like pull request CI (#13321)\n68fb7f4b8 feat(mobile): manage environment and provider updates (#13302)\n11e91f126 feat(mobile): capture Live Activities and agent notifications in showcase screenshots (#13316)\nf5ef0ddb9 chore(mobile): bump app version to 1.3.1\neb6c170c4 test(desktop): remove redundant keyring module-load test (#13220)\nb21c54565 fix(web): sort title matches by recent activity (#13219)\n829af7b73 feat(web): navigate back and forward with mod+[ and mod+] (#13212)\n23c7ab901 fix(mobile): recover from screen render errors (#13197)\n10882bea7 chore(web): no-restyle fails lint, and the ceiling gate goes (#13210)\n0e512db34 refactor(web): composer controls own their look instead of restyling ui components (#13209)\n71c9b6931 refactor(web): Button consumers outside the composer stop restyling it (#13208)\nf46522777 refactor(web): app code stops restyling sidebar, popover, table and misc ui exports (#13207)\n21079391c refactor(web): field controls stop restyling Input, Select, Combobox and Command (#13206)\n866fc9075 refactor(web): menu triggers and items stop restyling ui/menu (#13205)\n361b047f5 refactor(web): ui components drop their secondary className props (#13193)\n266d70cc4 refactor(web): context chips render through one ContextChip component (#13192)\n29931dd3a hatch/variant functions (#13191)\naca3c87cd chore(mobile): clear the legacy-list deletion fallout (#13203)\neafb4a934 fix(server): GitHub PR lookups stop probing owner-qualified heads (#13200)\n18de6bb32 fix(server): background PR sync reads summaries in batches (#13198)\n5975ec78b fix(server): background PR checks spend less GitHub quota (#13189)\n0c91f687d refactor(mobile): retire the legacy grouped thread list (#13183)\n151324b2c perf(mobile): recycle the default v2 home list and scope the snooze minute tick (#13149)\n219c1d265 fix(web): align provider emails without clipping (#13174)\ndb898a306 refactor(mobile): remaining className platform ternaries become class variants (#13188)\n21be723ad refactor(mobile): git sheets use uniwind platform variants instead of className ternaries (#13185)\nb9199617d fix(mobile): uniwind platform variants stay guarded on both platforms (#13172)\n6975efd3d fix(web): the pull request badge reads at the meta size again (#13175)\n2eaff0824 chore(lint): keep mobile theme escape-hatch allowlist honest (#13146)\n96c4bfa0a feat(providers): check remote compatibility ranges (#13130)\n",
      "upstream_head": "e5a46d6c5d00b89afba5274a94d42428c8d79763\n",
      "conflicted_files": "apps/desktop/src/ipc/channels.ts apps/web/src/components/chat/ComposerPrimaryActions.tsx apps/web/src/routes/__root.tsx \n",
      "culprit_commits": "99641fd09 feat(desktop): keep running threads synced in the background (#13554)\n720490adc fix(web): normalize disabled control opacity (#11441)\nf26ee083f fix(web): appearance classes use theme tokens and scale values (#13397)\n78af372cf feat(web): add an interactive 3D device workspace (#12787)\n0e512db34 refactor(web): composer controls own their look instead of restyling ui components (#13209)\n",
      "failing_step": "\n",
      "patch_manifest": "2edd6909e docs(coil): repoint the seam ledger at the final merge-base\n85cc65480 docs(coil): re-baseline the seam ledger for the 2026-09-22 sync\n2041766be fix(coil): the offline queue releases the attachment uploads it drops\n8df97aad1 fix(deps): patch Nanoid zero-size advisory\n5379a8e49 chore(coil): Dependabot runs go green: vendored repos excluded, 38 advisories re-resolved (#155)\nfecbf70d1 fix(coil): scripts typecheck passes on effect rc.115 (#154)\n2c426238b fix(coil): the bundle gate requires only each layer's native externals\n3acc43842 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)\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 26, 2026

    @github-actions
    Author

    Automated daily upstream sync could not complete.

    Result: conflict
    Recovery tag: coil/last-good-20260926-123325
    Run: https://github.com/radroid/t3code/actions/runs/36242225243

    status JSON
    {
      "kind": "daily",
      "result": "conflict",
      "upstream_range": "95030dc67 fix(server): background git status fetches no longer fill the disk with failed repacks (#13812)\n295d7cba0 fix(web): queued messages send while their thread is not open (#13764)\n81e0491d2 fix(mobile): keep trailing underscores and tildes in autolinked URLs (#13807)\n887266695 perf(server): cut idle wakeups from the Connect relay and session reaper (#13774)\n9151ea407 perf(clients): saving the thread list cache no longer freezes the UI (#13767)\n1d6f23b51 perf(server): background sweeps only read threads that can still settle (#13765)\n294dd1234 fix(observability): the renderer trace proxy stops tracing itself (#13761)\n6f97b0f66 perf(clients): sort projects and settled threads without re-parsing dates per comparison (#13759)\n8b873eab0 perf(server): opening Diagnostics no longer loads the whole trace ring into memory (#13763)\n99efaeab5 perf(observability): stop writing empty spans on spawns, projected events, and idle polls (#13756)\ndaafcc4a9 feat(web): add keyboard navigation for usage (#10158)\nfe6388f01 fix(mobile): link URLs with ports and single-label hosts (#13795)\ndef34c28b fix(server): let Antigravity inspect unsupported files by path (#13339)\n2679d279c fix(server): let OpenCode generate session titles (#13368)\ndab9561ca fix(mobile): keep composer within folded screen after resume (#13310)\n92f0af24a Show a focus ring on sidebar thread and draft rows (#13344)\n4923ff417 fix(server): bump node-pty to 1.2.0-beta.15 for linux-arm64 prebuild (#13748)\n8bc9b78f8 fix(web): terminal links drop a trailing colon (#13408)\na21b42cec fix(server): prune expired replay-protection files from the secrets directory (#13695)\n5d707bb71 fix(web): Mod+B bolds on non-Latin layouts (#13409)\n29a32660d fix(git): exclude SSH ports from provider URLs (#12537)\ndd8332da5 fix(server): installed editors no longer vanish when discovery is slow (#13669)\neeea71a88 fix(web): make the empty workspace draggable on desktop (#13713)\n1e844a3d0 fix(editors): stop treating the agy CLI as the Antigravity IDE (#7079)\n4408bf5a4 fix(opencode): accept v2 serve ready line when spawning server (#13651)\n04c15f34b feat(web): add chat width setting for wide screens (#11594)\n94c42162b fix(usage): hide the Cursor keychain prompt when Cursor isn't set up (#13714)\n999161ef8 perf(server): stop re-running git for every project each minute (#13689)\nee18e56f9 feat(observability): record event loop stalls in the server trace (#13697)\necd3237b1 fix(mobile): running threads open at the latest message (#13530)\n3b0a495b0 perf(server): per-thread settlement and PR checks no longer rebuild the whole thread list (#13691)\n6989856aa perf(web): hidden terminal drawers no longer keep full thread history in memory (#13686)\nb2577d6ef fix(client): slow servers finish loading the thread list instead of loading it twice (#13683)\nb6eefc926 perf(server): build the thread list snapshot without decoding it twice (#13693)\n574b18090 perf(server): shutdown no longer rewrites every stopped session row (#13688)\n1dc8cbe6d feat(observability): write a server heap snapshot on SIGUSR2 (#13694)\n6530de033 perf(server): pull request sync reads only threads with linked pull requests (#13704)\n75bf92e65 feat(cli): summarize the server trace file from the command line (#13698)\n8aa5be2f0 fix(server): the SQLite WAL file shrinks back after large writes (#13684)\n7c901a37c fix(cli): t3 triage points agents at log files that exist (#13685)\n20885cecf feat(observability): name the command on subprocess spans (#13701)\n5660ab5cb Remove unused items tracking from Claude adapter state (#13718)\nc216ba4da perf(server): stop remapping every thread on each thread event (#13720)\n2a9832b80 refactor(observability): name each service after its application (#13699)\n595a1e1f5 perf(mobile): render Home rows further ahead while scrolling (#13705)\naade3a69a fix(usage): price Cursor cache savings by base model (#13731)\n525af2d1a perf(mobile): lighter Home rows away from the viewport (#13702)\ned809f7ad fix(web): restore compact provider instance badges (#13700)\n2598ce7a5 feat(desktop): honor the standard OTLP variables in the main process and WSL backends (#13641)\n4293433ec perf(server): avoid rereading unchanged files in review previews (#13395)\nf5bd2fddb fix(server): load Cursor keyring with createRequire (#13678)\n1a0c915c4 fix(terminal): settling a thread closes its idle shells (#13673)\nfd996d15e feat(observability): honor the standard OTLP endpoint, headers, and protocol variables (#13492)\na4f6078be fix(web): return focus to the composer after saving a citation note (#13450)\n7a12aff47 fix(mobile): scale Android controls with appearance text size (#13356)\nd06f0ff10 fix(sqlite): retry failed statement preparations (#10584)\ne5a46d6c5 feat(usage): read cursor, opencode, and antigravity history (#10409)\n1c1270663 fix(mobile): render assigned project icons in chat list (#12810)\ne55e7315e fix: update OpenAI logo to current brand asset (#13611)\ne3e7cc3fc fix(usage): price Claude fast-mode requests at the fast rate (#13599)\n86054b6df fix(desktop): `t3 app` keeps working after a second desktop app quits (#13585)\n13d6b3051 fix(web): new worktree threads no longer say \"checkout\" during setup (#13590)\nb3de243d5 fix(dev): one t3.json setup action that works on every OS (#13589)\nd10bd1360 perf(desktop): cache compiled JavaScript between launches (#13501)\nc13f7d93f feat(release): ship a Linux .deb that updates itself (#13575)\n20f0ff178 fix(web): keep nested task states out of parent bullets (#11477)\na107f8a07 fix(clients): a preview app no longer knocks the desktop's own server offline (#13577)\n7b8443116 fix(web): size the Android fold model from the inner display (#13574)\ndf9826f08 feat(web): agents working banner links to the Agents panel (#13572)\n1e192b255 fix(mcp): preview errors tell agents what to do instead (#13559)\n99641fd09 feat(desktop): keep running threads synced in the background (#13554)\n0c84b4289 fix(web): paste after clicking away from the composer lands in it again (#13553)\n4f27a8463 fix(mcp): preview snapshots fit in the agent's tool output again (#13558)\n9957349c0 feat(web): control Android foldables in the Device panel (#13534)\n6391be272 fix(server): newer Codex models get T3 Code's instructions again (#13547)\nab70c8943 fix(clients): sync status no longer flickers when opening running threads (#13551)\n29abbf9b4 fix(web): collapsed composer bar stops flipping its labels while you scroll (#13555)\nebdcda135 fix(web): selected text stays visible on a revealed file line (#13548)\nfc46b8c3d ci(relay): add a forced manual relay deploy (#13550)\n568c9bc4d chore: clear Effect language service suggestions (#13536)\n3e2370fbb feat(web): add usage page keybinding (#9434)\n91e53e501 fix(server): report the Grok account email so usage limits merge across environments (#12588)\n0cab7d5ab fix(server): Grok accounts with no usage yet no longer vanish from Limits (#12799)\nd23eab13d fix(relay): export tunnel cleanup counters to Axiom (#13528)\n46f3c2ca2 feat(web): add iPhone Duo 3D controls (#12813)\nfd4651005 fix(web): keep sidebar terminal pulses in sync (#12962)\n59abcd67a fix(mobile): make Android subscription usage widgets scrollable (#13474)\n72447f23d feat(grok): offer one-click updates through `grok update` (#13523)\n9c524d577 fix(mobile): capture a lit 6.9-inch lock screen in the agent-activity showcase (#13522)\n8d7b5e998 fix(connect): remove tunnels after hosts go offline (#9386)\nd4a33457c fix(desktop): desktop updates reconnect in seconds, not minutes (#12006)\n9a91177c3 fix(web): sidebar Back always returns to the main app (#13516)\n720490adc fix(web): normalize disabled control opacity (#11441)\na36af0637 fix(server): streamed section titles wait for the text under them (#13504)\n8251c8de7 fix(web): working and monitoring threads fade in the sidebar again (#13506)\n010967041 feat(threads): add per-thread auto-settle switch (#11846)\nd5d48742c feat(codex): require Codex 0.156 and regenerate its protocol (#13481)\n567783ecd fix(codex): the protocol generator runs again on Effect rc.115 (#13480)\nf3cb2a1fe fix(antigravity): keep Windows runtime unpacking under MAX_PATH (#13389)\n66129c6fd feat(web): run shell commands from chat in the thread terminal (#13060)\n",
      "upstream_head": "95030dc674883f0f2a7fd034b32ce742c8cf55d0\n",
      "conflicted_files": "apps/desktop/src/ipc/channels.ts apps/web/src/components/chat/ComposerPrimaryActions.tsx apps/web/src/routes/__root.tsx \n",
      "culprit_commits": "295d7cba0 fix(web): queued messages send while their thread is not open (#13764)\n04c15f34b feat(web): add chat width setting for wide screens (#11594)\n99641fd09 feat(desktop): keep running threads synced in the background (#13554)\n720490adc fix(web): normalize disabled control opacity (#11441)\nf26ee083f fix(web): appearance classes use theme tokens and scale values (#13397)\n78af372cf feat(web): add an interactive 3D device workspace (#12787)\n0e512db34 refactor(web): composer controls own their look instead of restyling ui components (#13209)\n",
      "failing_step": "\n",
      "patch_manifest": "2edd6909e docs(coil): repoint the seam ledger at the final merge-base\n85cc65480 docs(coil): re-baseline the seam ledger for the 2026-09-22 sync\n2041766be fix(coil): the offline queue releases the attachment uploads it drops\n8df97aad1 fix(deps): patch Nanoid zero-size advisory\n5379a8e49 chore(coil): Dependabot runs go green: vendored repos excluded, 38 advisories re-resolved (#155)\nfecbf70d1 fix(coil): scripts typecheck passes on effect rc.115 (#154)\n2c426238b fix(coil): the bundle gate requires only each layer's native externals\n3acc43842 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)\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 27, 2026

    @github-actions
    Author

    Automated daily upstream sync could not complete.

    Result: conflict
    Recovery tag: coil/last-good-20260927-132350
    Run: https://github.com/radroid/t3code/actions/runs/36322174261

    status JSON
    {
      "kind": "daily",
      "result": "conflict",
      "upstream_range": "de251fc29 fix(web): continue onboarding after incomplete history imports (#13935)\na727d1d97 test(relay): remove constant-restating database mode test (#13932)\nab099178a fix(web): environment status tooltip resizes when the status changes (#13845)\ncb9741594 fix(server): let agents use simctl and adb alongside device tools (#13908)\nc9a0e8a11 fix(web): align reasoning arrows with tool calls (#13850)\n74ee5153e feat(observability): honor OTEL_*_EXPORTER=none per signal (#13736)\n679c34c09 fix(clients): hide duplicate Cursor Keychain prompts (#13870)\nea7d46ac1 fix(build): validate Linux node-pty prebuilds in Windows artifacts (#13867)\nd110f9867 test(usage): assert contract mismatch details (#13861)\ndd582dee3 fix(web): stop mistaking offline servers for updates (#13083)\n3dae78f33 fix(usage): identify client version mismatches (#8208)\nd6802b4ac fix(usage): omit Cursor warning when no login is saved (#13820)\n10bb59bf0 fix(usage): tolerate newer provider variants (#10076)\n393d59598 fix(accessibility): correct control announcements and sidebar traversal (#13491)\n75d63d64c fix(mobile): thread list shows the pull request icon instead of # (#13742)\n95030dc67 fix(server): background git status fetches no longer fill the disk with failed repacks (#13812)\n295d7cba0 fix(web): queued messages send while their thread is not open (#13764)\n81e0491d2 fix(mobile): keep trailing underscores and tildes in autolinked URLs (#13807)\n887266695 perf(server): cut idle wakeups from the Connect relay and session reaper (#13774)\n9151ea407 perf(clients): saving the thread list cache no longer freezes the UI (#13767)\n1d6f23b51 perf(server): background sweeps only read threads that can still settle (#13765)\n294dd1234 fix(observability): the renderer trace proxy stops tracing itself (#13761)\n6f97b0f66 perf(clients): sort projects and settled threads without re-parsing dates per comparison (#13759)\n8b873eab0 perf(server): opening Diagnostics no longer loads the whole trace ring into memory (#13763)\n99efaeab5 perf(observability): stop writing empty spans on spawns, projected events, and idle polls (#13756)\ndaafcc4a9 feat(web): add keyboard navigation for usage (#10158)\nfe6388f01 fix(mobile): link URLs with ports and single-label hosts (#13795)\ndef34c28b fix(server): let Antigravity inspect unsupported files by path (#13339)\n2679d279c fix(server): let OpenCode generate session titles (#13368)\ndab9561ca fix(mobile): keep composer within folded screen after resume (#13310)\n92f0af24a Show a focus ring on sidebar thread and draft rows (#13344)\n4923ff417 fix(server): bump node-pty to 1.2.0-beta.15 for linux-arm64 prebuild (#13748)\n8bc9b78f8 fix(web): terminal links drop a trailing colon (#13408)\na21b42cec fix(server): prune expired replay-protection files from the secrets directory (#13695)\n5d707bb71 fix(web): Mod+B bolds on non-Latin layouts (#13409)\n29a32660d fix(git): exclude SSH ports from provider URLs (#12537)\ndd8332da5 fix(server): installed editors no longer vanish when discovery is slow (#13669)\neeea71a88 fix(web): make the empty workspace draggable on desktop (#13713)\n1e844a3d0 fix(editors): stop treating the agy CLI as the Antigravity IDE (#7079)\n4408bf5a4 fix(opencode): accept v2 serve ready line when spawning server (#13651)\n04c15f34b feat(web): add chat width setting for wide screens (#11594)\n94c42162b fix(usage): hide the Cursor keychain prompt when Cursor isn't set up (#13714)\n999161ef8 perf(server): stop re-running git for every project each minute (#13689)\nee18e56f9 feat(observability): record event loop stalls in the server trace (#13697)\necd3237b1 fix(mobile): running threads open at the latest message (#13530)\n3b0a495b0 perf(server): per-thread settlement and PR checks no longer rebuild the whole thread list (#13691)\n6989856aa perf(web): hidden terminal drawers no longer keep full thread history in memory (#13686)\nb2577d6ef fix(client): slow servers finish loading the thread list instead of loading it twice (#13683)\nb6eefc926 perf(server): build the thread list snapshot without decoding it twice (#13693)\n574b18090 perf(server): shutdown no longer rewrites every stopped session row (#13688)\n1dc8cbe6d feat(observability): write a server heap snapshot on SIGUSR2 (#13694)\n6530de033 perf(server): pull request sync reads only threads with linked pull requests (#13704)\n75bf92e65 feat(cli): summarize the server trace file from the command line (#13698)\n8aa5be2f0 fix(server): the SQLite WAL file shrinks back after large writes (#13684)\n7c901a37c fix(cli): t3 triage points agents at log files that exist (#13685)\n20885cecf feat(observability): name the command on subprocess spans (#13701)\n5660ab5cb Remove unused items tracking from Claude adapter state (#13718)\nc216ba4da perf(server): stop remapping every thread on each thread event (#13720)\n2a9832b80 refactor(observability): name each service after its application (#13699)\n595a1e1f5 perf(mobile): render Home rows further ahead while scrolling (#13705)\naade3a69a fix(usage): price Cursor cache savings by base model (#13731)\n525af2d1a perf(mobile): lighter Home rows away from the viewport (#13702)\ned809f7ad fix(web): restore compact provider instance badges (#13700)\n2598ce7a5 feat(desktop): honor the standard OTLP variables in the main process and WSL backends (#13641)\n4293433ec perf(server): avoid rereading unchanged files in review previews (#13395)\nf5bd2fddb fix(server): load Cursor keyring with createRequire (#13678)\n1a0c915c4 fix(terminal): settling a thread closes its idle shells (#13673)\nfd996d15e feat(observability): honor the standard OTLP endpoint, headers, and protocol variables (#13492)\na4f6078be fix(web): return focus to the composer after saving a citation note (#13450)\n7a12aff47 fix(mobile): scale Android controls with appearance text size (#13356)\nd06f0ff10 fix(sqlite): retry failed statement preparations (#10584)\ne5a46d6c5 feat(usage): read cursor, opencode, and antigravity history (#10409)\n1c1270663 fix(mobile): render assigned project icons in chat list (#12810)\ne55e7315e fix: update OpenAI logo to current brand asset (#13611)\ne3e7cc3fc fix(usage): price Claude fast-mode requests at the fast rate (#13599)\n86054b6df fix(desktop): `t3 app` keeps working after a second desktop app quits (#13585)\n13d6b3051 fix(web): new worktree threads no longer say \"checkout\" during setup (#13590)\nb3de243d5 fix(dev): one t3.json setup action that works on every OS (#13589)\nd10bd1360 perf(desktop): cache compiled JavaScript between launches (#13501)\nc13f7d93f feat(release): ship a Linux .deb that updates itself (#13575)\n20f0ff178 fix(web): keep nested task states out of parent bullets (#11477)\na107f8a07 fix(clients): a preview app no longer knocks the desktop's own server offline (#13577)\n7b8443116 fix(web): size the Android fold model from the inner display (#13574)\ndf9826f08 feat(web): agents working banner links to the Agents panel (#13572)\n1e192b255 fix(mcp): preview errors tell agents what to do instead (#13559)\n99641fd09 feat(desktop): keep running threads synced in the background (#13554)\n0c84b4289 fix(web): paste after clicking away from the composer lands in it again (#13553)\n4f27a8463 fix(mcp): preview snapshots fit in the agent's tool output again (#13558)\n9957349c0 feat(web): control Android foldables in the Device panel (#13534)\n6391be272 fix(server): newer Codex models get T3 Code's instructions again (#13547)\nab70c8943 fix(clients): sync status no longer flickers when opening running threads (#13551)\n29abbf9b4 fix(web): collapsed composer bar stops flipping its labels while you scroll (#13555)\nebdcda135 fix(web): selected text stays visible on a revealed file line (#13548)\nfc46b8c3d ci(relay): add a forced manual relay deploy (#13550)\n568c9bc4d chore: clear Effect language service suggestions (#13536)\n3e2370fbb feat(web): add usage page keybinding (#9434)\n91e53e501 fix(server): report the Grok account email so usage limits merge across environments (#12588)\n0cab7d5ab fix(server): Grok accounts with no usage yet no longer vanish from Limits (#12799)\nd23eab13d fix(relay): export tunnel cleanup counters to Axiom (#13528)\n46f3c2ca2 feat(web): add iPhone Duo 3D controls (#12813)\n",
      "upstream_head": "de251fc2971a884cb5b1305ba4daf309dc8cccb0\n",
      "conflicted_files": "apps/desktop/src/ipc/channels.ts apps/web/src/components/chat/ComposerPrimaryActions.tsx apps/web/src/routes/__root.tsx \n",
      "culprit_commits": "295d7cba0 fix(web): queued messages send while their thread is not open (#13764)\n04c15f34b feat(web): add chat width setting for wide screens (#11594)\n99641fd09 feat(desktop): keep running threads synced in the background (#13554)\n720490adc fix(web): normalize disabled control opacity (#11441)\nf26ee083f fix(web): appearance classes use theme tokens and scale values (#13397)\n78af372cf feat(web): add an interactive 3D device workspace (#12787)\n0e512db34 refactor(web): composer controls own their look instead of restyling ui components (#13209)\n",
      "failing_step": "\n",
      "patch_manifest": "2edd6909e docs(coil): repoint the seam ledger at the final merge-base\n85cc65480 docs(coil): re-baseline the seam ledger for the 2026-09-22 sync\n2041766be fix(coil): the offline queue releases the attachment uploads it drops\n8df97aad1 fix(deps): patch Nanoid zero-size advisory\n5379a8e49 chore(coil): Dependabot runs go green: vendored repos excluded, 38 advisories re-resolved (#155)\nfecbf70d1 fix(coil): scripts typecheck passes on effect rc.115 (#154)\n2c426238b fix(coil): the bundle gate requires only each layer's native externals\n3acc43842 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)\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 28, 2026

    @github-actions
    Author

    Automated daily upstream sync could not complete.

    Result: conflict
    Recovery tag: coil/last-good-20260928-161245
    Run: https://github.com/radroid/t3code/actions/runs/36449108071

    status JSON
    {
      "kind": "daily",
      "result": "conflict",
      "upstream_range": "d15210cd3 fix(web): prevent usage summary shift for unpriced records (#13991)\n94f92a7a3 fix(server): let Claude abort turns before closing sessions (#13999)\nde251fc29 fix(web): continue onboarding after incomplete history imports (#13935)\na727d1d97 test(relay): remove constant-restating database mode test (#13932)\nab099178a fix(web): environment status tooltip resizes when the status changes (#13845)\ncb9741594 fix(server): let agents use simctl and adb alongside device tools (#13908)\nc9a0e8a11 fix(web): align reasoning arrows with tool calls (#13850)\n74ee5153e feat(observability): honor OTEL_*_EXPORTER=none per signal (#13736)\n679c34c09 fix(clients): hide duplicate Cursor Keychain prompts (#13870)\nea7d46ac1 fix(build): validate Linux node-pty prebuilds in Windows artifacts (#13867)\nd110f9867 test(usage): assert contract mismatch details (#13861)\ndd582dee3 fix(web): stop mistaking offline servers for updates (#13083)\n3dae78f33 fix(usage): identify client version mismatches (#8208)\nd6802b4ac fix(usage): omit Cursor warning when no login is saved (#13820)\n10bb59bf0 fix(usage): tolerate newer provider variants (#10076)\n393d59598 fix(accessibility): correct control announcements and sidebar traversal (#13491)\n75d63d64c fix(mobile): thread list shows the pull request icon instead of # (#13742)\n95030dc67 fix(server): background git status fetches no longer fill the disk with failed repacks (#13812)\n295d7cba0 fix(web): queued messages send while their thread is not open (#13764)\n81e0491d2 fix(mobile): keep trailing underscores and tildes in autolinked URLs (#13807)\n887266695 perf(server): cut idle wakeups from the Connect relay and session reaper (#13774)\n9151ea407 perf(clients): saving the thread list cache no longer freezes the UI (#13767)\n1d6f23b51 perf(server): background sweeps only read threads that can still settle (#13765)\n294dd1234 fix(observability): the renderer trace proxy stops tracing itself (#13761)\n6f97b0f66 perf(clients): sort projects and settled threads without re-parsing dates per comparison (#13759)\n8b873eab0 perf(server): opening Diagnostics no longer loads the whole trace ring into memory (#13763)\n99efaeab5 perf(observability): stop writing empty spans on spawns, projected events, and idle polls (#13756)\ndaafcc4a9 feat(web): add keyboard navigation for usage (#10158)\nfe6388f01 fix(mobile): link URLs with ports and single-label hosts (#13795)\ndef34c28b fix(server): let Antigravity inspect unsupported files by path (#13339)\n2679d279c fix(server): let OpenCode generate session titles (#13368)\ndab9561ca fix(mobile): keep composer within folded screen after resume (#13310)\n92f0af24a Show a focus ring on sidebar thread and draft rows (#13344)\n4923ff417 fix(server): bump node-pty to 1.2.0-beta.15 for linux-arm64 prebuild (#13748)\n8bc9b78f8 fix(web): terminal links drop a trailing colon (#13408)\na21b42cec fix(server): prune expired replay-protection files from the secrets directory (#13695)\n5d707bb71 fix(web): Mod+B bolds on non-Latin layouts (#13409)\n29a32660d fix(git): exclude SSH ports from provider URLs (#12537)\ndd8332da5 fix(server): installed editors no longer vanish when discovery is slow (#13669)\neeea71a88 fix(web): make the empty workspace draggable on desktop (#13713)\n1e844a3d0 fix(editors): stop treating the agy CLI as the Antigravity IDE (#7079)\n4408bf5a4 fix(opencode): accept v2 serve ready line when spawning server (#13651)\n04c15f34b feat(web): add chat width setting for wide screens (#11594)\n94c42162b fix(usage): hide the Cursor keychain prompt when Cursor isn't set up (#13714)\n999161ef8 perf(server): stop re-running git for every project each minute (#13689)\nee18e56f9 feat(observability): record event loop stalls in the server trace (#13697)\necd3237b1 fix(mobile): running threads open at the latest message (#13530)\n3b0a495b0 perf(server): per-thread settlement and PR checks no longer rebuild the whole thread list (#13691)\n6989856aa perf(web): hidden terminal drawers no longer keep full thread history in memory (#13686)\nb2577d6ef fix(client): slow servers finish loading the thread list instead of loading it twice (#13683)\nb6eefc926 perf(server): build the thread list snapshot without decoding it twice (#13693)\n574b18090 perf(server): shutdown no longer rewrites every stopped session row (#13688)\n1dc8cbe6d feat(observability): write a server heap snapshot on SIGUSR2 (#13694)\n6530de033 perf(server): pull request sync reads only threads with linked pull requests (#13704)\n75bf92e65 feat(cli): summarize the server trace file from the command line (#13698)\n8aa5be2f0 fix(server): the SQLite WAL file shrinks back after large writes (#13684)\n7c901a37c fix(cli): t3 triage points agents at log files that exist (#13685)\n20885cecf feat(observability): name the command on subprocess spans (#13701)\n5660ab5cb Remove unused items tracking from Claude adapter state (#13718)\nc216ba4da perf(server): stop remapping every thread on each thread event (#13720)\n2a9832b80 refactor(observability): name each service after its application (#13699)\n595a1e1f5 perf(mobile): render Home rows further ahead while scrolling (#13705)\naade3a69a fix(usage): price Cursor cache savings by base model (#13731)\n525af2d1a perf(mobile): lighter Home rows away from the viewport (#13702)\ned809f7ad fix(web): restore compact provider instance badges (#13700)\n2598ce7a5 feat(desktop): honor the standard OTLP variables in the main process and WSL backends (#13641)\n4293433ec perf(server): avoid rereading unchanged files in review previews (#13395)\nf5bd2fddb fix(server): load Cursor keyring with createRequire (#13678)\n1a0c915c4 fix(terminal): settling a thread closes its idle shells (#13673)\nfd996d15e feat(observability): honor the standard OTLP endpoint, headers, and protocol variables (#13492)\na4f6078be fix(web): return focus to the composer after saving a citation note (#13450)\n7a12aff47 fix(mobile): scale Android controls with appearance text size (#13356)\nd06f0ff10 fix(sqlite): retry failed statement preparations (#10584)\ne5a46d6c5 feat(usage): read cursor, opencode, and antigravity history (#10409)\n1c1270663 fix(mobile): render assigned project icons in chat list (#12810)\ne55e7315e fix: update OpenAI logo to current brand asset (#13611)\ne3e7cc3fc fix(usage): price Claude fast-mode requests at the fast rate (#13599)\n86054b6df fix(desktop): `t3 app` keeps working after a second desktop app quits (#13585)\n13d6b3051 fix(web): new worktree threads no longer say \"checkout\" during setup (#13590)\nb3de243d5 fix(dev): one t3.json setup action that works on every OS (#13589)\nd10bd1360 perf(desktop): cache compiled JavaScript between launches (#13501)\nc13f7d93f feat(release): ship a Linux .deb that updates itself (#13575)\n20f0ff178 fix(web): keep nested task states out of parent bullets (#11477)\na107f8a07 fix(clients): a preview app no longer knocks the desktop's own server offline (#13577)\n7b8443116 fix(web): size the Android fold model from the inner display (#13574)\ndf9826f08 feat(web): agents working banner links to the Agents panel (#13572)\n1e192b255 fix(mcp): preview errors tell agents what to do instead (#13559)\n99641fd09 feat(desktop): keep running threads synced in the background (#13554)\n0c84b4289 fix(web): paste after clicking away from the composer lands in it again (#13553)\n4f27a8463 fix(mcp): preview snapshots fit in the agent's tool output again (#13558)\n9957349c0 feat(web): control Android foldables in the Device panel (#13534)\n6391be272 fix(server): newer Codex models get T3 Code's instructions again (#13547)\nab70c8943 fix(clients): sync status no longer flickers when opening running threads (#13551)\n29abbf9b4 fix(web): collapsed composer bar stops flipping its labels while you scroll (#13555)\nebdcda135 fix(web): selected text stays visible on a revealed file line (#13548)\nfc46b8c3d ci(relay): add a forced manual relay deploy (#13550)\n568c9bc4d chore: clear Effect language service suggestions (#13536)\n3e2370fbb feat(web): add usage page keybinding (#9434)\n91e53e501 fix(server): report the Grok account email so usage limits merge across environments (#12588)\n0cab7d5ab fix(server): Grok accounts with no usage yet no longer vanish from Limits (#12799)\n",
      "upstream_head": "d15210cd3da79f9a1a495a6309d912d76362a046\n",
      "conflicted_files": "apps/desktop/src/ipc/channels.ts apps/web/src/components/chat/ComposerPrimaryActions.tsx apps/web/src/routes/__root.tsx \n",
      "culprit_commits": "295d7cba0 fix(web): queued messages send while their thread is not open (#13764)\n04c15f34b feat(web): add chat width setting for wide screens (#11594)\n99641fd09 feat(desktop): keep running threads synced in the background (#13554)\n720490adc fix(web): normalize disabled control opacity (#11441)\nf26ee083f fix(web): appearance classes use theme tokens and scale values (#13397)\n78af372cf feat(web): add an interactive 3D device workspace (#12787)\n0e512db34 refactor(web): composer controls own their look instead of restyling ui components (#13209)\n",
      "failing_step": "\n",
      "patch_manifest": "2edd6909e docs(coil): repoint the seam ledger at the final merge-base\n85cc65480 docs(coil): re-baseline the seam ledger for the 2026-09-22 sync\n2041766be fix(coil): the offline queue releases the attachment uploads it drops\n8df97aad1 fix(deps): patch Nanoid zero-size advisory\n5379a8e49 chore(coil): Dependabot runs go green: vendored repos excluded, 38 advisories re-resolved (#155)\nfecbf70d1 fix(coil): scripts typecheck passes on effect rc.115 (#154)\n2c426238b fix(coil): the bundle gate requires only each layer's native externals\n3acc43842 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)\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.

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