Agents Builders

Release confirm EOF abort

Archived
release-confirm-eof-abort

Created

Jun 24, 02:39

Started

Jun 24, 02:39

Completed

Jun 24, 03:35

DevOps handoff

Type

Bug

Shape

backend

Worktree Slug

release-confirm-eof-abort

Repositories

mcritchie-studio

Release Train

Branch

feat/release-confirm-eof-abort

Local URL

QA URL

Production URL

tooling

Acceptance Criteria

  • confirm aborts on non-TTY stdin EOF
  • prepare fails loud without --yes not silent
  • regression test covers the EOF abort path

Expected Test Plan

  • unit

Checks Run

  • [unit] ruby -Itest test/lib/release_cli_test.rb — confirm aborts on non-TTY/EOF, --yes/--dry-run bypass (4 new) + helpers; 51 runs green
  • [integration] bin/rails test test/lib/release_cli_test.rb test/integration/release_flow_test.rb — prepare/ship/archive subprocess orchestration; 56 runs green
  • [lint] bundle exec rubocop bin/release test/lib/release_cli_test.rb — no offenses

Agent Context

bin/release confirm() (~L258-261) does $stdin.gets -> nil on EOF (non-TTY) -> returns false -> prepare SILENTLY no-ops without --yes ('the dangerous one' the SOP warns about). Make confirm ABORT with a clear message ('non-interactive: pass --yes to <cmd>') when stdin isn't a TTY / gets is nil, so prepare fails loud like ship/archive already do. Add a regression test.

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
    F Flareon
    Flareon
    Model
    Duration
    Tokens
    Cost
    Completed Jun 24, 02:39 · 3 days ago
    api
  2. Designed Building
    F Flareon
    Flareon
    Model
    claude-opus-4-8
    Duration
    under a minute
    Tokens
    Cost
    Started Jun 24, 02:39
    Completed Jun 24, 02:39 · 3 days ago
    cli
  3. Building Submitted
    F Flareon
    Flareon
    Model
    claude-opus-4-8
    Duration
    5 minutes
    Tokens
    Cost
    Started Jun 24, 02:39
    Completed Jun 24, 02:44 · 3 days ago
    cli
  4. Submitted Reviewed
    C Carl
    Carl primary
    J Jasper
    Jasper light
    Model
    claude-opus-4-8
    Duration
    36 minutes
    Tokens
    29,345,561
    Cost
    ~$22.77
    Started Jun 24, 02:44
    Completed Jun 24, 03:20 · 3 days ago
    cli
  5. Reviewed Assembled
    S Steffon
    Steffon
    Model
    Duration
    under a minute
    Tokens
    Cost
    Started Jun 24, 03:20
    Completed Jun 24, 03:21 · 3 days ago
  6. Assembled Shipped
    A Avi
    Avi
    Model
    Duration
    14 minutes
    Tokens
    Cost
    Started Jun 24, 03:21
    Completed Jun 24, 03:35 · 3 days ago
  7. Shipped Archived
    1
    159aaa24-5db3-4c44-aa05-25c79d2902cd
    Model
    claude-opus-4-8
    Duration
    about 14 hours
    Tokens
    Cost
    Started Jun 24, 03:35
    Completed Jun 24, 17:38 · 3 days ago
    cli

Conversation

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

Comment avi 3 days ago

2-senior review (reviewer-select: carl heavy + jasper light). BOTH APPROVE. Carl(heavy) ran the non-TTY path LIVE (EXIT=1 loud abort), verified the --yes/--dry-run bypass sits ABOVE the tty/EOF checks (test stubs stdin to RAISE if consulted, proving hands-off never reads stdin), all 3 callers (prepare/ship/archive) consistent, interactive 'n' still declines gracefully; 51 tests 0 failures, rubocop clean. Jasper(light) confirmed bypass intact + caller audit clean. = 2 approvals.

Sealed-bid sizing

Edit →

Alex (PM)

Avi (PO)

Dev

Actual