{"id":"e542bc18-7326-4cfb-a873-faaa97b28aa8","org_id":"5b607c7a-3ba2-4077-b038-cdccd0ce7c34","project_id":"b18679c0-fffb-4308-82b6-9e91be23582f","parent_id":null,"identifier":"BEB-3603","number":3603,"title":"RECORDING MODAL — video/GIF of wp-admin config on the ticket itself, modal viewer loading from BB Docs","description":"Repo: alexrollin/abilifi-apps (ABCMS blocks + ticket page renderer)\nClass: CODE\nLane: BUILD\nFEATURE NAME: **RECORDING MODAL**\nETA: 2026-08-22\nBudget: estimate 200 / ceiling 400\n\nAlex 2026-08-19: he expects a VIDEO OR GIF of the wp-admin configuration alongside or inside the ticket, with a MODAL VIEWER that loads it from BB Docs. Today recordings land in a sessions playlist doc (2f73f07b) and nothing on a ticket plays them — so a recording that exists is still invisible where the work is read.\n\n## Deliverable\n1. ARTEFACT ON THE TICKET: a recording or GIF captured for a ticket attaches to that ticket and renders as a thumbnail row on its page — not a bare doc id, not a link buried in a comment.\n2. MODAL VIEWER: click the thumbnail → modal opens in place and plays it. Source is BB Docs — the doc store stays the single home for proof artefacts; the modal loads from there, nothing is re-hosted or copied.\n3. ONE SHARED RENDERER, same helper as BEB-3517 (ticket-number links + Ask Orky). Not copied per surface — the ticket page, the delivery report rows (BEB-3582/3598) and the internal playlist (BEB-2802) all use this one viewer.\n4. GIF FALLBACK: where a session recording cannot be produced, a GIF of the same screen is acceptable and renders in the same modal. Absence of both renders `NO RECORDING` with the screen named — never a blank slot.\n5. Themeset colours only; AJAX — the modal opens without a page reload; mobile viewport works at 390px.\n\n## Acceptance\n1. A ticket with a landed recording renders a thumbnail; clicking it opens the modal and the recording plays, sourced from BB Docs.\n2. A ticket with a GIF only renders the same way through the same modal.\n3. A ticket with neither renders `NO RECORDING` naming the screen expected.\n4. The same viewer renders unchanged on a delivery-report row — asserted, not claimed.\n5. 390px run: modal opens, plays, closes.\n6. contract_run + recording of the modal itself into BB Docs. Alex loads nothing and records nothing.\n\nRefs: BEB-3517 (shared ticket renderer), BEB-2611 (record_url), sessions playlist 2f73f07b, BEB-3582 (delivery report rows), BEB-2802 (internal playlist), BEB-3598 (report engine — consumes this viewer).","status":"todo","priority":0,"assignee_id":null,"created_at":1787136102994,"updated_at":1788443365176,"completed_at":null,"due_date":"2026-08-29","claimed_by":null,"claimed_until":null,"required_capabilities":null,"estimate":200,"cost_ceiling":400,"cancelled_at":null,"last_actor":"unverified:shared"}