Skip to content

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

Closed

Description

@github-actions

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.

Activity

  1. github-actions commented on Oct 27, 2026

    @github-actions
    Author

    Automated daily upstream sync could not complete.

    Result: conflict
    Recovery tag: coil/last-good-20261027-134912
    Run: 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 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. radroid commented on Oct 27, 2026

    @radroid
    Owner

    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.04 image 20261025.353.1 ships git 2.56.0. For a .git file that points nowhere, git 2.56 says fatal: gitfile does not point to a valid repository. storageCleanup.ts:507 only treats not a git repository as "repository changed", so the worktree is reported failed instead of kept.

    • Control run on pristine upstream plus coil-ci.yml: passed, but it landed on image 20261021.618 with git 2.55.0 (run).
    • The sync PR failed twice, both times on git 2.56.0 (run).
    • Upstream's own CI is green only because its runners haven't moved to git 2.56 yet. Upstream main has no fix. The fork's code doesn't touch this path.

    As the runner rollout finishes, this blocks every daily sync and every coil-ci server run too.

    Decision needed (pick one):

    1. Patch upstream's file (small seam): also treat gitfile does not point to a valid repository as "not a git repository" at storageCleanup.ts:507, plus a SEAMS.md row. Drop it once upstream fixes it. This is the correct behavior fix. (recommended)
    2. CI-only workaround: skip that test in coil-ci.yml until upstream fixes it.
    3. Wait for upstream to fix it, then re-run the daily sync.

    The control branch t3x/ci-control-upstream has been deleted.

  3. github-actions commented on Oct 28, 2026

    @github-actions
    Author

    Automated daily upstream sync could not complete.

    Result: conflict
    Recovery tag: coil/last-good-20261028-144027
    Run: 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 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. radroid commented on Oct 28, 2026

    @radroid
    Owner

    Landed as a merge commit in #208 (#208). It absorbs upstream through d07c0a7c7b (533 commits). The git 2.56 storageCleanup test is skipped by name in coil-ci.yml and sync-upstream.sh until upstream handles the new error message.

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