Repository navigation
[coil-sync] daily sync needs attention (conflict) #207
Copy link
Copy link
Closed
Labels
coil-syncUpstream sync needs a human/agentUpstream sync needs a human/agent
Description
Automated daily upstream sync could not complete.
Result: conflict
Recovery tag: coil/last-good-20261026-143947
Run: https://github.com/radroid/t3code/actions/runs/40341429652
status JSON
{
"kind": "daily",
"result": "conflict",
"upstream_range": "87ea18cad9 fix(mobile): describe when composer view commands can reject (#25516)\nd81757eea9 test(web): attachment preview omission tests no longer time out on CI (#25515)\nf05c38f166 fix(web): browser viewport resizes work without an open preview panel (#25462)\nd6fb62ac3f fix(mobile): editing a queued message while a question is open no longer throws (#25503)\na936f05a6a refactor(web): root theme, toast and chrome sync start with the app (#25461)\n148d2fdc0e refactor(web): root theme, toast and chrome sync start with the app (#25461)\ne5ea25d129 fix(mobile): queued edits end when their run starts, wherever you are (#25468)\n7d3208cbea test(web): say why the useStableCallback test renders without a router (#25493)\nf0dd86f164 fix(web): stable callbacks refresh before layout effects read them (#25489)\n28df7a246f refactor(web): terminal output no longer re-renders the drawer, theme search runs from handlers (#25458)\nd5a791b940 fix(client): drafts for answered questions are cleared even when their thread is not open (#25457)\n59a3f52ad3 fix(mobile): a new thread's first send no longer sticks on Starting (#25477)\n3cb16cf165 fix(web): find shows its match after a thread switch, and the timeline hears scrolling through one viewport signal (#25463)\n9d7997afc5 refactor(web): resize drags, panel shells and the browser host own their listeners (#25464)\n2acc7b55cf refactor(web): review guide runs are watched from their answers, not from mounted components (#25459)\n3f3c1b9bcf refactor(web): HTML previews handle frame messages in one listener (#25456)\n071239804e refactor(web): pull request list remembers each answer for the next start (#25364)\ncc0b86ddf1 fix(server): goals stop the running turn, clear while working, no echoes (#25426)\n3e47c1cabc fix(mobile): e2e landscape poses rotate for real on tablets and folds\n6a1c8d1e34 fix(mobile): mobile:install no longer requires --prepare\n3433ba15fd fix(mobile): select the correct draft after adding a project (#24269)\n911091ba7e chore(mobile): e2e poses for current devices, Duo and landscape fixes\n6ffde5ba39 refactor(mobile): composer pastes and picks are cancelled by their draft, not by the composer (#25376)\n6ea34149bb refactor(client): composers share one workspace snapshot refresh per provider and cwd (#25370)\n1316d48b0c fix(web): citations to older responses load their history instead of failing (#25371)\na240408242 refactor(web): file breadcrumb menus refetch on a new workspace change, not on every open (#25377)\n184d915d87 feat(mobile): thread rows drop the branch and lead with the title (#25415)\ncc93cc564b revert(web): composer body ref goes back to the #25079 ref callback (#25412)\n91f47a1a27 fix(mobile): mobile:install builds on a cache miss for pooled devices, iOS on EAS (#25390)\n0a20d7ea73 fix(web): switching threads no longer delays the next thread's visit by up to 10s (#25368)\ne1c750e7bd fix(web): composer body ref stops re-attaching on every render (#25409)\n72dde22b6f chore(lint): enforce effectFnOpportunity (#25099)\nd171a88fc4 feat(mobile): run the chrome e2e across poses on the device pool\nfb8fc1ffd3 refactor(web): disconnect and reconnect delays read a shared deadline instead of effect timers (#25363)\n1ecb1a0f93 fix(mobile): avoid crashes opening wrapped source links (#25156)\n572cf74275 fix(server): retry stalled MCP registration for resumed Claude turns (#25372)\nbfc7177f9f fix(mobile): pause videos outside visible thread and PR content (#24268)\n9eac774602 test(mobile): run React hooks with the release compiler (#24274)\n5a38e6b859 fix(web): model picker no longer jumps when switching providers (#25358)\n2763bbeb73 fix(server): preview snapshots preserve blurred backdrops (#24618)\n3e70f55bac fix(dev): skip auto-seeding large databases (#25365)\n3ed0688c10 fix(server): remove one-child-per-model instruction (#25359)\n10629afaac fix(server): select the active iPhone Duo display for screenshots (#24912)\n3d5364fb06 fix(task-cache): name Android native client downloads .apk\ncbd72e5847 fix(task-cache): avoid cross-request admission waiters (#25353)\n03851b8e7b fix(web): keep large thread counts from shrinking labels (#25355)\n69f85ef34e chore(task-cache): name native client downloads so agent-device can install them by URL\n433837752c feat(web): \"failed to start\" screen helps users recover and report the crash (#25345)\n4e493b1492 docs: read GitHub Actions logs through cafe (#25343)\n695f5c9963 chore(lint): enforce t3code/no-polling-loop-in-tests (#25120)\nd53b446284 chore(lint): enforce oxc/no-accumulating-spread (#25114)\n2931461619 chore(lint): enforce t3code/no-inline-schema-compile (#25113)\nd8597159d9 chore(lint): enforce abortControllerInEffect (#25098)\n6618ccbebc chore(lint): enforce runEffectInsideEffect (#25096)\n931bd53614 chore(lint): enforce flatMapConditionalToFilterOrFail (#25082)\n80f411f13d chore(lint): enforce catchConditionalRefailToCatchIf (#25081)\n62245d8e3a fix(web): composer bottom toolbar keeps its background under update notices (#25335)\n32507803da fix(web): usage tabs no longer jump when switching to Limits (#25336)\n6f3f0d46ea feat(web): \"could not load\" screen tells users how to debug it (#25317)\n1549046fd2 fix(web): thread undo notice sits above the bottom shelves instead of pushing the list (#25270)\naa2c80b9e3 fix(web): stacked notices above the composer no longer cast a dark band (#25329)\nc66f13ce97 refactor(mobile): stream and MCP webviews tie their work to the view's lifetime (#25226)\n70b0abceda fix(web): short branch names no longer get clipped in thread details (#25328)\n7f26969c51 chore(lint): enforce react/set-state-in-effect (#25119)\nf40c7c6435 feat(web): new design is on by default (#25324)\n7df7cb9999 fix(web): sent messages stand out on the black canvas in the new design (#25323)\nf1b8758316 fix(web): VS Code icon in thread details no longer has a box around it (#25321)\n72d4dc9b1e fix(web): composer corners and context strip no longer show double edges (#25316)\n85f17ea246 chore(lint): enforce react/exhaustive-effect-dependencies (#25118)\n9d6a2e57fc fix(web): new thread shortcut focuses palette search, not the Back button (#25315)\nbeeb2159e1 chore(lint): enforce react/refs (#25116)\n6a3a460b09 refactor(web): sidebar thread lists derive state instead of syncing it in effects (#25234)\n8a4ad9452a refactor(web): root notification and toast coordinators start with the app (#25233)\n04a21bb1c1 fix(web): app loads again after a chunk cycle blanked it at boot (#25295)\n1de64942be chore(lint): enforce react/purity (#25038)\n7510e5e43c fix(mobile): Android dialogs raised before or during activity replacement now show (#25229)\na2589f22d3 fix(mobile): review opens on Changes and keeps the section you picked (#25223)\nd593081034 refactor(mobile): settings and usage screens drop sync effects (#25227)\n02f4ba75a2 fix(web): SSH password prompts wait for their dialog, and the app shell drops its sync effects (#25239)\nc3888da8b4 feat(web): New design brings back color where it means something (#25251)\n0a3b561bc0 refactor(web): device panel reads hub state from atoms (#25265)\nf512ff6159 fix(web): composer banners, menus and pickers act in their handlers (#25238)\nf279070244 fix(web): Escape and copy work in chat media and markdown widgets, which attach through ref callbacks (#25246)\nd487078f11 chore(lint): enforce react/memo-dependencies (#25117)\nf88b33a16d fix(web): thread find exports the timeline fields type its context names (#25260)\n80b48cc96c refactor(mobile): thread detail and feed reset by key and share one follow owner (#25148)\nd1f701849b chore(lint): disable returnEffectInGen (#25050)\n1cd44f0d55 chore(lint): disable eslint/no-control-regex (#25049)\nd75fb04fa6 chore(lint): disable typescript/no-this-alias (#25048)\nf10a04b7fa chore(lint): disable unicorn/prefer-add-event-listener (#25047)\ncf21b986f1 chore(lint): disable unicorn/prefer-string-starts-ends-with (#25045)\n78d89dd401 chore(lint): disable unicorn/prefer-set-has (#25044)\ne5a551572b chore(lint): disable unicorn/prefer-array-find (#25043)\n751a37fefd chore(lint): disable unicorn/no-new-array (#25042)\n56d13e2daa chore(lint): disable unicorn/no-array-reverse (#25041)\nc5eb559d57 chore(lint): disable react/no-object-type-as-default-prop (#25040)\n8a84d40886 chore(lint): disable react/jsx-no-constructed-context-values (#25039)\n908226fc88 chore(lint): enforce react/immutability (#25115)\nf44fea47a0 chore(lint): enforce react/no-array-index-key (#25112)\n7e20a5b8f6 chore(lint): enforce react/no-unstable-nested-components (#25111)\n",
"upstream_head": "87ea18cad91fa246f66e65acd00fe99aa733c14e\n",
"conflicted_files": "apps/server/src/sourceControl/SourceControlRepositoryService.ts pnpm-lock.yaml \n",
"culprit_commits": "3433ba15fd fix(mobile): select the correct draft after adding a project (#24269)\n72dde22b6f chore(lint): enforce effectFnOpportunity (#25099)\n80f411f13d chore(lint): enforce catchConditionalRefailToCatchIf (#25081)\n34ead566d4 feat(web): preview opendocument, epub, rich text, and notebooks (#21469)\n9d17a02782 feat(web): preview archives, sqlite databases, and decoded images (#21467)\n73afb57097 feat(web): virtualize large file previews (#21466)\nd69810a97a feat(web): preview office files, fonts, and mermaid diagrams (#21362)\n888a3d47d3 fix(server): make document attachments readable to agents (#21458)\n0b42aa9476 chore(devices): bump agent-device to 0.21.31 (#25065)\n44df336016 fix(mobile): upgrade react-native-keyboard-controller to 1.22.8 for the Duo fold composer (#25141)\n5f1f604733 feat(mobile): on-demand chrome e2e runner across simulators\n3816296021 feat(web): UI design overhaul, with the new look behind a Beta toggle (#24865)\nba006f2dfa perf(mobile): bound streaming markdown cache and pending work (#24263)\n7bafc40c17 feat(mobile): play audio inline and open shared files in the viewer (#21353)\n40ec16a9b6 fix(mobile): the Duo sidebar changes with the rotation, not after it (#24951)\n",
"failing_step": "\n",
"patch_manifest": "68c43cb522 fix(coil): fork comments fit upstream's four-line comment cap\n6667ba026b fix(coil): point fork clone code at upstream's forge definitions\n7085f2ca07 fix(coil): fork copy passes upstream's no-em-dash lint rule\n56d34883f2 fix(deps): pin eight security fixes upstream's ranges already allow (#194)\n5b57b1e473 ci(coil): desktop tests no longer race Electron's download (#195)\n5026317e6e fix(coil): a clone that fails over SSH and HTTPS says the shared cause once\n3ac51f7d99 chore(coil): the app is called T3 Code again\nb00ea1f567 ci(coil): each upstream sync lands as a PR that says what changed for users\ne9b1842e8d ci(coil): web tests get Chromium and upstream's release repository\n8aab919b0b docs(coil): repoint the seam ledger at 67c0fc0cda\nc94c9b29a6 fix(coil): upstream's new Linux URL handler test uses the fork's app name\n9338847968 fix(coil): hosted pages name and link the fork's desktop app\nc49a622173 fix(coil): install instructions follow upstream's Alpha to Beta rename\nf7a33471f2 fix(coil): fork code passes upstream's prefer-effect-fn lint rule\nf0f7bae650 fix(coil): fork code passes upstream's new comment and memo lint rules\ne1f1a870dd ci(coil): the daily sync re-resolves a lockfile-only conflict\nc16d3e35c3 chore(coil): prune security pins upstream already covers\n98cd4a0840 chore(coil): mount the update toast outside __root.tsx\n1ae2f5c7d5 chore(coil): use upstream's mobile composer Return handling\ne1db9a3d06 docs(coil): a start page for building on the fork\n1e3e9f6064 chore(coil): retire parked and absorbed fork features\na09120ded2 docs(coil): repoint the seam ledger at 7ac952c630\n941f9fdd9e docs(coil): repoint the seam ledger at 6002c5c68c\n4faec437bd docs(coil): repoint the seam ledger at 6524a8d437\n7fb9b0166e docs(coil): re-baseline the seam ledger at 58d253231d\n7a65e076d7 fix(coil): point fork source-control code at upstream's new packages\n48c28b09d8 ci(coil): run web tests alone in the single-runner sync verifies\n31846e0650 ci(coil): split the test gate like upstream so web tests get their own runner\ne99c8a3a07 docs(coil): repoint the seam ledger at the final merge-base\n91ec07ee86 ci(coil): give the test gate room for upstream's larger server suite\nf1cd9cf359 docs(coil): re-baseline the seam ledger at cdd331b6c3\n09609366fe docs(coil-home): drop parked features from the feature list\n8652ef2a4b fix(coil): bring fork code up to the merged upstream\n23779805a8 ci(coil): install Chromium for server tests; retire the release-workflow test\na1a141261c chore(coil): park fork features built on orchestration v1\nd1e974ffa3 docs(coil): repoint the seam ledger at the final merge-base\n77505136d4 test(coil): the toggle's timing assertions read its inline transition\nafbb22d520 docs(coil): re-baseline the seam ledger for the 2026-09-28 sync\nd60080285c fix(coil): the outbox drain waits for upstream's queue to send first\n80ba53d112 docs(coil-home): carry upstream's refreshed OpenAI and OpenCode logos\na32c48020d fix(coil): fork UI passes upstream's design-system lint gate\n2edd6909e6 docs(coil): repoint the seam ledger at the final merge-base\n85cc654807 docs(coil): re-baseline the seam ledger for the 2026-09-22 sync\n2041766bee fix(coil): the offline queue releases the attachment uploads it drops\n8df97aad19 fix(deps): patch Nanoid zero-size advisory\n5379a8e499 chore(coil): Dependabot runs go green: vendored repos excluded, 38 advisories re-resolved (#155)\nfecbf70d11 fix(coil): scripts typecheck passes on effect rc.115 (#154)\n2c426238be fix(coil): the bundle gate requires only each layer's native externals\n3acc43842c chore(coil): delete inherited upstream workflows instead of disabling th\n5d3360ccc5 test(coil): the doomed-turn replay waits for the reactor's verdict, not a turn count\ndc619218ed fix(coil): the bundle gate no longer fails a good release on regex quotes or JXA imports\n4b5c186a4f chore(deps): keep the astro 7.2.8 bump lock-only and inside the release-age policy\n3c3db729a4 chore(deps): resolve the lockfile for sharp 0.35.4 in /scripts\n4fae7d5d14 fix(coil): give http_ece a license notice so the desktop build passes\nfdada32d42 chore(deps): bump astro from 7.2.0 to 7.2.8\n0f95375822 chore(deps): bump sharp from 0.34.5 to 0.35.4 in /scripts\na068bb6de3 docs(coil): re-baseline the seam ledger for the 2026-09-12 sync\na81b3bd933 chore(coil): keep two seams additive after the merge\na0de8ee9db test(coil): the pre-ready desktop entry carries the fork's app name\nae3329145d ci(coil): install libsecret on Linux runners and the renamed Spectre component\nb8b4cb6130 fix(coil): crash recovery leaves prepared restart continuations alone\n2eec9cf7da fix(coil): read Claude rate-limit rejections from the runtime warning\ne0438aaec1 fix(coil): queued messages carry structured context like a normal send\nc2207685fe fix(coil): follow the Effect rc.112 and TypeScript 7 toolchain bumps\n89d522523d fix(coil): one failed auto-resume fire no longer aborts the tick\naefebcff3c test(coil): replay the #118 spend-limit payloads through the auto-resume classifier\nc48265fe4b test(coil): auto-resume tests wait on receipts, never on scheduler turns\n86054c7cb1 fix(server): classify Azure DevOps \"not authorized\" failures as authentication\n8391a6a32a fix(coil): the update toast's build age advances while the toast is visible\n8ed54891d1 test(coil): loops \u2014 tests wait on receipts, never on scheduler turns\n1c1af59ee0 feat(coil): loops \u2014 the supervisor announces what it did\n5c6b6f37aa perf(coil): loops \u2014 pruning happens when a run ends, not on every write\nb147969270 fix(coil): loops \u2014 the test harness never moves the clock on its own\naafdeed80f fix(coil): loops \u2014 one store read per tick, and a harness that waits for the answer\n8e998c5fbe fix(coil): loops \u2014 the console tells the truth about what it is showing\n588780000c fix(coil): loops \u2014 bound the state file and close the route and toolkit holes\n97de6179cf fix(coil): loops \u2014 install the adapter hooks in production and correct the decision table\n8f07eb7783 docs(coil): format the loops prototypes and rebuild the report\nabf29cfd75 fix(coil): loops \u2014 one store instance and loop_done wired across phases\n55dcd248e1 docs(coil): ledger totals for the loops seam row\n9397ad2d57 feat(coil): loops \u2014 the reactor, wired in (Phase 2)\n1ef7a6f929 feat(coil): loops \u2014 raise_blocker, loop_status and loop_done (Phase 5)\n3f15ffe717 docs(user): loops\nf16916d41d feat(coil): loops \u2014 Settings \u2192 Loops (Phase 4)\nb63e34b3e9 feat(coil): loops \u2014 the console overlay and the answer route (Phase 3)\ncc268cb685 docs(coil-home): the site no longer promises a daily rebase\n02f3b2cec9 docs(coil): the sync runbook and specs for a merge-based sync\ncfd948fe62 ci(coil): sync upstream by merging, not rebasing\n5caa9afa0c feat(coil): loops \u2014 the sentinel and the HTTP API (Phases 1\u20132)\n252ed85beb feat(coil): loops \u2014 the pure decision table and guards (Phase 2)\n8af8a1fd0f feat(coil): loops \u2014 record the agent's own scheduled wakes and pending questions (Phase 1)\nea836a96e5 feat(coil): loops \u2014 the durable record, config and cron parse (Phase 1 foundation)\nffef26c1b5 docs(coil): resolve the #125 review findings and verify the plan's assumptions\n7ca73fa6d2 refactor(coil): isClaudeThread accepts a thread shell\n368b7b368f refactor(coil): one scope-auth helper for every fork route\n93c1e67b84 docs(coil): re-baseline the seam ledger against the 2026-09-02 merge-base\ndcf49a1c19 fix(mobile): Return no longer submits while dictation freezes the composer\n3bdf109e2d fix(coil): report the DPoP failure reason on the auto-resume route\n88d5e24213 fix(coil): a server auto-settle must not destroy an armed auto-resume\n5ac7b67f4c fix(web): the queue path counts file attachments, not just images\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.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
coil-syncUpstream sync needs a human/agentUpstream sync needs a human/agent
Activity
github-actions commentedon Oct 27, 2026
Automated daily upstream sync could not complete.
Result:
conflictRecovery tag:
coil/last-good-20261027-134912Run: https://github.com/radroid/t3code/actions/runs/40514415145
status JSON
{ "kind": "daily", "result": "conflict", "upstream_range": "e9236274a3 refactor(mobile): showcase capture runs as an app service, not a chain of effects (#25857)\na8edf13f99 fix(mobile): the Add environment form shows only its own pairing errors (#25859)\n319c572c96 refactor(mobile): git action results buzz from where they are reported (#25912)\n6dc4842523 refactor(web): file tree drag mentions use React drag handlers (#25913)\nf41518f3bc ci(release): desktop builds that cannot open no longer publish (#25928)\n30f4d6374a ci(web): releases fail when the built web app cannot boot (#25929)\n3087e60fa4 fix(desktop): a broken release opens an error window instead of hanging (#25903)\n0d88fcf3d5 perf(mobile): worktree setup updates commit the thread screen once (#25910)\n2083a22919 fix(web): PR Code tab no longer requests the diff of a commit the PR dropped (#25916)\n067db24e00 refactor(web): preview element picker drops its unmount guard (#25920)\n3e61886a24 refactor(web): file browser records the right-click position on its own panel (#25908)\na4fe62ecfb refactor(web): composer overlay re-measures from one layout effect (#25915)\nc39a115a14 refactor(web): composer clears scroll-collapse in render, not after paint (#25909)\n7873f53ada fix(web): the Add ChatGPT account dialog animates closed once the account connects (#25868)\n1152e9171a fix(desktop): run the packaged bundle self-check on macOS artifacts (#25900)\n58c31f293d refactor(mobile): settings permission and update checks without sync effects (#25895)\n79f6cd30c7 refactor(mobile): workspace tabs, home filters and connection status derive instead of syncing (#25813)\n790ba13d0c refactor(mobile): app update checks start with the app (#25856)\nedf5a24b56 refactor(mobile): subagent timers share the visible second clock (#25854)\n9db3401bdc chore(mobile): e2e runner on agent-device 0.21.32, side-rail aware tab checks\n7c3b3b3605 fix(desktop): packaged server ships zod for @cursor/sdk 1.0.38 (#25841)\na452c2dfdc fix(mobile): opening a new thread before it is created no longer marks it unavailable (#25632)\n00c636e4b0 fix(mobile): picking a project on two machines starts on the connected one (#25839)\n63bc022f64 fix(web): clicking the device screen no longer draws a focus ring (#25882)\ne109dc8d89 refactor(mobile): each new-task draft route keeps its own flow state (#25812)\na86c05f977 fix(desktop): Cmd/Ctrl+W closes sidebar tabs, never the window (#25860)\nad068d7c93 fix(web): Steer no longer does nothing while a compaction runs (#25837)\n52925f9e98 refactor(mobile): prompt links resolve when the link is parsed, not from screen effects (#25820)\n28286d523f refactor(mobile): opening Review or Files shows the inspector in the first commit (#25817)\n737eab244d fix(mobile): Add project path survives its host dropping out and returning (#25819)\n92e645032c fix(web,mobile): queued messages get a simpler Send now row, no reordering (#25846)\n4cb29a56f6 fix(web): switching a file between markdown and the editor no longer saves a draft twice (#25768)\n03be432a5d fix(mobile): a held thread move retires when a snooze wakes, even with no list open (#25809)\na24b109bc3 refactor(mobile): showcase capture readiness is a tested pure model (#25816)\n1ebbc205f6 chore(review): CodeRabbit reviews tests against docs/internals/testing.md (#24204)\n56695ae3ec feat: model labels show the name you'd say out loud (#24205)\ne5f2e5dbbc fix(client-runtime): iOS resume keeps live sockets and drops dead ones 4x faster (#25824)\nd033768ec7 fix(server): preserve completed runs when accepting child deliveries (#25666)\nc175e5737e fix(build): TEMPORARY workaround so linux-arm64 builds run on 16/64 KiB page kernels (#25825)\nd2ab13b095 refactor(mobile): share imports run outside the new-task screen (#25793)\nf3b058cd6a fix(web,mobile): stopped runs no longer look like errors (#25830)\n1702d55214 fix(web,mobile): bot approvals are visible on the PR summary (#25829)\nbc8d02ffd5 fix(server): preserve interrupted Claude context after revert (#25695)\nb333c175ba fix(web): compact toggle shows the token count again (#25818)\nf81c4cd79f fix(web,mobile): markdown previews no longer show YAML frontmatter as a giant heading (#25804)\n1a4f3c4a3c fix(mobile): Windows image paths and non-ASCII file links open like desktop (#25802)\n2202787df0 fix(web): onboarding import no longer hangs when the project never arrives (#25805)\n6bbb2d8508 fix(server): Macs without Android no longer show avdmanager discovery warnings (#25815)\n70eccd48e4 fix(web): keep right panel maximize available in narrow windows (#25389)\n6f0f1a9851 feat(mobile): split wide Android Settings into two panes (#24298)\nb84e121226 fix(mobile): round shared Android sheets and Chat settings (#18547)\nc976a09df0 feat(mobile): add a \"Use last project\" preference for new threads (#24741)\n96fc7b9551 refactor(web): the new design is the only design, with no toggle (#25778)\nbc813670d9 fix(server): all MCP tools now send compact schemas, cutting tool context by 23% (#25790)\n278fdce1af test(server): data regression test now fails when recent fetch savings regress (#25795)\n0b02b21e5a refactor(mobile): notifications, quick actions and Connect onboarding navigate through the root ref (#25769)\n401b01747c chore(release): prepare v0.1.3\n6f6c6c14b7 refactor(web): drop the unreachable paint-only thread timeline path (#25787)\n2ad853ab21 refactor(mobile): the share inbox is a module store, presented from navigation state (#25744)\nbea2e9d62f refactor(mobile): theme preferences reach the native runtime without a layout effect (#25767)\n394929af76 test(server): CI fails when agent context grows past main (#25785)\na9b513b50c chore(evals): store eval cases as .ndjson so review tools skip them (#25782)\n5522180329 fix(mobile): align the iPad composer with workspace navigation (#24942)\n32bf48f428 fix(server): preserve settled runs during delegated acknowledgements (#25672)\nfe867b86c8 fix(server): Claude MCP timeouts preserve the native session (#25660)\nc294d63b21 fix(server): Sonnet also answers trend and comparison data with inline charts (#25776)\n850d1e7a6c fix(provider-cursor): bump @cursor/sdk to 1.0.38 so long-context tiers send Max Mode (#21074)\n44dae85688 fix(mobile): lists end at the search field, and HTML previews start below the header (#25765)\nb1619f3a74 fix(web): cancelling update everything no longer flashes the update button's focus ring and tooltip (#25774)\ne689dad42c fix(mobile): keep segmented controls readable on cards and screens (#25729)\n83838af7ba fix(mobile): finished subagents stay reachable from the Agents pill (#25759)\n689763a603 fix(mobile): isolate file tree state by workspace (#24270)\nd2c440312e fix(server): agents show trends and comparisons as inline charts again (#25766)\ne0d068cc9f fix(mobile): restore Android chat content corners (#23989)\n5d91ab1117 refactor(web): command palette state lives in a store, git and branch pickers drop timer and sync effects (#25733)\n8e86eb2b4d fix(client-runtime): searches and refreshes no longer wait on an unreachable environment (#25703)\n5811d5c846 refactor(mobile): app-lifetime services install once, and the usage widget stops re-rendering on every presentation change (#25740)\n3425671a95 feat(web): Add provider leads with first-class providers (#25753)\nf6a9315d19 refactor(web): diff and file reveals are requests, and workspace edits refetch by construction (#25732)\n65b4a69407 fix(web): thread details popover closes when the card moves inline (#25731)\nd145077b4f fix(mobile): a draft route's branch checkout runs once, even across a reconnect (#25712)\n417bc79711 fix(mobile): usage chart bars round at the top instead of the bottom (#21383)\n6df241d23a feat(provider): add Vercel fx as a provider (#18277)\n3b48b52326 refactor(mobile): new-task branch defaults are derived, not written after render (#25706)\n5127de8c29 fix(mobile): scale and align thread list icons (#25668)\n323d9611ff feat(acp): ACP session notices show as notices, not reply text (#25704)\n71ba6b374c refactor(web): optimistic chat messages leave without a timer (#25710)\n10a82e86ed fix(web): devices agents open in background threads now show up (#25714)\ndaa720a986 fix(workflows): keep completed workflows reachable (#24587)\n354f6c86dd fix(mobile): pull request rows refresh their diff stats after a new push (#25713)\ned44f251d8 feat(server): cut T3's MCP tool schemas by a third and merge 18 tools into action tools (#25423)\nbecf853def fix(web): PDF search finds phrases that wrap across lines (#25702)\n68339a0846 refactor(mobile): pull request list, filters and viewed files without synchronizing effects (#25614)\na2398c2ce3 refactor(mobile): thread inspector mode is derived, not synced (#25682)\n9bc0c33438 refactor(mobile): settings use web's pages and groups (#25686)\n5432d8e723 refactor(web): drafts promote from the draft store, not from route effects (#25615)\nbd3287b640 feat(web): thread state lives at the end of the timeline, not stacked on the composer (#25401)\n0623d09aee refactor(mobile): drop the unreachable pending-task editor from new-task drafts (#25684)\n08bd2ec09c test(web): PDF viewer behavior is covered by fast tests (#25699)\na7caea34ab fix(mobile): queued messages are delivered by an app service, not a render loop (#25678)\n", "upstream_head": "e9236274a3a6e0c731a7df4092db1e686f039068\n", "conflicted_files": "apps/server/src/sourceControl/SourceControlRepositoryService.ts pnpm-lock.yaml \n", "culprit_commits": "f41518f3bc ci(release): desktop builds that cannot open no longer publish (#25928)\n9db3401bdc chore(mobile): e2e runner on agent-device 0.21.32, side-rail aware tab checks\n7c3b3b3605 fix(desktop): packaged server ships zod for @cursor/sdk 1.0.38 (#25841)\n56695ae3ec feat: model labels show the name you'd say out loud (#24205)\nc175e5737e fix(build): TEMPORARY workaround so linux-arm64 builds run on 16/64 KiB page kernels (#25825)\n850d1e7a6c fix(provider-cursor): bump @cursor/sdk to 1.0.38 so long-context tiers send Max Mode (#21074)\n6df241d23a feat(provider): add Vercel fx as a provider (#18277)\n82dc892c5a feat(evals): shared evals package and an eval for T3 tool-use mistakes (#24635)\n6838e31b9c fix(web): screen readers can wrap to the first and last message of a long thread (#23780)\n3433ba15fd fix(mobile): select the correct draft after adding a project (#24269)\n72dde22b6f chore(lint): enforce effectFnOpportunity (#25099)\n80f411f13d chore(lint): enforce catchConditionalRefailToCatchIf (#25081)\n34ead566d4 feat(web): preview opendocument, epub, rich text, and notebooks (#21469)\n9d17a02782 feat(web): preview archives, sqlite databases, and decoded images (#21467)\n73afb57097 feat(web): virtualize large file previews (#21466)\nd69810a97a feat(web): preview office files, fonts, and mermaid diagrams (#21362)\n888a3d47d3 fix(server): make document attachments readable to agents (#21458)\n0b42aa9476 chore(devices): bump agent-device to 0.21.31 (#25065)\n44df336016 fix(mobile): upgrade react-native-keyboard-controller to 1.22.8 for the Duo fold composer (#25141)\n5f1f604733 feat(mobile): on-demand chrome e2e runner across simulators\n3816296021 feat(web): UI design overhaul, with the new look behind a Beta toggle (#24865)\nba006f2dfa perf(mobile): bound streaming markdown cache and pending work (#24263)\n7bafc40c17 feat(mobile): play audio inline and open shared files in the viewer (#21353)\n40ec16a9b6 fix(mobile): the Duo sidebar changes with the rotation, not after it (#24951)\n", "failing_step": "\n", "patch_manifest": "68c43cb522 fix(coil): fork comments fit upstream's four-line comment cap\n6667ba026b fix(coil): point fork clone code at upstream's forge definitions\n7085f2ca07 fix(coil): fork copy passes upstream's no-em-dash lint rule\n56d34883f2 fix(deps): pin eight security fixes upstream's ranges already allow (#194)\n5b57b1e473 ci(coil): desktop tests no longer race Electron's download (#195)\n5026317e6e fix(coil): a clone that fails over SSH and HTTPS says the shared cause once\n3ac51f7d99 chore(coil): the app is called T3 Code again\nb00ea1f567 ci(coil): each upstream sync lands as a PR that says what changed for users\ne9b1842e8d ci(coil): web tests get Chromium and upstream's release repository\n8aab919b0b docs(coil): repoint the seam ledger at 67c0fc0cda\nc94c9b29a6 fix(coil): upstream's new Linux URL handler test uses the fork's app name\n9338847968 fix(coil): hosted pages name and link the fork's desktop app\nc49a622173 fix(coil): install instructions follow upstream's Alpha to Beta rename\nf7a33471f2 fix(coil): fork code passes upstream's prefer-effect-fn lint rule\nf0f7bae650 fix(coil): fork code passes upstream's new comment and memo lint rules\ne1f1a870dd ci(coil): the daily sync re-resolves a lockfile-only conflict\nc16d3e35c3 chore(coil): prune security pins upstream already covers\n98cd4a0840 chore(coil): mount the update toast outside __root.tsx\n1ae2f5c7d5 chore(coil): use upstream's mobile composer Return handling\ne1db9a3d06 docs(coil): a start page for building on the fork\n1e3e9f6064 chore(coil): retire parked and absorbed fork features\na09120ded2 docs(coil): repoint the seam ledger at 7ac952c630\n941f9fdd9e docs(coil): repoint the seam ledger at 6002c5c68c\n4faec437bd docs(coil): repoint the seam ledger at 6524a8d437\n7fb9b0166e docs(coil): re-baseline the seam ledger at 58d253231d\n7a65e076d7 fix(coil): point fork source-control code at upstream's new packages\n48c28b09d8 ci(coil): run web tests alone in the single-runner sync verifies\n31846e0650 ci(coil): split the test gate like upstream so web tests get their own runner\ne99c8a3a07 docs(coil): repoint the seam ledger at the final merge-base\n91ec07ee86 ci(coil): give the test gate room for upstream's larger server suite\nf1cd9cf359 docs(coil): re-baseline the seam ledger at cdd331b6c3\n09609366fe docs(coil-home): drop parked features from the feature list\n8652ef2a4b fix(coil): bring fork code up to the merged upstream\n23779805a8 ci(coil): install Chromium for server tests; retire the release-workflow test\na1a141261c chore(coil): park fork features built on orchestration v1\nd1e974ffa3 docs(coil): repoint the seam ledger at the final merge-base\n77505136d4 test(coil): the toggle's timing assertions read its inline transition\nafbb22d520 docs(coil): re-baseline the seam ledger for the 2026-09-28 sync\nd60080285c fix(coil): the outbox drain waits for upstream's queue to send first\n80ba53d112 docs(coil-home): carry upstream's refreshed OpenAI and OpenCode logos\na32c48020d fix(coil): fork UI passes upstream's design-system lint gate\n2edd6909e6 docs(coil): repoint the seam ledger at the final merge-base\n85cc654807 docs(coil): re-baseline the seam ledger for the 2026-09-22 sync\n2041766bee fix(coil): the offline queue releases the attachment uploads it drops\n8df97aad19 fix(deps): patch Nanoid zero-size advisory\n5379a8e499 chore(coil): Dependabot runs go green: vendored repos excluded, 38 advisories re-resolved (#155)\nfecbf70d11 fix(coil): scripts typecheck passes on effect rc.115 (#154)\n2c426238be fix(coil): the bundle gate requires only each layer's native externals\n3acc43842c chore(coil): delete inherited upstream workflows instead of disabling th\n5d3360ccc5 test(coil): the doomed-turn replay waits for the reactor's verdict, not a turn count\ndc619218ed fix(coil): the bundle gate no longer fails a good release on regex quotes or JXA imports\n4b5c186a4f chore(deps): keep the astro 7.2.8 bump lock-only and inside the release-age policy\n3c3db729a4 chore(deps): resolve the lockfile for sharp 0.35.4 in /scripts\n4fae7d5d14 fix(coil): give http_ece a license notice so the desktop build passes\nfdada32d42 chore(deps): bump astro from 7.2.0 to 7.2.8\n0f95375822 chore(deps): bump sharp from 0.34.5 to 0.35.4 in /scripts\na068bb6de3 docs(coil): re-baseline the seam ledger for the 2026-09-12 sync\na81b3bd933 chore(coil): keep two seams additive after the merge\na0de8ee9db test(coil): the pre-ready desktop entry carries the fork's app name\nae3329145d ci(coil): install libsecret on Linux runners and the renamed Spectre component\nb8b4cb6130 fix(coil): crash recovery leaves prepared restart continuations alone\n2eec9cf7da fix(coil): read Claude rate-limit rejections from the runtime warning\ne0438aaec1 fix(coil): queued messages carry structured context like a normal send\nc2207685fe fix(coil): follow the Effect rc.112 and TypeScript 7 toolchain bumps\n89d522523d fix(coil): one failed auto-resume fire no longer aborts the tick\naefebcff3c test(coil): replay the #118 spend-limit payloads through the auto-resume classifier\nc48265fe4b test(coil): auto-resume tests wait on receipts, never on scheduler turns\n86054c7cb1 fix(server): classify Azure DevOps \"not authorized\" failures as authentication\n8391a6a32a fix(coil): the update toast's build age advances while the toast is visible\n8ed54891d1 test(coil): loops \u2014 tests wait on receipts, never on scheduler turns\n1c1af59ee0 feat(coil): loops \u2014 the supervisor announces what it did\n5c6b6f37aa perf(coil): loops \u2014 pruning happens when a run ends, not on every write\nb147969270 fix(coil): loops \u2014 the test harness never moves the clock on its own\naafdeed80f fix(coil): loops \u2014 one store read per tick, and a harness that waits for the answer\n8e998c5fbe fix(coil): loops \u2014 the console tells the truth about what it is showing\n588780000c fix(coil): loops \u2014 bound the state file and close the route and toolkit holes\n97de6179cf fix(coil): loops \u2014 install the adapter hooks in production and correct the decision table\n8f07eb7783 docs(coil): format the loops prototypes and rebuild the report\nabf29cfd75 fix(coil): loops \u2014 one store instance and loop_done wired across phases\n55dcd248e1 docs(coil): ledger totals for the loops seam row\n9397ad2d57 feat(coil): loops \u2014 the reactor, wired in (Phase 2)\n1ef7a6f929 feat(coil): loops \u2014 raise_blocker, loop_status and loop_done (Phase 5)\n3f15ffe717 docs(user): loops\nf16916d41d feat(coil): loops \u2014 Settings \u2192 Loops (Phase 4)\nb63e34b3e9 feat(coil): loops \u2014 the console overlay and the answer route (Phase 3)\ncc268cb685 docs(coil-home): the site no longer promises a daily rebase\n02f3b2cec9 docs(coil): the sync runbook and specs for a merge-based sync\ncfd948fe62 ci(coil): sync upstream by merging, not rebasing\n5caa9afa0c feat(coil): loops \u2014 the sentinel and the HTTP API (Phases 1\u20132)\n252ed85beb feat(coil): loops \u2014 the pure decision table and guards (Phase 2)\n8af8a1fd0f feat(coil): loops \u2014 record the agent's own scheduled wakes and pending questions (Phase 1)\nea836a96e5 feat(coil): loops \u2014 the durable record, config and cron parse (Phase 1 foundation)\nffef26c1b5 docs(coil): resolve the #125 review findings and verify the plan's assumptions\n7ca73fa6d2 refactor(coil): isClaudeThread accepts a thread shell\n368b7b368f refactor(coil): one scope-auth helper for every fork route\n93c1e67b84 docs(coil): re-baseline the seam ledger against the 2026-09-02 merge-base\ndcf49a1c19 fix(mobile): Return no longer submits while dictation freezes the composer\n3bdf109e2d fix(coil): report the DPoP failure reason on the auto-resume route\n88d5e24213 fix(coil): a server auto-settle must not destroy an armed auto-resume\n5ac7b67f4c fix(web): the queue path counts file attachments, not just images\n", "detail": "merge aborted; working tree restored\n" }▶ To fix: comment
@claude resolveon this issue (or run the coil sync resolve (agent) workflow). An agent replays the merge, resolves the conflicts, runs typecheck/lint/test, and opens an ordinary PR for review — nothing is pushed tomain. Runbook:docs/coil/sync-agent-runbook.md.radroid commentedon Oct 27, 2026
Blocked: the merge is resolved, but one upstream test fails on GitHub's newer runner image. Not merged.
Sync PR: #208 (draft). It merges upstream to
dc84b0962e(374 commits). Conflicts are resolved, typecheck and lint pass, and 1186 of 1187 server tests pass.What fails:
apps/server/src/storageCleanup.test.ts, the test "compares the checked-out branch without a full status". It's new upstream in pingdotgg#17911.Why: the
ubuntu-24.04image20261025.353.1ships git 2.56.0. For a.gitfile that points nowhere, git 2.56 saysfatal: gitfile does not point to a valid repository.storageCleanup.ts:507only treatsnot a git repositoryas "repository changed", so the worktree is reportedfailedinstead ofkept.coil-ci.yml: passed, but it landed on image20261021.618with git 2.55.0 (run).mainhas no fix. The fork's code doesn't touch this path.As the runner rollout finishes, this blocks every daily sync and every
coil-ciserver run too.Decision needed (pick one):
gitfile does not point to a valid repositoryas "not a git repository" atstorageCleanup.ts:507, plus a SEAMS.md row. Drop it once upstream fixes it. This is the correct behavior fix. (recommended)coil-ci.ymluntil upstream fixes it.The control branch
t3x/ci-control-upstreamhas been deleted.github-actions commentedon Oct 28, 2026
Automated daily upstream sync could not complete.
Result:
conflictRecovery tag:
coil/last-good-20261028-144027Run: https://github.com/radroid/t3code/actions/runs/40707939890
status JSON
{ "kind": "daily", "result": "conflict", "upstream_range": "5211acfe95 feat(web): boring sidebar can show folder threads on two lines (#26463)\n6bc87b94e1 ci(release): desktop builds stop hitting the npm registry for staged installs (#26458)\neb751fa073 fix(web): chat tables open at the right size instead of collapsed and cut off (#26449)\nc280e640c1 fix(server): searching delegate models by provider name no longer shows only dead models (#26448)\n0160c448f6 feat(server): agents list snoozed threads across all projects in one call (#26442)\n1abf368532 fix(build): builds no longer fail when GitHub's CDN times out on license templates (#26440)\n96a330c957 fix(web): remote delegates show their harness icon, a parent row, and new links in settings (#26434)\nbd84b1781a feat(web): simpler composer with grouped controls, effort words and no collapsed state (#25869)\n48a292364a fix(web): file preview wrap buttons no longer turn off word wrap everywhere (#26432)\nc3858bf1f7 fix(web): snooze options sort soonest first, fit 2 digits, and link from custom snooze (#26427)\nd2429f733c fix(server): load long thread history in bounded pages (#26240)\n2a738273e7 fix(server): threads settle right away when a watched PR merges (#26395)\n80fcb7f58f fix(web): boring sidebar folders put your latest message on top (#26391)\n40d335a7ba fix(web): settling a thread no longer scrolls the sidebar to the bottom (#26392)\n9f33a1c836 feat(web): show T3 Connect tunnel usage and push full accounts to T3 Chat (#26369)\n001d16e969 feat(web): boring sidebar hides projects with no active threads (#26387)\n07f7f97609 ci(release): releases stop depending on npm and nodejs.org when nothing changed (#26362)\nc677d5fc45 fix(web): scroll-to-end button no longer jumps up and down (#26375)\n4c9c7d0bb6 chore(mobile): bump app version to 2.2.0\nbe2ea30d2b fix(build): keep effect out of the public-config bootstrap (#26371)\n975b3dc568 fix(client-runtime): keep subagent questions off parent threads (#26367)\ncb4fe60a4b fix(web): show the thread details tooltip (#24864)\ndac58fa7a6 fix(web): use neutral indicators for inactive source control providers (#22778)\na4e1986585 docs: T3 Chat Pro and Premier raise the T3 Connect tunnel limit (#26366)\nf17c9d202b fix(models): new Claude threads default to Opus 5.5 (#26358)\n10e709c337 fix(queued-message): avoid duplicate queued message entries (#26355)\n9bc4138923 refactor: flatten nested call chains (#26350)\nff424802ed feat(web): mark PR files viewed with shift-click (#26349)\nc3f5e363e5 fix(server): avoid replaying stale Codex usage limits (#26331)\ncfc8be97d7 ci: a stalled Node.js download retries after 2 minutes, not 10 (#26343)\n441a4ebd65 feat(web): open tool call diffs in the diff panel (#26304)\n990e9e06e5 fix(web): preserve handoffs before superseded attempt folds (#26333)\nce66aab13f ci(release): Windows CLI builds retry the Node.js download (#26345)\n2349c81afc refactor(mobile): app link parsing reads top to bottom with pipe (#26330)\ncadbdafc06 test(web): attachment preview tests wait long enough for cold workers and fonts (#26342)\n9ebca5f71c fix(relay): tunnel limit counts abandoned reprovisions and frees failed revokes (#26320)\n4e4d4ba395 feat(web): boring sidebar groups threads into project folders (#21039)\nf6d3700ac3 ci: server test shards survive a throttled task cache (#26332)\na9418a1206 ci(release): releases no longer reinstall Vite+ in every job (#26305)\n50d3a31ffd fix: guests see the screenshots the agent shows in its replies (#26323)\n0deb383709 test(mobile): pairing link test runs the app's real link parsing (#26326)\n8e76f945d2 feat(relay): T3 Chat Pro and Premier accounts get more tunnels (#25931)\nc0f9e36184 fix(mobile): pairing deep links can no longer target a saved environment (#26318)\nfeb2e32de6 fix(web): align sidebar button geometry with shared tokens (#22287)\n003ccd336d fix(client-runtime): pairing links can no longer add routes to a saved environment (#26178)\n9bc0419cc0 fix(relay): concurrent link requests can no longer exceed the managed tunnel limit (#26186)\nfeb49e78d0 fix(web): let theme color pickers use popover glass (#22348)\n9b052a2d5b fix(web): show the platform modifier in the send tooltip (#22436)\n1f8530ec3c feat(web): pending approvals show on their timeline row (#26255)\n8031991591 fix(opencode): subagent sessions follow runtime mode changes (#26302)\n49582b7b2a test(web): attachment font and large-text preview tests wait for the real load (#26314)\nafc233492d fix(web): prevent image thumbnails from warping during repaints (#26308)\ncafdcdaacd fix(clients): give image attachment chips a blue accent (#26306)\n9c6429d74b fix(web): threads without a project start on the primary environment (#26301)\n28da8c84ff fix(mobile): sidebar connection status uses the header's free width (#26266)\nc4606e564d fix(server): Codex shadow homes share thread writer locks with the main home (#26286)\n9a8bc042d0 test(task-cache): remove flaky native runner integration test\n3ef1610079 fix(web): compaction row says \"Compacting for 12s\" instead of \"after being idle\" (#26299)\n822fc156d8 fix(relay): deploys plan again after the Worker lost its default export (#26303)\n9910c0e874 perf: reduce remote reconnect and command delays (#25754)\nff71186669 test(mobile): vp run mobile:behavior grades app behavior on pool devices\n0c80751701 feat: sign in to GitHub through the T3 Code for GitHub app [internal testing only] (#26245)\n49a9e80e0b fix(terminal): keep shared terminal grids in sync (#24352)\nfe55faf379 fix(clients): # suggestions put linked pull requests first for text queries (#26269)\nc2fbf0a524 feat(server,web,mobile): thread links name their environment and never a title (#26239)\n949929dda5 fix(mobile): Android split content keeps a gap at the screen edge (#26276)\nf120c51134 fix(mobile): list bullets keep a gap before their text at every text size (#26268)\n8947f3e353 fix(web): server rows keep their source visible, cmd-click opens your browser (#26267)\n36aea583bb fix(mobile): trust user-installed Android CA certificates (#25730)\n7c6446b81a chore(mobile): e2e review skips behaviour confirmed as intended\n91992bd5d4 fix(web): update dialog shows one row per machine (#26210)\n2de4762e4b fix(mobile): tab bar hides with the push, logo fits the iPad sidebar, Android rail holds still (#26241)\ne0b3cfe666 fix(web): image and file chips underline their name on hover again (#26252)\n67661cfbb5 chore: delete 18k lines of code that nothing reaches (#26238)\n3b2f958603 fix(server): ACP Registry searches reuse a recently fetched index (#26248)\n4b00290ef0 fix(server): delegate cgroups to agent scopes (#23913)\n9638e17835 fix(relay): tunnel cleanup keeps up with new idle tunnels (#26135)\nc3b40b97f7 fix(relay): stop delivery attempts from growing the database forever (#26141)\n93a9e079b1 feat(threads): choose your own snooze options in settings (#26208)\ne2a8ef0174 feat(dev): test turns in the UI for free with a replay provider (#26207)\n575a03f7d0 chore(review): Macroscope check agents move to GPT 6.1 Sol (#26187)\n2525252c96 feat(web): F6 moves between workspace areas, and the sidebar is keyboard navigable (#25877)\n7a059b906e chore(mobile): e2e treats a failed daemon read as a pool error\n82515785bb fix(server): Antigravity file writes cannot escape the workspace through a linked ancestor (#26184)\nb5af4608ca fix(opencode): apply runtime mode changes to existing OpenCode sessions (#26182)\n5cf49d2ffd fix(mobile): unclosed code fences in HTML blocks no longer freeze PR overviews (#26179)\n0affd28db2 feat(web,mobile): Copy thread copies a chip that works on linked machines (#26202)\n4ab7084aa7 feat(web,mobile): the @ picker lists threads on linked machines (#26201)\n2e2d86cd6f chore(mobile): e2e Metro serves no lazy chunks\ndf4132b040 chore(mobile): e2e runs keep Metro's output, the app's console logs, as metro.log\n7f2dcd8e6e fix(mobile): dictation buttons line up with the send button on every composer (#26231)\n7e713926cd feat(web): background work line shows the newest activity, no dots (#25299)\n06d4b57fa6 fix(web): composer strip drops the folder icon next to the machine icon (#26158)\n68495b641b docs(testing): new tests extend existing cases and stay at one layer (#26166)\n531cee6f16 fix(server): Claude background-task wakes start when the queue is held (#17885)\n0894156d9a fix(mobile): provider accounts fit each provider on one row (#25861)\nc38b265adc feat(web): filter the sidebar by several projects at once (#25284)\nc570c2cd5c fix(mobile): keep iPad tab bar within narrow sidebars (#26198)\n735cc3c0ad fix(server): fx's version policy reaches servers with a cached model manifest (#26199)\na846084236 fix(server): Forgejo required-check globs no longer hang the event loop (#26183)\n", "upstream_head": "5211acfe95a0c6d82a60e2524b5e46b47fe67a3e\n", "conflicted_files": "apps/server/src/sourceControl/SourceControlRepositoryService.ts packages/contracts/src/ipc.ts pnpm-lock.yaml \n", "culprit_commits": "9ebca5f71c fix(relay): tunnel limit counts abandoned reprovisions and frees failed revokes (#26320)\n4e4d4ba395 feat(web): boring sidebar groups threads into project folders (#21039)\nff71186669 test(mobile): vp run mobile:behavior grades app behavior on pool devices\n67661cfbb5 chore: delete 18k lines of code that nothing reaches (#26238)\n294981fa72 fix(mobile): Windows paths in messages keep their backslashes (#21454)\n622bc06d8a fix(mobile): shared file names can no longer write outside the Android cache (#26175)\n5b70d81b0d feat(mobile): browse ZIP attachments with the shared archive reader (#19463)\n570d4b03ee feat(mobile): report crashes to Axiom with symbolicated stacks (#19093)\nbc1ea26cc0 chore(infra): bump Alchemy to 2.0.0-beta.84 (#26057)\n5b15cfc1e8 fix(mobile): center Android sheets and fit book-mode sheets in the left pane (#18492)\nf41518f3bc ci(release): desktop builds that cannot open no longer publish (#25928)\n9db3401bdc chore(mobile): e2e runner on agent-device 0.21.32, side-rail aware tab checks\n7c3b3b3605 fix(desktop): packaged server ships zod for @cursor/sdk 1.0.38 (#25841)\n56695ae3ec feat: model labels show the name you'd say out loud (#24205)\nc175e5737e fix(build): TEMPORARY workaround so linux-arm64 builds run on 16/64 KiB page kernels (#25825)\n850d1e7a6c fix(provider-cursor): bump @cursor/sdk to 1.0.38 so long-context tiers send Max Mode (#21074)\n6df241d23a feat(provider): add Vercel fx as a provider (#18277)\n82dc892c5a feat(evals): shared evals package and an eval for T3 tool-use mistakes (#24635)\n6838e31b9c fix(web): screen readers can wrap to the first and last message of a long thread (#23780)\n3433ba15fd fix(mobile): select the correct draft after adding a project (#24269)\n72dde22b6f chore(lint): enforce effectFnOpportunity (#25099)\n80f411f13d chore(lint): enforce catchConditionalRefailToCatchIf (#25081)\n6f3f0d46ea feat(web): \"could not load\" screen tells users how to debug it (#25317)\nfd71ddc223 fix(desktop): hidden preview tabs throttle instead of running at full speed (#25184)\n34ead566d4 feat(web): preview opendocument, epub, rich text, and notebooks (#21469)\n9d17a02782 feat(web): preview archives, sqlite databases, and decoded images (#21467)\n73afb57097 feat(web): virtualize large file previews (#21466)\nd69810a97a feat(web): preview office files, fonts, and mermaid diagrams (#21362)\n888a3d47d3 fix(server): make document attachments readable to agents (#21458)\n0b42aa9476 chore(devices): bump agent-device to 0.21.31 (#25065)\n44df336016 fix(mobile): upgrade react-native-keyboard-controller to 1.22.8 for the Duo fold composer (#25141)\n5f1f604733 feat(mobile): on-demand chrome e2e runner across simulators\n3816296021 feat(web): UI design overhaul, with the new look behind a Beta toggle (#24865)\nba006f2dfa perf(mobile): bound streaming markdown cache and pending work (#24263)\n7bafc40c17 feat(mobile): play audio inline and open shared files in the viewer (#21353)\n40ec16a9b6 fix(mobile): the Duo sidebar changes with the rotation, not after it (#24951)\n", "failing_step": "\n", "patch_manifest": "68c43cb522 fix(coil): fork comments fit upstream's four-line comment cap\n6667ba026b fix(coil): point fork clone code at upstream's forge definitions\n7085f2ca07 fix(coil): fork copy passes upstream's no-em-dash lint rule\n56d34883f2 fix(deps): pin eight security fixes upstream's ranges already allow (#194)\n5b57b1e473 ci(coil): desktop tests no longer race Electron's download (#195)\n5026317e6e fix(coil): a clone that fails over SSH and HTTPS says the shared cause once\n3ac51f7d99 chore(coil): the app is called T3 Code again\nb00ea1f567 ci(coil): each upstream sync lands as a PR that says what changed for users\ne9b1842e8d ci(coil): web tests get Chromium and upstream's release repository\n8aab919b0b docs(coil): repoint the seam ledger at 67c0fc0cda\nc94c9b29a6 fix(coil): upstream's new Linux URL handler test uses the fork's app name\n9338847968 fix(coil): hosted pages name and link the fork's desktop app\nc49a622173 fix(coil): install instructions follow upstream's Alpha to Beta rename\nf7a33471f2 fix(coil): fork code passes upstream's prefer-effect-fn lint rule\nf0f7bae650 fix(coil): fork code passes upstream's new comment and memo lint rules\ne1f1a870dd ci(coil): the daily sync re-resolves a lockfile-only conflict\nc16d3e35c3 chore(coil): prune security pins upstream already covers\n98cd4a0840 chore(coil): mount the update toast outside __root.tsx\n1ae2f5c7d5 chore(coil): use upstream's mobile composer Return handling\ne1db9a3d06 docs(coil): a start page for building on the fork\n1e3e9f6064 chore(coil): retire parked and absorbed fork features\na09120ded2 docs(coil): repoint the seam ledger at 7ac952c630\n941f9fdd9e docs(coil): repoint the seam ledger at 6002c5c68c\n4faec437bd docs(coil): repoint the seam ledger at 6524a8d437\n7fb9b0166e docs(coil): re-baseline the seam ledger at 58d253231d\n7a65e076d7 fix(coil): point fork source-control code at upstream's new packages\n48c28b09d8 ci(coil): run web tests alone in the single-runner sync verifies\n31846e0650 ci(coil): split the test gate like upstream so web tests get their own runner\ne99c8a3a07 docs(coil): repoint the seam ledger at the final merge-base\n91ec07ee86 ci(coil): give the test gate room for upstream's larger server suite\nf1cd9cf359 docs(coil): re-baseline the seam ledger at cdd331b6c3\n09609366fe docs(coil-home): drop parked features from the feature list\n8652ef2a4b fix(coil): bring fork code up to the merged upstream\n23779805a8 ci(coil): install Chromium for server tests; retire the release-workflow test\na1a141261c chore(coil): park fork features built on orchestration v1\nd1e974ffa3 docs(coil): repoint the seam ledger at the final merge-base\n77505136d4 test(coil): the toggle's timing assertions read its inline transition\nafbb22d520 docs(coil): re-baseline the seam ledger for the 2026-09-28 sync\nd60080285c fix(coil): the outbox drain waits for upstream's queue to send first\n80ba53d112 docs(coil-home): carry upstream's refreshed OpenAI and OpenCode logos\na32c48020d fix(coil): fork UI passes upstream's design-system lint gate\n2edd6909e6 docs(coil): repoint the seam ledger at the final merge-base\n85cc654807 docs(coil): re-baseline the seam ledger for the 2026-09-22 sync\n2041766bee fix(coil): the offline queue releases the attachment uploads it drops\n8df97aad19 fix(deps): patch Nanoid zero-size advisory\n5379a8e499 chore(coil): Dependabot runs go green: vendored repos excluded, 38 advisories re-resolved (#155)\nfecbf70d11 fix(coil): scripts typecheck passes on effect rc.115 (#154)\n2c426238be fix(coil): the bundle gate requires only each layer's native externals\n3acc43842c chore(coil): delete inherited upstream workflows instead of disabling th\n5d3360ccc5 test(coil): the doomed-turn replay waits for the reactor's verdict, not a turn count\ndc619218ed fix(coil): the bundle gate no longer fails a good release on regex quotes or JXA imports\n4b5c186a4f chore(deps): keep the astro 7.2.8 bump lock-only and inside the release-age policy\n3c3db729a4 chore(deps): resolve the lockfile for sharp 0.35.4 in /scripts\n4fae7d5d14 fix(coil): give http_ece a license notice so the desktop build passes\nfdada32d42 chore(deps): bump astro from 7.2.0 to 7.2.8\n0f95375822 chore(deps): bump sharp from 0.34.5 to 0.35.4 in /scripts\na068bb6de3 docs(coil): re-baseline the seam ledger for the 2026-09-12 sync\na81b3bd933 chore(coil): keep two seams additive after the merge\na0de8ee9db test(coil): the pre-ready desktop entry carries the fork's app name\nae3329145d ci(coil): install libsecret on Linux runners and the renamed Spectre component\nb8b4cb6130 fix(coil): crash recovery leaves prepared restart continuations alone\n2eec9cf7da fix(coil): read Claude rate-limit rejections from the runtime warning\ne0438aaec1 fix(coil): queued messages carry structured context like a normal send\nc2207685fe fix(coil): follow the Effect rc.112 and TypeScript 7 toolchain bumps\n89d522523d fix(coil): one failed auto-resume fire no longer aborts the tick\naefebcff3c test(coil): replay the #118 spend-limit payloads through the auto-resume classifier\nc48265fe4b test(coil): auto-resume tests wait on receipts, never on scheduler turns\n86054c7cb1 fix(server): classify Azure DevOps \"not authorized\" failures as authentication\n8391a6a32a fix(coil): the update toast's build age advances while the toast is visible\n8ed54891d1 test(coil): loops \u2014 tests wait on receipts, never on scheduler turns\n1c1af59ee0 feat(coil): loops \u2014 the supervisor announces what it did\n5c6b6f37aa perf(coil): loops \u2014 pruning happens when a run ends, not on every write\nb147969270 fix(coil): loops \u2014 the test harness never moves the clock on its own\naafdeed80f fix(coil): loops \u2014 one store read per tick, and a harness that waits for the answer\n8e998c5fbe fix(coil): loops \u2014 the console tells the truth about what it is showing\n588780000c fix(coil): loops \u2014 bound the state file and close the route and toolkit holes\n97de6179cf fix(coil): loops \u2014 install the adapter hooks in production and correct the decision table\n8f07eb7783 docs(coil): format the loops prototypes and rebuild the report\nabf29cfd75 fix(coil): loops \u2014 one store instance and loop_done wired across phases\n55dcd248e1 docs(coil): ledger totals for the loops seam row\n9397ad2d57 feat(coil): loops \u2014 the reactor, wired in (Phase 2)\n1ef7a6f929 feat(coil): loops \u2014 raise_blocker, loop_status and loop_done (Phase 5)\n3f15ffe717 docs(user): loops\nf16916d41d feat(coil): loops \u2014 Settings \u2192 Loops (Phase 4)\nb63e34b3e9 feat(coil): loops \u2014 the console overlay and the answer route (Phase 3)\ncc268cb685 docs(coil-home): the site no longer promises a daily rebase\n02f3b2cec9 docs(coil): the sync runbook and specs for a merge-based sync\ncfd948fe62 ci(coil): sync upstream by merging, not rebasing\n5caa9afa0c feat(coil): loops \u2014 the sentinel and the HTTP API (Phases 1\u20132)\n252ed85beb feat(coil): loops \u2014 the pure decision table and guards (Phase 2)\n8af8a1fd0f feat(coil): loops \u2014 record the agent's own scheduled wakes and pending questions (Phase 1)\nea836a96e5 feat(coil): loops \u2014 the durable record, config and cron parse (Phase 1 foundation)\nffef26c1b5 docs(coil): resolve the #125 review findings and verify the plan's assumptions\n7ca73fa6d2 refactor(coil): isClaudeThread accepts a thread shell\n368b7b368f refactor(coil): one scope-auth helper for every fork route\n93c1e67b84 docs(coil): re-baseline the seam ledger against the 2026-09-02 merge-base\ndcf49a1c19 fix(mobile): Return no longer submits while dictation freezes the composer\n3bdf109e2d fix(coil): report the DPoP failure reason on the auto-resume route\n88d5e24213 fix(coil): a server auto-settle must not destroy an armed auto-resume\n5ac7b67f4c fix(web): the queue path counts file attachments, not just images\n", "detail": "merge aborted; working tree restored\n" }▶ To fix: comment
@claude resolveon this issue (or run the coil sync resolve (agent) workflow). An agent replays the merge, resolves the conflicts, runs typecheck/lint/test, and opens an ordinary PR for review — nothing is pushed tomain. Runbook:docs/coil/sync-agent-runbook.md.radroid commentedon Oct 28, 2026
Landed as a merge commit in #208 (#208). It absorbs upstream through
d07c0a7c7b(533 commits). The git 2.56storageCleanuptest is skipped by name incoil-ci.ymlandsync-upstream.shuntil upstream handles the new error message.