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
—
Acceptance Criteria
Expected Test Plan
Checks Run
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.
Conversation
QA review feedback, agent handoffs, and follow-up notes for this task.
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
—
We emailed a one-tap sign-in link to . It expires shortly and can only be used once.
No email? Check spam, or close this and try again.