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
Acceptance Criteria
Expected Test Plan
Checks Run
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.
Conversation
QA review feedback, agent handoffs, and follow-up notes for this task.
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
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.