Agents Builders

Adopt assembled stage stuck

Archived
adopt-assembled-stage-stuck

Created

Jun 24, 05:40

Started

Jun 24, 05:47

Completed

Jun 24, 06:40

DevOps handoff

Type

Bug

Shape

backend

Worktree Slug

adopt-assembled-stage-stuck

Repositories

mcritchie-studio

Release Train

Branch

feat/adopt-assembled-stage-stuck

QA URL

Production URL

devops release-tooling

Acceptance Criteria

  • Late adopt onto assembled RC flips stage assembled
  • reopen path sets release_slug and stage together
  • Regression test adopts task onto assembled release

Expected Test Plan

  • [unit] Release#add atomicity: failed member flip rolls back the reopen
  • [integration] Conductor.adopt! reconciles a stranded member across the DB boundary

Checks Run

  • [unit] Release#add atomicity (release_test.rb): failed member flip rolls back the reopen — release/conductor/task suite 272 runs, 753 assertions, 0 failures
  • [integration] Conductor.adopt! reconciles a stranded member + reopens RC across the DB (conductor_test.rb) — green in same 272-run suite

Agent Context

Hit live during the 2026-06-23 QA release (rel-20260624-a59e5f) when bundling turf-monster fix-ipinfo-geocoder-https onto an already-ASSEMBLED RC. Symptom: Release#add (app/models/release.rb:103) on the reopen! late-merge path left the member task at stage=reviewed while still setting release_slug — so it showed as a release member but never flipped to assembled. Conductor.adopt! (app/models/release/conductor.rb:15) then no-ops on every retry because 'release.tasks.exists?(slug:)' is already true, so the half-state can't self-heal. Had to manually bin/task move reviewed->assembled. Repro: assemble an RC (prepare), then bin/release merge a second reviewed task onto it; observe the new member stuck at reviewed. Likely fix: ensure add() sets stage=assembled atomically on the reopen path (it appears the single update! either didn't run or was reverted), and/or make adopt! reconcile an existing member whose stage != assembled. Add regression test covering adopt-onto-assembled.

Stage Timeline

Who handled each stage, the time it took (measured), and the model / tokens / cost reported (best-effort) — plus who's on it right now. means the agent didn't report that metric.

  1. Created Designed
    P Poliwrath
    Poliwrath
    Model
    Duration
    Tokens
    Cost
    Completed Jun 24, 05:40 · 3 days ago
    api
  2. Designed Building
    P Poliwrath
    Poliwrath
    Model
    claude-opus-4-8
    Duration
    7 minutes
    Tokens
    Cost
    Started Jun 24, 05:40
    Completed Jun 24, 05:47 · 3 days ago
    cli
  3. Building Submitted
    P Poliwrath
    Poliwrath
    Model
    claude-opus-4-8
    Duration
    14 minutes
    Tokens
    1,537,108
    Cost
    ~$1.77
    Started Jun 24, 05:47
    Completed Jun 24, 06:01 · 3 days ago
    cli
  4. Submitted Reviewed
    C Carl
    Carl primary
    J Jasper
    Jasper light
    Model
    claude-opus-4-8
    Duration
    9 minutes
    Tokens
    7,080,341
    Cost
    ~$6.85
    Started Jun 24, 06:01
    Completed Jun 24, 06:10 · 3 days ago
    cli
  5. Reviewed Assembled
    S Steffon
    Steffon
    Model
    Duration
    5 minutes
    Tokens
    Cost
    Started Jun 24, 06:10
    Completed Jun 24, 06:15 · 3 days ago
  6. Assembled Shipped
    A Avi
    Avi
    Model
    Duration
    25 minutes
    Tokens
    Cost
    Started Jun 24, 06:15
    Completed Jun 24, 06:40 · 3 days ago
  7. Shipped Archived
    1
    159aaa24-5db3-4c44-aa05-25c79d2902cd
    Model
    claude-opus-4-8
    Duration
    about 11 hours
    Tokens
    108,234,481
    Cost
    ~$86.19
    Started Jun 24, 06:40
    Completed Jun 24, 17:37 · 3 days ago
    cli

Conversation

QA review feedback, agent handoffs, and follow-up notes for this task.

Comment avi 3 days ago

Review cascade: shannon[heavy] APPROVE — reconcile breadth (!= assembled) is CORRECT, do not tighten (tightening makes adopt! inconsistent: new blocked task raises, existing blocked member silently no-ops); atomicity/idempotency/tests sound. alex-docs[light] BLOCK — release.rb 'Atomic:' comment misattributes the incident half-state to the txn wrapper (incident is fixed by adopt! reconciliation; the txn guards a distinct never-observed mode). Rework: comment fix + elsif clarifying comment + no-op-without-reopen regression test.

Comment avi 3 days ago

alex-docs BLOCK resolved by rework (commit 195c71f): release.rb comment reworded to label the txn wrapper as defense-in-depth vs a distinct never-observed mode (verified on PR head); + elsif clarifying comment + no-op-without-reopen regression test. shannon[heavy] had APPROVEd the logic. Review satisfied; merge gated on CI test job green + PR marked ready.

QA Feedback steffon 3 days ago

QA-deployed on rel-20260624-a59e5f @ qa.mcritchie.studio (mcr@15e2d3f, /up 200). Fix verified by suite (273 runs 0F) + dogfooded: merging this + geo onto the assembled RC flipped both cleanly to assembled (no manual fixup needed). Note: the fix only governs the PROD board once mcritchie-studio ships to prod. Awaiting operator prod-ship gate.

Sealed-bid sizing

Edit →

Alex (PM)

Avi (PO)

Dev

Actual