Agents Builders

Animate live board events

Archived
animate-live-board-events

Created

Jun 25, 12:48

Started

Jun 25, 12:49

Completed

Jun 25, 14:24

DevOps handoff

Type

Feature

Shape

backend

Worktree Slug

animate-live-board-events

Repositories

mcritchie-studio

Release Train

Branch

feat/animate-live-board-events

QA URL

Production URL

ui realtime prod

Acceptance Criteria

  • Real create move delete animate on deployments board
  • Driven by live Turbo Stream broadcasts not buttons
  • Task delete broadcasts a remove to all viewers
  • Glow tinted by the card mascot type color

Expected Test Plan

  • unit
  • integration

Checks Run

  • [unit] deployments_broadcaster_test: task_removed broadcasts a card remove to the deployments stream + is guarded against a dead cable; green
  • [integration] deployments_broadcaster_test: destroying a task broadcasts the card removal (after_destroy_commit wired); green
  • [integration] tasks_controller_test: deployments cards carry a data-glow attribute; green
  • [suite] full bin/rails test green: 1620 runs, 6507 assertions, 0 failures, 0 errors
  • [manual] operator visually confirmed live create/move/delete animations on the real board (localhost:3038); existing e2e/deployments_live.spec.js exercises LiveBoardFx on live updates (pageerror guard)

Agent Context

Promote the dev-board animations (built in dev-fake-task-buttons / _dev_board_tools.html.erb) onto the REAL /deployments live board, triggered by DeploymentsBroadcaster Turbo Stream broadcasts (turbo_stream_from 'deployments') for every connected viewer. Move the animation JS out of the dev-only partial into the board's own live-update path (_board.html.erb kanbanBoard/observeLive), dropping the dev-fixture-prefix scoping and the DevBoard.action button gating. Disambiguate event type from the stream itself: prepend of a new card = create (pop+glow+bubbles); remove+prepend same id = move (shrink-out old, grow-in new); remove alone = delete/archive (shrink + FLIP reclaim); replace = in-place (subtle/none). Replaces the board's current basic animateIn (ring + fade). BACKEND: add a remove broadcast on Task destroy (TasksController#destroy or model) — hard delete fires no TaskEvent today so deletes never reach other viewers; wrap in Studio::Cable.safe_broadcast. Expose the mascot signature_color as a data-attr on the task_card root (use the board's prebuilt Pokemon.type_enumerals map to avoid N+1) so the client tints the glow. Dev tool's bespoke animation JS becomes redundant (real cards incl. dev fixtures animate via the shared path) — strip _dev_board_tools to just buttons+endpoints. Scope: /deployments only (the live socket). Gotcha to respect: Alpine x-show owns display on cards (hide via visibility+position, not display:none). Full intensity per operator; tunable.

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
    M Mew
    Mew
    Model
    Duration
    Tokens
    Cost
    Completed Jun 25, 12:48 · 2 days ago
    api
  2. Designed Building
    M Mew
    Mew
    Model
    claude-opus-4-8
    Duration
    under a minute
    Tokens
    Cost
    Started Jun 25, 12:48
    Completed Jun 25, 12:49 · 2 days ago
    cli
  3. Building Submitted
    M Mew
    Mew
    Model
    claude-opus-4-8
    Duration
    about 1 hour
    Tokens
    91,130,397
    Cost
    ~$51.60
    Started Jun 25, 12:49
    Completed Jun 25, 13:50 · 2 days ago
    cli
  4. Submitted Reviewed
    S Shannon
    Shannon primary
    Model
    claude-opus-4-8
    Duration
    10 minutes
    Tokens
    14,319,916
    Cost
    ~$8.48
    Started Jun 25, 13:50
    Completed Jun 25, 14:00 · 2 days ago
    cli
  5. Reviewed Assembled
    S Steffon
    Steffon
    Model
    Duration
    under a minute
    Tokens
    Cost
    Started Jun 25, 14:00
    Completed Jun 25, 14:00 · 2 days ago
  6. Assembled Shipped
    A Avi
    Avi
    Model
    Duration
    23 minutes
    Tokens
    Cost
    Started Jun 25, 14:00
    Completed Jun 25, 14:24 · 2 days ago
  7. Shipped Archived
    8
    81fad33e-98b5-4075-8ed6-d0efe6cb5804
    Model
    claude-opus-4-8
    Duration
    about 7 hours
    Tokens
    Cost
    Started Jun 25, 14:24
    Completed Jun 25, 21:16 · 1 day ago
    cli

Conversation

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

Comment 2 days ago

Shannon APPROVE: event classification correct for all broadcaster streams (create/move/delete/replace); no leaks/strand (Promise.race + 1200ms sweeps); after_destroy_commit guarded + correct card-#{slug} target; off-board remove is a no-op; footguns clean (strict-locals optional default, IIFE single-install). Non-blocking note: manual drag fired a CREATE burst — FIXED (window.__lbfxDragging guard on Sortable onStart/onEnd). Behavior operator-visual-accepted.

Sealed-bid sizing

Edit →

Alex (PM)

Avi (PO)

Dev

Actual