Fleet unwedge: Opus 5 on the Claude lane, opencode un-stalled, agent commits no longer dropped #362
Closed
toasterson
wants to merge 0 commits from
claude/claude-lane-opus-5 into main
pull from: claude/claude-lane-opus-5
merge into: toasterson:main
toasterson:main
toasterson:claude/wi-019ff2f6-create-work-item-ignores-current-phase-d
toasterson:claude/wi-019fd84d-two-layer-operator-scope-property-mint-p
toasterson:claude/wi-019fbe99-lane-faults-are-billed-to-work-items-sic
toasterson:claude/wi-019fd84d-pwa-renders-turnoutcome-by-recovery-axis
toasterson:claude/wi-019fe0e9-finish-the-pwa-phase-axis-cutover-on-cur
toasterson:claude/wi-019fd84c-buf-breaking-change-ci-wire-json-across
toasterson:claude/wi-019ff2f4-reproduce-a-hung-acp-session-on-demand-p
toasterson:claude/wi-019fd84b-anima-mq-v1-proto-envelope-package-broke
toasterson:claude/wi-019fc44d-pre-push-test-gate-iterations-are-witnes
toasterson:claude/wi-019f9079-wi-2-acp-over-vsock-transport-in-anima-r
toasterson:claude/wi-019ff0c1-test-network-subnet-collision-something
toasterson:claude/wi-01a00b8c-ci-verdict-pipeline-is-fully-dead-orches
toasterson:migration-verification-20260818
toasterson:claude/wi-019fa954-mcp-proxy-registry-sessions-get-one-endp
toasterson:claude/wi-019fd3c0-pwa-image-tag-lives-in-a-raw-pwa-yaml-th
toasterson:claude/wi-019fa59c-double-gate-a-second-review-phase-where
toasterson:claude/wi-019fc2cc-ci-infrastructure-failures-qemu-ssh-rese
toasterson:claude/wi-019fe0f2-trace-scheduler-decisions-runner-attachm
toasterson:claude/wi-019fce0d-reviewer-verdicts-are-not-persisted-to-w
toasterson:claude/wi-019fe0f2-expose-bounded-fleet-and-work-flow-metri
toasterson:claude/wi-019fe0f7-cut-gate-reads-to-phase-state-verify-adr
toasterson:claude/wi-019fe0f2-restore-dashboardservice-against-the-mig
toasterson:claude/wi-019fa59b-publish-transient-chunk-deltas-to-a-per
toasterson:claude/wi-019fe0ee-checkpoint-typed-progress-witnesses-and
toasterson:claude/wi-01a00c91-builds-escape-the-per-slot-cargo-target
toasterson:claude/wi-019fd894-plan-canvas-wi-dependency-graph-with-fro
toasterson:claude/wi-01a00ec5-a-timed-out-turn-discards-the-worktree-a
toasterson:claude/wi-01a004d3-build-the-runner-image-in-ci-from-docker
toasterson:claude/wi-01a00afa-runner-write-safe-directory-entries-to-g
toasterson:claude/wi-01a009dc-circuit-breaker-state-fails-to-load-on-e
toasterson:claude/wi-019ff175-adr-0038-acp-has-no-structured-agent-to
toasterson:claude/wi-01a005fc-the-acp-brief-carries-the-description-bu
toasterson:claude/wi-01a00462-a-runner-blocked-session-is-unreapable-t
toasterson:claude/wi-019ff173-pwa-chat-anchor-the-user-s-message-to-th
toasterson:claude/wi-01a00463-anima-runner-leaks-its-executor-child-on
toasterson:claude/wi-019fe61e-agent-sessions-have-no-git-push-credenti
toasterson:claude/wi-019ff2f4-stamp-liveness-witnesses-from-the-acp-ch
toasterson:claude/wi-019fd84c-witness-and-park-logic-consume-the-turno
toasterson:claude/wi-019fd84c-runner-stops-relabeling-human-cancels-ca
toasterson:claude/wi-019fd84c-turnoutcome-closed-14-variant-proto-enum
toasterson:claude/wi-019fd84c-afk-dispatch-requires-a-requested-outcom
toasterson:claude/wi-019fd84d-break-glass-reset-reason-every-operator
toasterson:claude/wi-019fd84d-divergence-report-db-vs-registry-vs-brok
toasterson:claude/wi-019ff174-pwa-chat-make-a-tool-call-say-what-it-is
toasterson:claude/wi-019fe0f0-reap-heartbeat-live-but-activity-dead-tu
toasterson:claude/wi-019fe0ee-persist-scheduling-clocks-and-leases-so
toasterson:claude/wi-019ff093-mark-implementation-complete-advances-wo
toasterson:claude/wi-019ff174-pwa-chat-summarise-a-finished-turn-s-wor
toasterson:claude/wi-019fd894-satisfied-edges-feed-context-dependency
toasterson:claude/wi-019fe1d3-no-runner-can-reach-dind-so-the-janitor
toasterson:claude/wi-01a009dc-quota-probe-kills-the-claude-code-lane-a
toasterson:claude/wi-019fe251-the-pre-push-gate-runs-tests-but-not-cli
toasterson:claude/wi-019fdd2a-lane-quota-detection-uses-a-total-turn-t
toasterson:claude/wi-019fd894-orphaned-edges-and-blocked-visibility-pa
toasterson:claude/wi-019fd894-dependency-edge-api-surface-grpc-mcp-too
toasterson:claude/wi-019fd893-edge-witness-kind-dependent-satisfaction
toasterson:claude/wi-01a0057c-sessions-finish-with-no-captured-diff-an
toasterson:claude/wi-019fa59e-retire-failed-dispatch-count-per-item-ph
toasterson:claude/wi-019fd895-anima-server-wedges-grpc-mcp-accept-conn
toasterson:claude/wi-019fce0d-in-flight-ceiling-stranded-working-queue
toasterson:claude/wi-019fd84c-sidechannel-detection-runner-flags-branc
toasterson:claude/wi-019fff95-the-runner-s-anima-owner-worktree-tag-is
toasterson:claude/wi-019fe0f0-add-immutable-graph-version-records-and
toasterson:claude/wi-019fbe42-inventory-every-psql-kubectl-recipe-oper
toasterson:claude/wi-019fe0f7-move-exit-bar-state-onto-pinned-phase-in
toasterson:claude/wi-019ff075-an-orphaned-solstice-dispatch-strands-a
toasterson:claude/wi-019ff173-pwa-chat-pin-the-pending-permission-esca
toasterson:agent/19ce972d63dc
toasterson:agent/972084064aa3
toasterson:claude/wi-019fe0e9-operator-watch-set-board-backed-by-bound
toasterson:claude/wi-019fe0e9-clean-addressed-session-exchange-after-l
toasterson:claude/wi-019fa59e-detect-session-death-by-routability-mand
toasterson:claude/wi-019fe706-solstice-rabbitmq-is-degraded-job-reques
toasterson:claude/wi-019fe18f-the-pre-push-test-gate-bills-toolchain-f
toasterson:claude/wi-019fe0e9-audited-reconcile-session-releases-zombi
toasterson:claude/wi-019fe0e9-use-one-durable-https-credential-path-fo
toasterson:claude/wi-019fe6f2-stranded-work-items-drowns-real-strandin
toasterson:claude/wi-019fe6fd-pwa-data-error-51-items-without-workflow
toasterson:claude/wi-019fec06-items-with-a-changes-requested-review-ve
toasterson:claude/wi-019fe0f0-cache-provider-quota-back-off-failures-a
toasterson:claude/wi-019fe0e9-pin-the-rust-toolchain-and-make-ci-repor
toasterson:claude/wi-019fce0d-unpark-work-item-mcp-tool-one-audited-un
toasterson:claude/wi-019fe0ee-assemble-each-agent-turn-from-durable-ho
toasterson:claude/wi-019fe0ee-codify-the-anima-owned-horizon-boundary
toasterson:claude/wi-019fe0e7-re-implement-owner-tagged-resource-reape
toasterson:claude/wi-019fd893-dependency-edges-table-dag-write-path-de
toasterson:claude/wi-019fce0d-operator-scheduling-controls-over-mcp-ho
toasterson:claude/wi-019fd84d-interleaved-refusal-witnesses-indefinite
toasterson:claude/wi-019fdd2a-a-fully-cleared-exit-bar-does-not-advanc
toasterson:claude/wi-019fd898-corrective-resume-dispatch-to-an-acp-gat
toasterson:claude/wi-019fe5fd-approve-and-merge-refuses-heads-whose-gr
toasterson:claude/wi-019fe624-testing-phase-items-with-a-moved-head-ha
toasterson:claude/wi-019fdd4c-the-24h-in-flight-ceiling-has-no-operato
toasterson:claude/wi-019fa5a0-move-the-dashboard-onto-the-activity-fan
toasterson:claude/wi-019fe0f2-add-one-shared-otlp-observability-initia
toasterson:claude/wi-019fce4e-approve-and-merge-no-already-merged-shor
toasterson:claude/wi-019fce0d-lane-occupancy-over-mcp-list-sessions-by
toasterson:claude/wi-019fbdc4-pwa-plan-detail-workflow-graph-define-im
toasterson:claude/wi-019fd86c-worktree-prep-rebase-parks-items-that-va
toasterson:claude/wi-019fa96b-session-project-binding-covers-work-item
toasterson:claude/wi-019fdd87-a-failed-turn-does-not-roll-back-mark-im
toasterson:claude/wi-019fe0f0-add-audited-cancelsession-that-terminate
toasterson:claude/wi-019fcde5-work-items-cannot-be-looked-up-by-their
toasterson:claude/wi-019fa5a0-persist-the-assembled-prompt-to-s3-along
toasterson:claude/wi-019fa59f-reviews-land-in-the-thread-and-reviewers
toasterson:claude/wi-019fbdc3-pwa-workflowgraph-node-component-workflo
toasterson:claude/wi-019fa5a0-single-active-consumer-akh-lanes-and-rel
toasterson:claude/wi-019faa5d-nothing-prunes-session-tokens-104-083-ro
toasterson:claude/wi-019fa59c-graph-versioning-pin-in-flight-work-item
toasterson:claude/wi-019fa59c-anima-work-exchange-lane-queues-and-the
toasterson:claude/wi-019fa59d-dispatch-branches-on-phasekind-instead-o
toasterson:claude/wi-019fa59d-anima-session-addressed-exchange-with-pe
toasterson:claude/wi-019fa5a0-attempt-counter-in-postgres-surviving-ev
toasterson:claude/node-workflow-overview-wi-4c95cf
toasterson:claude/wi-019fc826-the-account-quota-probe-polls-the-provid
toasterson:claude/grpc-api-surface-evaluation-cd6026
toasterson:claude/wi-019fc9a5-exit-bar-gates-survive-across-pr-generat
toasterson:claude/wi-019fa59f-boards-read-the-phase-graph-instead-of-a
toasterson:claude/wi-019fcce5-implementation-sessions-lack-workitem-wr
toasterson:claude/wi-019f9fc2-anima-has-no-ssh-credential-story-runner
toasterson:claude/wi-019f9946-a-work-item-filed-without-a-plan-has-no
toasterson:claude/wi-019fa3a4-reviewers-cannot-build-the-code-they-rev
toasterson:claude/wi-019fc638-anima-emits-no-traces-metrics-or-structu
toasterson:agent/4a6b46e02b58
toasterson:claude/wi-019fc63c-dispatch-has-no-dependency-graph-work-it
toasterson:agent/e7469dfa074b
toasterson:claude/wi-019f9fb1-quota-aware-scheduling-budget-provider-c
toasterson:agent/2cfe41dbf7f5
toasterson:claude/wi-019faa43-the-janitor-s-two-sweeps-both-exclude-th
toasterson:claude/wi-019fcc85-move-cargo-target-dir-from-per-runner-to
toasterson:claude/wi-019f8615-agents-page-show-each-agent-s-live-slot
toasterson:agent/1c04647808fc
toasterson:claude/wi-019dbb8e-auth-for-akh-medu-seshat-envoy-gateway-s
toasterson:claude/wi-019dc57c-p1-5-seshat-ingest-hook-transcripts-libr
toasterson:claude/wi-019ddfd9-mcp-tool-time-bounded-out-of-hours-sessi
toasterson:claude/wi-019e8873-native-solstice-ci-dispatch-send-explici
toasterson:claude/beautiful-leavitt-d2a8d7
toasterson:agent/8e80f1909fac
toasterson:agent/baf43b288ad9
toasterson:claude/wi-019fc9a5-a-failed-git-push-silently-discards-the
toasterson:agent/0d500af2cd88
toasterson:agent/c4a84cf02ec2
toasterson:claude/wi-019f9ea6-dispatched-sessions-hit-scope-walls-mid
toasterson:claude/wi-019fc826-the-account-quota-probe-hammers-the-prov
toasterson:claude/wi-019f98b5-opencode-lane-is-dead-weight-every-turn
toasterson:claude/wi-019fb430-list-working-document-kinds-omits-ci-ret
toasterson:agent/cb05e821a3bc
toasterson:agent/a9ae8f731a77
toasterson:agent/89755cf8eb3e
toasterson:claude/wi-019fa59d-error-queue-drainer-park-the-work-item-s
toasterson:claude/wi-019fc2cc-flaky-test-no-reviewer-dispatched-twice
toasterson:agent/0c195963cd85
toasterson:agent/21dbfeaf95c9
toasterson:agent/30dad6db7aa0
toasterson:agent/917a59a781d8
toasterson:agent/b557136f8edf
toasterson:claude/wi-019fc3bd-park-vs-live-session-race-parks-land-whi
toasterson:agent/2c4165ec8872
toasterson:claude/wi-019fa59b-phasekind-enum-and-the-fk-constrained-ph
toasterson:claude/wi-019fa9f3-dispatch-ordering-does-not-prefer-work-i
toasterson:claude/wi-019fa8f3-the-scheduler-s-unclaimed-wi-warning-re
toasterson:claude/wi-019fa59a-dispatch-payload-type-and-the-idempotenc
toasterson:claude/wi-019fa979-the-reviewer-slot-reservation-is-applied
toasterson:claude/wi-019fa59b-error-envelope-and-per-lane-error-queues
toasterson:claude/wi-019fa7d9-an-executor-must-be-able-to-rebase-its-o
toasterson:claude/wi-019fa59b-seed-the-default-phase-graph-with-ci-to
toasterson:claude/wi-019fbe41-zombie-session-repair-is-a-raw-sql-sweep
toasterson:claude/wi-019fbe97-grpc-services-and-mcp-handlers-each-reim
toasterson:claude/wi-019fbe41-a-stale-recorded-pr-head-breaks-ci-dispa
toasterson:claude/wi-019fbe41-operator-forensics-needs-psql-no-queryab
toasterson:claude/wi-019fa59e-retire-anima-sched-max-active-for-runner
toasterson:claude/wi-019fb424-derive-every-git-remote-config-from-the
toasterson:claude/wi-019fa3d2-the-ai-gate-ships-no-review-instructions
toasterson:claude/wi-019f9e06-implement-emit-contextwindowstats-from-p
toasterson:claude/wi-019fb464-a-review-analysis-wi-that-delivers-its-f
toasterson:claude/wi-019fa3a4-approve-and-merge-fails-permanently-on-f
toasterson:claude/wi-019f9e06-implement-a-b-stats-comparison-harness-4
toasterson:claude/wi-019fb477-per-executor-lane-state-leaks-on-session
toasterson:claude/wi-019fa59a-anima-mq-crate-topology-declaration-for
toasterson:claude/wi-019fba1f-witness-output-first-classification-coun
toasterson:claude/wi-019f9e06-implement-strategy-specific-stats-for-co
toasterson:claude/wi-019f841f-quick-reply-dedup-options-render-as-bull
toasterson:archive/wi-410-20260807
toasterson:claude/wi-019fa5a0-owner-tagged-reaper-for-containers-workt
toasterson:archive/wi-394-20260807
toasterson:claude/wi-019fa59e-per-item-phase-revisit-cap-as-workflow-c
toasterson:claude/wi-019fa59f-surface-the-operator-watch-set-on-the-bo
toasterson:claude/wi-019fb477-deliverable-reconcile-fails-every-tick-p
toasterson:claude/wi-019fa59e-migrate-exit-bar-columns-to-phases-and-v
toasterson:claude/wi-019f8b49-wi-5b-drop-work-items-status-after-the-p
toasterson:claude/wi-019f841f-live-roster-presence-real-availability-o
toasterson:claude/wi-019faf95-implementer-runs-the-touched-crates-test
toasterson:claude/wi-019faf96-migration-086-cannot-run-under-sqlx-inde
toasterson:claude/wi-019faf95-corrective-dispatch-resumes-the-prior-se
toasterson:claude/wi-019faf95-refusal-is-not-an-empty-turn-distinct-wi
toasterson:claude/wi-019fa59f-24-hour-in-flight-ceiling-that-parks-wit
toasterson:claude/wi-019fb477-rejected-work-item-is-neither-dispatchab
toasterson:claude/wi-019faf95-session-accounting-capture-per-session-t
toasterson:claude/wi-019fb40f-a-terminal-worktree-prep-rejection-leaks
toasterson:claude/wi-019f90ad-scheduler-over-assigns-in-bursts-8-assig
toasterson:claude/wi-019f860b-pwa-chat-config-pickers-replay-a-dead-se
toasterson:claude/wi-019f85b9-wi-3-pwa-collapsible-subthread-ui
toasterson:claude/wi-019f841f-thread-scoped-activity-streaming-retire
toasterson:claude/wi-019f841e-forward-agent-message-content-blocks-end
toasterson:claude/wi-019f85b9-wi-2-runner-delegation-reporting-subthre
toasterson:claude/wi-019f52d2-review-loop-starvation-reviewer-re-dispa
toasterson:claude/wi-019eab9e-feature-mcp-read-tools-for-session-artif
toasterson:claude/wi-019e846d-catch-unwired-dead-code-pub-in-pub-mod-h
toasterson:claude/wi-019faa49-the-per-executor-cap-does-not-hold-acros
toasterson:claude/wi-019f615e-sia-populate-external-ref-external-state
toasterson:claude/wi-019dd0b7-wipsnapshot-retention-per-wi-cap-age-pru
toasterson:claude/wi-019dc0e8-git-remote-url-normalization-ssh-vs-git
toasterson:claude/wi-019fa9c4-ci-green-is-a-sticky-boolean-with-no-com
toasterson:claude/wi-019f85b9-wi-1-subthread-domain-model-parent-threa
toasterson:claude/wi-019f9087-pwa-workitemdetail-request-changes-appro
toasterson:claude/wi-019f9079-wi-1-spike-gates-the-rest-hypervisor-pic
toasterson:claude/wi-019f862a-project-overview-in-flight-section-split
toasterson:claude/wi-019f903c-ci-builds-pushes-multi-arch-deploy-image
toasterson:claude/wi-019f841e-resource-mentions-in-the-composer-files
toasterson:claude/wi-019f57aa-message-part-streaming-forward-acp-delta
toasterson:claude/wi-019e93df-mcp-ambient-get-work-item-detail-full-wi
toasterson:claude/wi-019e846d-in-server-merge-engine-hardening-anima-g
toasterson:claude/wi-019dbb9c-agent-annotation-pathway-broken-pat-lack
toasterson:claude/wi-019faa38-a-ci-green-work-item-awaiting-review-is
toasterson:claude/wi-019fa5a0-register-session-gate-reject-a-redeliver
toasterson:claude/wi-019fa902-the-ci-red-corrective-loop-hands-the-imp
toasterson:claude/wi-019fa945-per-executor-reservation-leaks-a-capped
toasterson:claude/wi-019f90f9-pwa-delivery-board-is-blind-to-the-phase
toasterson:claude/wi-019fa7c9-anima-runner-exec-slots-name-is-also-par
toasterson:claude/wi-019fa59c-distinguish-an-empty-turn-from-a-failed
toasterson:claude/wi-019f9aa3-ci-lints-against-an-unpinned-toolchain-d
toasterson:claude/wi-019f9fb8-dispatches-that-fail-before-the-session
toasterson:claude/wi-019fa59b-progress-witness-pr-aware-per-attempt-re
toasterson:claude/wi-019f9a17-every-native-ci-dispatch-fires-twice-rec
toasterson:claude/wi-019f9698-ci-red-corrective-loop-must-distinguish
toasterson:claude/wi-019f9ec2-a-dropped-amqp-connection-silently-ends
toasterson:claude/wi-019f84ec-enforce-session-project-binding-on-write
toasterson:claude/wi-019f903c-fleet-observability-metrics-alerts-for-r
toasterson:claude/wi-019fa7c6-a-turn-that-only-repairs-the-base-repo-s
toasterson:claude/wi-019fa7c6-a-rejected-assignment-re-dispatches-ever
toasterson:claude/wi-019f9b4b-reject-never-reaches-the-implementer-lin
toasterson:claude/wi-019f9b6e-reviewer-only-is-not-expressible-keeping
toasterson:claude/wi-019f9ac1-quota-aware-lanes-meter-usage-over-acp-s
toasterson:claude/wi-019f99ca-native-ci-falls-back-to-a-job-script-tha
toasterson:claude/wi-019f8610-remove-the-global-anima-sched-max-active
toasterson:claude/wi-019f990a-analysis-work-parks-itself-17-of-20-park
toasterson:claude/wi-019f9aa3-a-model-provider-429-is-indistinguishabl
toasterson:claude/wi-019f99a4-dispatch-queue-ignores-priority-strict-f
toasterson:claude/wi-019f83ce-wi-a-backend-escalation-core-schema-type
toasterson:claude/wi-019f98d9-you-cannot-follow-a-wi-along-its-route-1
toasterson:claude/wi-019f98b5-a-failed-turn-is-indistinguishable-from
toasterson:claude/account-quota-meter
toasterson:claude/wi-019fa2fc-the-akh-gateway-advertises-6-slots-for-a
toasterson:claude/wi-019fa243-every-re-dispatch-throws-away-the-previo
toasterson:claude/wi-019fa2de-a-review-session-is-dispatched-alongside
toasterson:claude/wi-019f9e35-worktree-base-branch-is-one-global-env-v
toasterson:claude/thread-window-redesign-2360d9
toasterson:claude/wip-lift-rehook
toasterson:claude/wi-019f9b1d-review-slot-reservation-leaks-when-a-rev
toasterson:claude/wi-019f99ac-create-project-leaves-new-projects-undis
toasterson:claude/wi-019f9980-pin-ci-verdicts-to-the-commit-under-test
toasterson:claude/wi-019f8438-wi-d-frontend-permission-card-render-hum
toasterson:claude/wi-019f8438-wi-c-runner-interceptor-checkpoint-detec
toasterson:claude/wi-019f8438-wi-b-executor-token-scope-stripping-q7c
toasterson:claude/wi-019f8602-reopen-work-items-when-their-orphaned-se
toasterson:claude/wi-019f90cf-review-analysis-wis-never-close-no-phase
toasterson:claude/wi-019f90fe-mcp-update-work-item-advertises-status-v
toasterson:claude/wi-019f17e4-user-settings-foundation-store-registry
toasterson:claude/wi-019f1779-per-user-configurable-inbox-auto-clear-w
No reviewers
Labels
Clear labels
Compat/Breaking
Breaking change that won't be backward compatible
Kind/Bug
Something is not working
Kind/Documentation
Documentation changes
Kind/Enhancement
Improve existing functionality
Kind/Feature
New functionality
Kind/Security
This is security issue
Kind/Testing
Issue or pull request related to testing
Priority
Critical
The priority is critical
Priority
High
The priority is high
Priority
Low
The priority is low
Priority
Medium
The priority is medium
Reviewed
Confirmed
Issue has been confirmed
Reviewed
Duplicate
This issue or pull request already exists
Reviewed
Invalid
Invalid issue
Reviewed
Won't Fix
This issue won't be fixed
Status
Abandoned
Somebody has started to work on this but abandoned work
Status
Blocked
Something is blocking this issue or pull request
Status
Need More Info
Feedback is required to reproduce issue or to continue work
No labels
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Abandoned
Status
Blocked
Status
Need More Info
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".
No due date set.
Dependencies
No dependencies set
Reference
toasterson/Anima!362
Loading…
Reference in a new issue
No description provided.
Delete branch "claude/claude-lane-opus-5"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Six fixes from the 2026-07-25 fleet review. Nothing had merged to
mainsince 2026-07-23 21:22 and all three lanes were failing silently.1. The model override never reached the claude-code CLI
The spawn path exported the Assign's model as
OPENCODE_MODELfor every executor. opencode reads that var; the claude-code CLI readsANTHROPIC_MODEL— so a claude-code Assign carrying a model (the review-model registry's pick for reviewer sessions) was dropped and the CLI ran its own default.RunInputnow carries the canonical executor name and the spawn path picks the env var from it.runner-1also gets a lane defaultANTHROPIC_MODEL=claude-opus-5.2. EMFILE killed sessions silently — and stalled the whole opencode lane
claude-code-acp watches every file it touches, one worktree per slot, against Docker's 1024-fd default:
EMFILE: too many open files, watch …/.claudeout ofsession/new. Runner containers now getnofile 65536. (Hostfs.inotify.max_user_instances128 → 1024 on archibald, in/etc/sysctl.d/99-anima-runner.conf— not part of this diff.)This was also the opencode lane's stall. Isolated probes exonerated everything else: bare ACP turn 11s, with the Anima MCP server 12s, against a real 7.6 GB worktree 8.4s, with a 49k-token prompt 9.2s. After the limits went up, a real dispatch ran 65 loop steps with real tool calls and exited cleanly in 9 minutes instead of dying at the 3600s cap.
3. An agent that commits its own work was having it dropped
open_or_update_prdecided there was nothing to push purely fromgit statusbeing clean — but the forcing prompt asks the agent to commit, and opencode does, leaving a clean tree with its commit on the branch. The branch was never pushed and the turn's work died with the worktree. The very first good opencode turn hit this: it committedWI-B: executor token scope strippingas684ad46, one commit ahead oforigin/main, and the runner logged "no changes to push this turn". A clean tree is now checked against the base.4. A work item created through MCP without an explicit phase was born unroutable
handle_create_work_itempassedcurrent_phasestraight through, so omitting the documented-optional argument wrote NULL into the column the scheduler and every board bucket filter on. NULL is not a point on the phase axis. gRPCCreateWorkItemhas defaulted todraftsince ADR 0024; the MCP path now matches. WI019f9698was stranded this way and has been healed.5. opencode's log survives a container recreate
It lived under the default
XDG_DATA_HOMEinside the container's writable layer — so recreating the container to apply a fix destroyed the evidence for the thing being fixed. Exactly that happened mid-diagnosis. Now on the state volume. (The richer surface is the WI thread in Anima, which carries the full ACP record — 64 tool calls for that session; this log only matters for a stall that never reaches ACP at all, which is precisely the failure being chased here.)6. Token rotation that proves itself
deploy/runner/rotate-claude-token.shtakes the token on stdin (never argv, never shell history), backs up and rewrites the compose env, recreatesrunner-1, then drives a real turn through the container. A bad token fails at rotation time instead of 401-ing every dispatch for a day.Verification:
cargo test -p anima-runner— 38 passed, 0 failed, incl. the newmodel_override_reaches_each_cli_under_its_own_env_var.cargo clippy -p anima-runner --all-targetsclean.cargo check -p anima-serverclean; the server suite needs a Postgres container per test and was not run.Deployed: the runner image was rebuilt and both lanes recreated on archibald from this branch. The server-side change (4) is not deployed — it needs the k8s roll-out.
🤖 Generated with Claude Code
fix(runner): the model override never reached the claude-code CLI; Claude lane defaults to Opus 5to Fleet unwedge: Claude lane on Opus 5, runner fd limit, MCP-created WIs get a phaseFleet unwedge: Claude lane on Opus 5, runner fd limit, MCP-created WIs get a phaseto Fleet unwedge: Opus 5 on the Claude lane, opencode un-stalled, agent commits no longer droppedClosing: this branch is fully contained in
main—git log origin/main..HEADis empty. The fleet-unwedge content (including theTurnDone.stop_reasonhandling) landed through PR #366 and the lane-config changes that followed. Nothing left to merge.Pull request closed