TASKS.md is now the index (status table, open items, research pointer). 33 files: 32 task files + 1 research facts file. The full take-saga narrative and all design decisions are preserved verbatim; the catalog makes the queue readable without opening every task body. Schema and AGENTS.md updated to reflect the new layout.
5.8 KiB
TASK 36 — Gold pass (queued 2026-09-01; the going-gate, always the last work unit)
Catalog:
TASKS.md— status and requirements live here.
Goal: the single deliberate pass that turns the dev product into the shipped product. Nothing here may be done opportunistically mid-development — each item has a lock/comment pointing at this task.
- ☐ Visibility unlock — remove the
CreateBroadcastPrivate override (TASK 9 item 6); dialog selection rules. The channel-protection stance ends at GA, by hand, here. - ☐ Branding flash goes live — end the preview-only pre-GA posture: composite the escalating obnoxious-promo flash onto output + recordings for free users. Paid removes it; that stays the ONLY paid delta. (Escalation curve finalized here, first.)
- ☐ Screens/layers settings audit — the retired 2026-08-22 landmine (ai.md): fine-tooth-comb every screen's Background layer properties, pill persistence, context-menu visibility, (+) items.
- ☐ Native-Windows verification suite — the checklist TASKS/HANDOFF never had: real webcam, real mp4 decode/loop/pacing (TASK 21 picker must have landed), real recording file opens + plays (fragmented MP4), a real private go-live end-to-end, GUI/RealApp test classes green on the desktop (they've only ever run against fakes).
- ☐ License-expiry reminders — T-14 / T-7 / T-1 toasts via the existing notification stack
("renews — manage here" →
PremiumUrl); lapsed: flash returns (the product itself is the notice) + one Info toast; active paid users see ZERO license UI. Research: does Polar's validate response carryexpires_atreliably — cite before building. - ☐ Release engineering (the
Distribution.mdplan, 644 lines, finally tasked): code signing (HARD blocker — an unsigned installer is a SmartScreen scarewall), installer + Velopack update URL (TASK 10 item 8), EULA draft/review, THIRD-PARTY-NOTICES license-texts gate (TASK 4 req 9). Build posture (agreed ceiling): compile flags max out atHARDENED(release-only anti-debug/ tamper checks) +MOCK_REWARDS(fake reward payloads for Alerts/dev) — additive-only, never branching normal code paths, both compiled every CI build so they can't rot. Obfuscation / assembly-splitting stay GA-time decisions, not compile-time ones.
v1 = the finished product (creator ruling, 2026-09-01)
There is no v1.x. v1 ships feature-complete: everything in the queue above lands, or is explicitly buried below. The parking lot is closed — nothing is "deferred to a later version" anymore; the only two states are v1 task and out of product, permanently. The 10% margin of error is this list, bounded and written down — not vibes.
Monetization posture restated (what "final" means): free gives everything; the only difference
is the branding flash. License activation flips exactly one bit (IsPremium → flash off). Nagware =
the escalating obnoxious self-promo flash itself — never modals, never feature-locks. Pre-GA the
flash is preview-only (see ai.md → Monetization; TASK 36 flips it live).
Out of product — permanently (the 10% margin, closed list — do not re-litigate)
| Idea | Verdict & reason |
|---|---|
| Stream Deck / Loupedeck integration | The device sends keystrokes — global hotkeys already ARE the integration (TASK 20). Redundant, not deferred. |
| Per-source audio sync offset | Global offset shipped (TASK 22); per-source is the OBS mixer rabbit hole. Condemned by the Audio Assumption (one knob). |
| Profiles / presets (multi-config) | Same hydra as multi-layout, already ruled at TASK 30: that's what OBS is for. |
| Chroma key / background removal | Already ❌ (TASK 3 item 19). NVIDIA Broadcast does it free; model+GPU+lighting caveats = support hell for a solo dev. Stays buried. |
| Virtual camera output (Zoom/Discord) | Different product, device-driver swamp. Our output is one YouTube stream. |
| Replay buffer (instant replay) | Game-clipping culture, not our persona. The most valuable corpse here — if the list is ever reopened at all, this is candidate #1, and it reopens by creator ruling, not by AI suggestion. |
| Multi-destination restreaming | "Casual streamers outgrow LlamaCasty first" — the map already said it; the per-destination audio/monitoring expectations are a different product. |
| Stream clipping | YouTube killed clips; trimming local MP4 is an editor. |
| Advanced broadcast-form tab (latency/DVR/embed/projection/CC/region) | TASK 9 item 7 rescoped: fixed sane defaults, invisible. Every exposed field is a support ticket. |
| In-app bug-report mechanism | Never built, never will be: support = email + GitHub issues. (ai.md's support line corrected to match, 2026-09-01. Second-place corpse if the list ever reopens: with replay buffer.) |
| D3DImage/GPU preview compositor | TASK 3 item 16 superseded: XAML preview + software output compositor are the design; a D3D11 swap remains a seam-respecting possibility, not a feature. |
| Simultaneous record + stream | Creator ruling 2026-09-01: the VOD is the copy; dual encode drags mediocre hardware and degrades both outputs. "We're not them." Two modes, radio pills, one stop. |
| Premiere / video-upload pipeline | Uploading finished videos is Studio's job (quota-brutal, processing-state polling, API premiere support unproven). Watch-parties are fandom behavior, not our persona. "Going live is our schedule." |
| Scheduled playout (pre-recorded file airs as live) | Discussed fully 2026-09-01 and declined by the creator — "let's not." If it ever returns, it returns by ruling, with machine-on caveats and the media-audio slice as its price of admission. |
If a future session is tempted by anything on this list, the answer is already written. New ideas must survive this page before they get a task number.