Skip to content

PLAN-v3 Phase 3: stream-day hype, recaps, clips, and questions - #10

Merged
Kisahime merged 2 commits into
mainfrom
cursor/v3-phase-3-0e13
Oct 10, 2026
Merged

Kisahime merged 2 commits into
mainfrom
cursor/v3-phase-3-0e13

Conversation

@Kisahime

@Kisahime Kisahime commented Oct 10, 2026 •

Copy link
Copy Markdown
Owner

Summary

V3 Phase 3 stream-day features. PR #9 had already merged into main (4ccae7e), so this targets main and the diff is only Phase 3.

No new needs-owner items. V3-P0 stays with the owner. Hype-train scope (V3-P0-02) is still the live check this meter depends on; it is not ticked here.

Tasks

  • V3-P3-01 Hype progress, begin, and end events broadcast a hype payload (progress, goal, total, expires_at, active, hold_seconds). The overlay draws a bar and countdown (?hype=0 hides it). An end event hides the bar after overlay.alert_hold_seconds. The Twitch panel shows the same meter.
  • V3-P3-02 stream.online and stream.offline are core subscriptions (no scope). Online rotates session_id and stamps session_started. Offline writes data/recaps/YYYY-MM-DD-HHMM.md for that session only (cheers, redeems, and polls included) and can idle the booth. The manual recap filename stays YYYY-MM-DD.md.
  • V3-P3-03 Optional events.ad_breaks (off in shipped config). Pixel types ad break, back in N seconds and the overlay counts down. A missing channel:read:ads scope shows missing scope channel:read:ads in the feed list.
  • V3-P3-04 IRC message ids are stored on ChatLine.msg_id. Viewer replies send @reply-parent-msg-id=… PRIVMSG when a raw socket is available, and fall back to the current @name line. Streamer replies, alerts, and shoutouts stay unthreaded.
  • V3-P3-05 POST /api/clip and !pixel clip (60s cooldown, separate from the control cooldown) create a clip and store the edit URL as a streamer note. A missing clips:edit scope returns missing scope clips:edit and greys the Clip button.
  • V3-P3-06 With chat.ask_queue: true (default false, so existing auto-answer stays), !ask lines wait in a Questions list in arrival order. Answer speaks a reply to that viewer. Stale filtering does not drop them. The overlay can show the current question (?ask=0 hides it).
  • V3-P3-07 POST /api/memory/note adds, removes, and pins notes from the People panel. Added notes show up in that viewer's prompt block. Pinned viewers survive prune().
  • V3-P3-08 Optional events.shoutouts (off in shipped config). A received shoutout and an outgoing raid each produce one line. Outgoing raids are no longer dropped in the parser; channel.raid.out is subscribed only when the feed is on.

Testing

  • ruff check src tests clean.
  • pytest: 122 passed, coverage 75.36% (fail-under 72).
  • New cases in tests/test_v3_phase3.py cover the hype payload, two same-day session recaps, the ad line and missing-scope feed label, reply-parent ids, clip scope and cooldown, the ask queue, editable pinned notes, and shoutout/raid-out lines.
  • In the browser: Answer and Drop move the question list, Clip stores the edit URL, Add/Pin/Remove edit viewer notes, the overlay hype bar appears and hides, and the ad countdown decreases. The dashboard Twitch panel shows the same hype meter.

Dashboard hype meter and question queue
phase3-hype-ad-and-questions.mp4

Diagnoses that were already true: hype train versions stay 2, core subscriptions still go out first, and optional feeds stay off in config.yaml.

To show artifacts inline, enable in settings.

Open in Web Open in Cursor 

cursoragent and others added 2 commits October 10, 2026 21:18
Hype progress drives an overlay and dashboard meter, stream online/offline rotates the memory session and writes a timed recap, and optional ad and shoutout feeds type a single line. Viewer replies carry a Twitch reply-parent id, clips and editable notes are on the dashboard, and !ask can wait in a question list.

Co-authored-by: Kisahime <Kisahime@users.noreply.github.com>
The dashboard hype track is taller, ad breaks use the overlay countdown instead of a second frozen alert, and viewer notes can be added with a button as well as Enter.

Co-authored-by: Kisahime <Kisahime@users.noreply.github.com>
@Kisahime
Kisahime marked this pull request as ready for review October 10, 2026 22:55
@Kisahime
Kisahime merged commit c9d9cd2 into main Oct 10, 2026
2 checks passed
@Kisahime
Kisahime deleted the cursor/v3-phase-3-0e13 branch October 10, 2026 22:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants