Created
Jun 29, 17:07
Started
Jun 29, 17:38
Completed
Jun 29, 20:09
DevOps handoff
Type
Feature
Shape
ui-only
Worktree Slug
deployment-grid-timers
Repositories
mcritchie-studio
Release Slug
—
Branch
feat/deployment-grid-timers
Acceptance Criteria
Expected Test Plan
Checks Run
Agent Context
Rework /deployments top dashboard layout into a 2x2 mental grid: NW and SW together are the current release area, NE is last release, SE is release statistics. Add visible duration timers for each deployment tracker stage: active/in-progress stages tick up in minutes and seconds; completed stages become static durations in minutes or seconds. Use existing release events/timestamps where possible and avoid new persistence unless inspection proves cached data is insufficient.
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: merge-ready - Light review finds PR #289 merge-ready: acceptance criteria are implemented, CI is green on cf357d0, and targeted component tests pass in the clean worktree. Reporter: carl Outcome: merge-ready Findings: - Blockers: none found in the dashboard grid, release tracker timer helpers, tests, CI, or mergeability checks. - Non-blocker: open PRs #286 and #282 touch some same files, but hunks are separate and merge-tree probes with PR #289 returned clean. - Question: none. Questions: - none Checks: - GitHub PR #289 targets release, is mergeable/CLEAN, and lint, test, scan_js, and scan_ruby all pass on cf357d0. - Local component check in .worktrees/deployment-grid-timers: mise exec ruby@3.3.11 -- bin/rails test test/helpers/application_helper_test.rb test/controllers/tasks_controller_test.rb passed with 111 runs and 683 assertions. - Local URL http://localhost:3017/up returned 200; /deployments rendered release-dashboard-grid and release-duration-card hooks.
Scout report: request-changes - Request changes: grid layout and CI are clean, but completed Assembling stage durations can render as 0s on the real conductor event path. Reporter: shannon Outcome: request-changes Findings: - blocker: app/helpers/application_helper.rb sets started_at to completed_at before the assembling created_at fallback, so completion-only assemble_release events or assembled_at-only data render a completed Assembling duration of 0s instead of elapsed time. - non-blocker: PR is based on release, GitHub reports MERGEABLE/CLEAN, and merge-tree simulations with overlapping PRs #282, #286, and #288 are clean. Questions: - none Checks: - CI: scan_ruby, scan_js, lint, and test are all green for PR #289. - Local: mise exec ruby@3.3.11 -- bin/rails test test/helpers/application_helper_test.rb test/controllers/tasks_controller_test.rb passed in the feature worktree. - Local: bin/dor-check deployment-grid-timers reports DoR-to-Merge met for ui-only shape. - Probe: Rails runner on completion-only assemble_release event returned {state:complete,seconds:0,live:false}.
Avi Heartbeat blocked review: shannon: request-changes - Request changes: grid layout and CI are clean, but completed Assembling stage durations can render as 0s on the real conductor event path.; carl: merge-ready - Light review finds PR #289 merge-ready: acceptance criteria are implemented, CI is green on cf357d0, and targeted component tests pass in the clean worktree.
Scout report: merge-ready - Fresh conductor review found the prior 0s Assembling-duration blocker resolved; PR #289 is clean for review advancement. Reporter: avi Outcome: merge-ready Findings: - Blocker resolved: completed-only assemble_release events now fall back to release.created_at/assembled_at, so completed Assembling durations no longer collapse to 0s on the real conductor event path. - PR #289 is open, non-draft, targets release, GitHub reports CLEAN/MERGEABLE, CI is green, and merge-tree against origin/release succeeds. - Non-blocker: same-file overlap exists with other open Studio PRs, but the current PR merge-tree and qa-intake are clean. Questions: - none Checks: - DoR from deployment-grid-timers worktree passed: component tier plus full-suite/rubocop certified at c2e12587535d. - Focused local tests passed: bin/rails test test/helpers/application_helper_test.rb test/controllers/tasks_controller_test.rb (112 runs, 686 assertions). - Reviewed application_helper release tracker duration code, release summary view, controller/helper tests, and Playwright release_ship ticker assertion.
Targeted conductor review moved deployment-grid-timers to reviewed for the next release train. Prior blocker resolved: completed-only assemble_release events now fall back to release.created_at/assembled_at, so completed Assembling durations no longer collapse to 0s on the conductor event path. Evidence: PR #289 CLEAN/MERGEABLE to release; GitHub CI green; merge-tree clean; DoR passed from the deployment-grid-timers worktree; focused tests passed with 112 runs, 686 assertions. Left for Steffon/release assembly.
Resolved: release_tracker_duration_bounds now falls back to release.created_at for assembling BEFORE falling back to completed_at (application_helper.rb:213, commit c87c432), so a conductor-emitted completed-only assemble_release event renders a real duration, not 0s. Regression: 'release_tracker_steps does not collapse completed-only assemble events to zero seconds' (application_helper_test.rb). Green on main.
Sealed-bid sizing
Edit →Alex (PM)
—
Avi (PO)
—
Dev
SMALL
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.