Agents Builders

Feed order and page size

Archived
live-action-insert-at-top

Created

Jul 06, 14:28

Started

Jul 06, 14:29

Completed

Jul 06, 16:20

DevOps handoff

Type

Bug

Shape

ui-only

Worktree Slug

live-action-insert-at-top

Repositories

mcritchie-studio

Release Slug

Branch

feat/live-action-insert-at-top

QA URL

Production URL

ui

Acceptance Criteria

  • New live action row inserts at top of drill-down
  • Newest-first order preserved for websocket inserts
  • Activity feed paginates 25 per page

Expected Test Plan

  • [integration] broadcaster action-insert order + 25/page pager
  • [e2e] newest-first live action insertion in the drill-down

Checks Run

  • [integration] broadcaster: action-create inserts via 'after' targeting mobile-detail (not append); pager 25/page
  • [component] activities table/action-row render unchanged
  • [e2e] Playwright: a 2nd live action inserts BEFORE the first (newest-first) in the drill-down
  • [manual] verified on preview
  • [full-suite@b99bf9f817c2a2493dd8b954693ff07d10fb0950] bin/rails test green
  • [rubocop@b99bf9f817c2a2493dd8b954693ff07d10fb0950] bin/rubocop clean

Agent Context

BUG in the live websocket feed (#412, on release): ActivitiesBroadcaster#deliver_action_created uses broadcast_append_to the tbody, so a newly-created action row lands at the BOTTOM of the drill-down. The feed is newest-first, so it must insert at the TOP — right after the activity's main row + mobile-detail row, before existing action rows. Fix: give the mobile-detail <tr> a stable id (aa-mobile-detail-<activity_id>) in agents/_activity_row, and change deliver_action_created to broadcast_AFTER_to that target (keeps the mobile detail panel above the actions on mobile, and puts the new action first on desktop). Keep the remove-empty broadcast. Regression: update the broadcaster service test to assert action-create broadcasts an 'after' targeting aa-mobile-detail-<id> (was 'append'); e2e asserts the new action is the FIRST drill-down row. Shape ui-only.

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.

Sizing Avi · PO SMALL Dev SMALL Actual XL ≠ forecast
  1. Created Designed
    T Tyrogue
    Tyrogue
    Model
    Duration
    Tokens
    Cost
    Completed Jul 06, 14:28 · 2 days ago
    api
  2. Designed Building
    T Tyrogue
    Tyrogue
    Model
    claude-opus-4-8
    Duration
    under a minute
    Tokens
    4,277,904
    Cost
    ~$14.63
    Started Jul 06, 14:28
    Completed Jul 06, 14:29 · 2 days ago
    cli
  3. Building Submitted
    T Tyrogue
    Tyrogue
    Model
    claude-opus-4-8
    Duration
    13 minutes
    Tokens
    30,331,276
    Cost
    ~$15.95
    Started Jul 06, 14:29
    Completed Jul 06, 14:41 · 2 days ago
    cli
  4. Submitted Reviewed Review Activity
    S Shannon
    Shannon primary
    A Alex
    Alex light
    Model
    claude-opus-4-8
    Duration
    10 minutes
    Tokens
    Cost
    Started Jul 06, 14:41
    Completed Jul 06, 14:51 · 2 days ago
    cli
  5. Evolve
    T Tyrogue
    Tyrogue
    H Hitmonchan
    Hitmonchan
    triggered by
    S Shannon
    Shannon
    Model
    Duration
    10 minutes
    Tokens
    Cost
    Started Jul 06, 14:41
    Completed Jul 06, 14:51 · 2 days ago
  6. Reviewed Assembled
    S Steffon
    Steffon
    Model
    claude-opus-4-8
    Duration
    about 1 hour
    Tokens
    3,171,865
    Cost
    ~$2.75
    Started Jul 06, 14:51
    Completed Jul 06, 15:58 · 2 days ago
  7. Assembled Shipped
    A Avi
    Avi
    Model
    claude-opus-4-8
    Duration
    22 minutes
    Tokens
    Cost
    Started Jul 06, 15:58
    Completed Jul 06, 16:20 · 2 days ago
  8. Shipped Archived
    Model
    Duration
    about 6 hours
    Tokens
    Cost
    Started Jul 06, 16:20
    Completed Jul 06, 22:06 · 1 day ago

Conversation

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

Handoff avi 2 days ago

Avi review approved; ready for Steffon's qa-release sweep. Three approvals (Avi primary + Carl backend light + Shannon UI light), no blockers. Bug fix correct: deliver_action_created switched broadcast_append_to(aa-activity tbody, bottom insert = the bug) to broadcast_after_to(aa-mobile-detail-#id, a stable anchor sitting directly before the first action row), so each newest live action lands at position 0 (newest-first) with no off-by-one; page-load and broadcast paths share the same order(occurred_at desc, seq desc, id desc), so a reload after a live insert doesn't reshuffle. ACTIVITIES_PER_PAGE 10->25 (criterion 3). UI traps clear: streamed ACTION_ROW is a bare <tr class=aa-subrow> (no <turbo-frame>-in-<tbody> hoist), dual-render-path matched, id=aa-mobile-detail-#id unique per activity and present in DOM on desktop (display:none) and mobile. Bug-required regression coverage is genuine and would have failed pre-fix: [service] activities_broadcaster_test asserts action=='after' + target + assert_nil on any 'append'; [e2e] Playwright asserts newerIdx<olderIdx; [integration] pager renders 25 tbodies + page-2 href (10 shipped before). DoR fingerprint-fresh at PR tree (b99bf9f == 62caf53^{tree}); CI green (4).

Sealed-bid sizing

Edit →

Alex (PM)

Avi (PO)

SMALL

Dev

SMALL

Actual

XL