Same class of bug as the campaign #27 false report: the Shorts report was a prompt() pre-filled with
'inappropriate'. Members now tap a reason button on purpose or cancel. Script tags bumped.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
- New 125x125 "square button" banner size; ad serve now filters by width/height,
and the sidebar slot serves a 125x125 banner (empty until such inventory exists).
- Shorts reel gets a "report this short" link (posts to /api/report-ad).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Sponsor messaging is now reachable everywhere a new referral looks: a
"Message your sponsor" card on My line, the Overview quick action, and a
pinned "Message your sponsor" row atop the Messages drawer (even with no
thread yet). Chat stores the sponsor from the dashboard.
- Watch-to-earn video + Shorts now PAUSE when the tab/window loses focus and
resume on return, so a viewer must stay on the page for the watch to count.
- Welcome tour hides its frame on completion (no white about:blank panel).
NOTE: rmcircle.team allows framing (frame-ancestors *); the blank was just
the post-dwell blank state.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Videos now carry client-detected pixel dimensions (videoW/videoH) captured at
campaign create (upload or direct link). serveVideo takes an orientation filter:
Shorts reel (/shorts) serves portrait (height>width); the Watch videos tab
serves landscape, including legacy/unknown-dimension videos so nothing is orphaned.
- shorts.js requests the portrait feed and has a client guard that skips any
landscape video that slips through. Create form shows the detected orientation.
- Achievement badge share image: member name now renders in gold with a dark
outline (was low-contrast dark ink) and sits centered on the ribbon.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>