Files
LlamaCasty/TASKS.md
T
gramps ec6a5ca466 docs(queue): six veggies, then the new work; scheduling and publishing retired
Creator ruling 2026-11-09: finish the queue before the new features, gold pass always last.

**Retired (platform's surface, not ours):**
- 34 scheduled streams — YouTube owns scheduling *and* the reminder that makes it worth anything.
- 50 publish recording — Studio owns upload (resumable, quota-aware, explains rejections), and an
  in-app uploader would widen the OAuth consent to whole-channel video management for one convenience.
  The app adds "Show in folder" instead.

**New tasks:** 65 replay clips (the creator-side buffer YouTube does not give you), 66 timed ticker
messages, 67 per-event alert videos, 68 edit-while-live + first-run On-Air.

**TASK 65 spec** is the interesting one: 15 s is a clip (10/15/20, default 15); the ring holds encrypted
*encoded* fragments in RAM — raw 1080p frames would be ~7.4 GB for 15 s — so there is no steady disk
write and no crash debris; F10 saves; the replay layer plays once then hides in Live and loops the last
1–3 elsewhere; silent by default; three kept; the layer is excluded from its own clip (hall of mirrors).

**TASK 14 gains Branch 3:** mic input gain ahead of the gate (table boom mics fall under it), webcam
blank hotkey, opacity/geometry parity with a collapsed Geometry disclosure, Show-in-folder.

**Decisions recorded:** the replay-buffer reversal (it was retired in 2022-era reasoning as "different
product"; the case for it won), the platform-surface rule, and voice triggering deferred — always-
listening in a streaming app hears the game, so the content is its own false-positive source.

Queue refactored to 56 lines by archiving completed rows and the superseded surge plan; HANDOFF at 40.
2026-11-09 14:27:07 -08:00

5.5 KiB
Raw Blame History

TASKS — the active queue

One line per live item; the detail lives in TASKS/task-*.md. Done work and the retired surge plan are in TASKS/archive.md. Retired decisions are in docs/ai/decisions.md. Markers: ☐ queued · 🔶 in progress · ⏳ blocked · ⏸ deferred · ❌ retired.

Next up

Creator ruling 2026-11-09 — finish the queue before the new features, gold pass always last.

35 → 37 → 40·A/C/D → 55·2–3 → Move → 9·5 → 14 (slices) → 65 → 66 → 67 → 68 → 36

The rule behind the two retirements below: do not rebuild the platform's own surface. Scheduling, publishing, moderation and channel management are YouTube's; the app owns capture → scene → sound → output.

Queue

Task Status Scope Detail
35 ☐ Scene-linked audio — the scene remembers the room: BRB mutes the mic, Chat restores it, applied once at the live transition task-35
37 ☐ Defaults vs current layout split — separate branded defaults from the live workspace; enables one-click revert task-37
40·A/C/D ☐ Settings round — active-camera picker; persist output resolution + surface transition defaults + confirm-before-End; accent consolidation task-40
55·2–3 ☐ Disk hygiene — delete %TEMP% alert clips on close + sweep at startup; low-disk guard before REC (slice 1 shipped) task-55
— ☐ Move transition — per-layer carry-across-scenes flag, per-scene placement, fixed z band ui-surface
9·5 ☐ Webcam identity key reconciliation — one stable identity per camera across re-plugs task-09
14 🔶 Creator feedback batch — Branch 2 shipped; Branch 3 = mic input gain, webcam blank/standby, opacity+geometry consistency, Show-in-folder on stop task-14
65 ☐ Replay clips — 10/15/20 s (default 15), RAM ring of fragmented MP4, F10 to save; replay layer plays once then hides in Live and loops the last 1–3 elsewhere; silent by default; three kept task-65
66 ☐ Timed ticker messages — "every N minutes show this", from a creator-written list task-66
67 ☐ Per-event alert videos — a clip per monetization event, falling back to the default task-67
68 ☐ Editing while live + first-run On-Air state matching the 1-2-3 screen task-68
36 ☐ Gold pass — the v1 gate: screens/layers audit (every control does something), native-Windows verification, branding-flash decision. Always the last unit task-36
34 ❌ Scheduled streams — retired 2026-11-09. YouTube owns scheduling and the reminder that makes it useful; the app neither creates nor displays scheduled broadcasts, and there is no value in a copy that can fall out of sync decisions
50 ❌ Publish recording — retired 2026-11-09. YouTube Studio owns upload (resumable, quota-aware, and it explains rejections). In-app publishing would also widen the OAuth consent to whole-channel video management. The recording lands in the creator's folder; the app adds "Show in folder" instead decisions
54 🔶 Freemium: EULA + privacy shipped; one codebase for free Demo + paid app. Blocked on Valve — identity verification pending, tax review up to 30 business days task-54
— 🔶 Steam ownership — BIsSubscribedApp(paidAppId) + Debug fake + app-wide IsAppOwned; paid app ID awaits Steamworks commercial
— ☐ Steam packaging — publish output + steam_api64.dll, paid app and Demo, depots, steamcmd upload, store pages + capsule assets, measured system requirements Distribution.md
48 ⏸ Distribution & packaging (winget/portable) — parked behind the entitlement seam task-48
— ☐ Training-video series — 32 subjects listed in youTubeTrainingVideos.md; each is documentation, channel content and support deflection at once youTubeTrainingVideos.md

1.0 gates (before the first shipped build)

  • Release visibility flow — default to Private; let the creator choose Private/Unlisted/Public at creation and change it live through UpdateBroadcast; keep development/test runs forced Private.
  • Kill the dev multi-instance affordance — Helpers/InstanceProfile.cs is #if DEBUG; re-prove on a Release build.
  • Single-instance guard — Release has none: two launches share one layout DB (read-whole/write-whole) and one audio pipe. A named mutex that activates the first window.
  • Gold pass (TASK 36).
  • Release engineering: publish.sh done, exe rename done, full licence texts beside THIRD-PARTY-NOTICES.txt needed; Debug-only InternalsVisibleTo outstanding.

Research

research-youtube-api.md · research-store-certification.md