Created
Jun 24, 20:13
Started
Jun 24, 20:19
Completed
Jun 24, 22:57
DevOps handoff
Type
Feature
Shape
ui+db
Worktree Slug
deployments-turbo-streams
Repositories
mcritchie-studio
Release Train
2026-06-24-studio-cable
Branch
feat/deployments-turbo-streams
Acceptance Criteria
Expected Test Plan
Checks Run
Agent Context
Shipped to prod 2026-06-24 (mcr d6c3781). studio-engine 0.10.0 published (Studio::Cable + Studio::Redis + Broadcastable primitive). heroku-redis:mini provisioned as cable backend; realtime live on /deployments via turbo_stream_from. SEV-1 ScriptError guard preserved.
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.
Converged /deployments to Turbo Streams on the studio-engine cable primitive (PR #179). Retires #171's custom channel + Alpine FLIP. cable.yml via Studio::Redis (TLS), turbo_stream_from + DeploymentsBroadcaster Turbo actions (replace/remove+prepend/prepend/remove) wrapped in Studio::Cable.safe_broadcast (StandardError+ScriptError — the SEV-1 fix, now shared). MutationObserver animates + refreshes counts. Full suite 1538/0, rubocop clean, real Turbo e2e round-trip green, dor-check ✓. BLOCKED on studio-engine#9 publish (Gemfile ~> 0.10; bundle update finalizes the lock). Engine consumed via local path at /Users/alex/projects/studio-engine/.worktrees/cable-redis. Operator: provision Heroku Redis on mcr prod before realtime fires. Engine note: Studio::Cable.safe_broadcast's ErrorLog.capture! can itself raise (e.g. NoDatabaseError) — wrap it (hardening follow-up).
Both reviewers: code APPROVED. Sole blocker = producer-first dependency — Gemfile ~> 0.10 vs locked 0.9.0, engine 0.10.0 unpublished → CI/frozen build red. Clears when studio-engine#9 merges + publishes, then bundle update studio-engine finalizes the lock. Non-blocking nits to fix in that same pass: stale e2e/seed comments (DeploymentsChannel/ActionCable/FLIP) + PR body overstates the e2e rewrite + says Studio::Broadcastable where impl uses Studio::Cable.safe_broadcast. Holding at submitted.
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.