Created
Jul 04, 07:57
Started
Jul 04, 07:59
Completed
Jul 04, 19:54
DevOps handoff
Type
Feature
Shape
ui+db
Worktree Slug
release-stage-timestamp-handoff
Repositories
mcritchie-studio
Release Slug
—
Branch
feat/release-stage-timestamp-handoff
Acceptance Criteria
Expected Test Plan
Checks Run
Agent Context
Add ordered stage timestamps to Release (testing_started_at, assembling_started_at, qa_deploy_started_at, qa_deployed_at, confirming_started_at, prod_deploy_started_at; assembled_at/confirmed_at/shipped_at exist). Each acts as time+boolean, first-write-wins, current stage = latest stamped. Stamp via Release#record_event! mapping (review_tests/assemble_release/deploy_qa/ship_gate/ship_authorized/deploy_prod started+completed) so both the conductor CLI and the existing /api/v1/releases/:slug/events/:step/:action API flow through. Key handoff fix: Steffon's deploy_qa completed = Live on QA (3 green) must NOT auto-activate Confirming; stage 4 goes yellow only when Avi posts events/confirming/start. Tracker helper (release_tracker_steps/done_count in application_helper) moves from heuristics to per-node complete/active/pending derived from stage stamps; migration backfills stamps from existing release_events. SOP updates target the NEW per-soul SOP layout on feat/agent-file-links (PR #364, open into release) — this branch must be merged into the feature branch first and PR #364 should merge before this PR.
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.
Scout report: request-changes - Code path and targeted checks look sound, but PR #371 is not merge-safe against current origin/release. Reporter: carl Outcome: request-changes Findings: - BLOCKER: git merge-tree --write-tree origin/release origin/feat/release-stage-timestamp-handoff fails with a content conflict in docs/agents/agents/avi/sops/production-deploy.md; qa-intake marks the PR needs-agent and 6 commits behind origin/release. - Non-blocker: Release stage stamps, API current slug behavior, tracker handoff gap, and SOP updates match the acceptance criteria in the reviewed diff. Questions: - none Checks: - Read /Users/alex/projects/AGENTS.md plus README, ECOSYSTEM, PR review SOP, deployment docs, devops-cycle design, task metadata, PR body/files/comments/CI, diff, and open PR overlap. - GitHub checks on PR head 7ce9702a are green: scan_ruby, scan_js, lint, test. - Local targeted verification passed in the PR worktree with mise exec ruby@3.3.11: bin/rails test test/models/release_test.rb test/helpers/application_helper_test.rb test/controllers/api/v1/release_events_controller_test.rb test/controllers/dev/board_controller_test.rb => 119 runs, 591 assertions, 0 failures.
Scout report: request-changes - Light review found the stage-stamp implementation aligned with acceptance and focused local checks green, but PR #371 is currently unmergeable against origin/release; resolve the production-deploy SOP conflict before Avi/Carl can clear it. Reporter: shannon Outcome: request-changes Findings: - [blocker] GitHub reports mergeable=CONFLICTING / mergeStateStatus=DIRTY at head 7ce9702; local git merge-tree origin/release HEAD reports a content conflict in docs/agents/agents/avi/sops/production-deploy.md. Conflict is between this PR’s Avi confirming/start handoff instructions and origin/release’s post-ship install-agent-docs paragraph; both pieces need to survive the resolution. - [non-blocker] Light pass found no functional issue in the stamp-driven Release model/API/tracker path. Release stage stamps are first-write-wins, current_stage is monotonic, Live on QA does not imply confirming, and the CLI posts ship_gate/deploy_prod stage events in order. Questions: - none Checks: - [ci] GitHub Actions at 7ce9702: scan_ruby, scan_js, lint, test all passed. - [local] Homebrew Ruby 3.3.11: bin/rails test test/models/release_test.rb test/helpers/application_helper_test.rb test/controllers/api/v1/release_events_controller_test.rb test/controllers/dev/board_controller_test.rb — 119 runs, 591 assertions, 0 failures. - [local] Homebrew Ruby 3.3.11: bin/rails test test/models/release/conductor_test.rb test/lib/release_cli_test.rb — 216 runs, 928 assertions, 0 failures.
Avi Heartbeat blocked review: carl: request-changes - Code path and targeted checks look sound, but PR #371 is not merge-safe against current origin/release.; shannon: request-changes - Light review found the stage-stamp implementation aligned with acceptance and focused local checks green, but PR #371 is currently unmergeable against origin/release; resolve the production-deploy SOP conflict before Avi/Carl can clear it.
Resolved the review blocker: merged origin/release (6 commits) into the branch; kept BOTH sides of the production-deploy SOP conflict (stage-timeline narration paragraph + the post-ship install-agent-docs step) and reconciled db/schema.rb to version 030600 (releases stage-stamp columns verified against a fresh migrate). Re-certified: full-suite + rubocop green at 4348f577c773, dor-check ✓ all four tiers. PR #371 now reports MERGEABLE at head 1d9ec99d.
Scout report: merge-ready - Primary review found no blockers: stage timestamp model/API/UI/docs meet the handoff acceptance, CI and DoR are green at the PR tree, and focused release/helper/API/dev-board tests pass locally. Reporter: carl Outcome: merge-ready Findings: - No blockers found. Live-on-QA stamps qa_deployed without implying confirming; confirming starts only from Avi's confirming/ship gate event. - Merge safety: PR #371 is CLEAN/MERGEABLE against release; synthetic merges with submitted peers #370 and #375 are conflict-free. Blocked draft #363 conflicts if revived, but it is not in the submitted sweep. Questions: - none Checks: - bin/dor-check release-stage-timestamp-handoff from .worktrees/release-stage-timestamp-handoff passed; full-suite/rubocop evidence fresh at tree 4348f577c773. - bin/rails test test/models/release_test.rb test/helpers/application_helper_test.rb test/controllers/api/v1/release_events_controller_test.rb test/controllers/dev/board_controller_test.rb passed: 119 runs, 599 assertions. - GitHub CI for PR #371 passed: scan_ruby, scan_js, lint, test; mergeStateStatus CLEAN.
Scout report: merge-ready - Light review found no blockers; release stage timestamps, API stamping, tracker handoff gap, and SOP guidance match acceptance. Reporter: shannon Outcome: merge-ready Findings: - No blocker: Release::STAGES stamps are first-write-wins, Live on QA leaves Confirming dark, and confirming starts from Avi's confirming/start or ship_gate start. - Non-blocking merge safety: PR #371 is mergeable into release and clean with PRs #370/#375/#376; stale PR #363 conflicts with the same docs if merged in parallel. Questions: - none Checks: - GitHub PR #371 targets release, is MERGEABLE, and CI scan_ruby/scan_js/lint/test are green. - Local focused Rails check: bin/rails test test/models/release_test.rb test/helpers/application_helper_test.rb test/controllers/api/v1/release_events_controller_test.rb test/controllers/dev/board_controller_test.rb — 119 runs, 599 assertions, 0 failures. - Preview check: http://localhost:3004/deployments returned 200 and rendered the release tracker labels/states.
Avi Heartbeat moved release-stage-timestamp-handoff to reviewed after carl + shannon reported merge-ready. Left for Steffon QA. Reports: - carl: merge-ready - Primary review found no blockers: stage timestamp model/API/UI/docs meet the handoff acceptance, CI and DoR are green at the PR tree, and focused release/helper/API/dev-board tests pass locally. - shannon: merge-ready - Light review found no blockers; release stage timestamps, API stamping, tracker handoff gap, and SOP guidance match acceptance.
Sealed-bid sizing
Edit →Alex (PM)
—
Avi (PO)
—
Dev
MEDIUM
Actual
XL
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.