Files
LlamaCasty/HANDOFF.md
T
gramps 711ba54af7 docs: rewrite HANDOFF for session end; import the TASK 21 picker spec from the old handoff into TASKS.md
The picker-slice deliverables + loop-provider rule lived only in HANDOFF (rewrite-every-
session = lose-it). Moved into TASK 21 where it's durable; HANDOFF rewritten: locked
decisions 1-9, queue order, landmines (incl. the 2 unpushed docs commits), no-suggestions
note carried.
2026-09-01 19:04:21 -07:00

4.6 KiB
Raw Blame History

HANDOFF — Session State

Branch / Commit State

main, clean working tree, 2 local commits NOT yet pushed (waiting for the user's "push"):

  • e1d8b10 — docs: v1 = feature-complete ruling — queue TASKs 32–36, close out-of-product list, fix map lies
  • 7c6ec3e — docs: pre-GA posture (visibility lock rationale, flash preview-only + escalation, audit → gold pass)

No code changed this session — docs only; no build/test run needed.

What this session was

The creator's product/PM audit: "the refactor lost institutional knowledge — potholes and gone streets." Walked the whole map, cross-checked claims against code, and wrote the results back. Nothing was coded. The queue below IS the outcome.

Decisions locked (2026-09-01 — creator rulings, do not re-litigate)

  1. v1 = the finished product. No v1.x. Everything queues to v1 or to the closed "Out of product — permanently" list (TASKS.md, file end). 10% margin = that written list.
  2. TASK 32 Stream resilience — IN: blip retry (app-side; ffmpeg does NOT self-reconnect RTMP output — map fixed), measured-grace countdown on the ON-AIR sign (amber RECONNECTING → red OFF AIR → button "● Back on air"), one-click new broadcast reusing saved form, crash-safe fragmented-MP4 recording, TCP pre-flight. Dead-broadcast RESUMPTION IS OUT — API-impossible, creator ruled; no lying in copy.
  3. TASK 33 auto step-down — v1 (the map claimed it existed; it never did — claim fixed). Pure policy, one-way per broadcast, rides TASK 32's restart machinery.
  4. TASK 34 scheduling — drawer version (☑ Scheduled + datetime in the Text drawer; Save CREATES the broadcast; uncheck deletes; adoption at Start). Two research flags pending (early-push behavior; delete semantics) — cite before building. Dark until the visibility unlock.
  5. TASK 35 scene-linked audio — spec approved as written (nullable per-scene mute flags, applied once on live transitions only).
  6. TASK 36 gold pass — the ONLY place these happen: visibility unlock, flash-live enable, screens/layers audit (the 2026-08-22 landmine, retired here), native-Windows verification suite, expiry reminders (T-14/7/1 toasts; research whether Polar validate carries expires_at), signing/installer/EULA/Velopack. Compile flags capped at HARDENED + MOCK_REWARDS, additive-only, CI-compiled (DEV_LICENSE_BYPASS rejected).
  7. Branding flash = the nagware: escalating cadence (curve = build-time knob), preview-only while pre-GA (never on test output/recordings), paid removes it — that stays the only paid delta.
  8. Private-only lock stays (test-phase channel protection; DVR/VOD on = invisible review tapes).
  9. Alerts are free — stale "one paid feature" language corrected everywhere.

What's next (the queue, in order — per TASKS.md "v1 execution order")

TASK 21 UI picker slice is first — the handoff spec from 2026-08-31 is still valid and reproduced in TASKS.md/TASK 21 (file picker + Acquire/Release wiring + MediaIsLooping→Looping rule + loop/volume UI). GUI work — build + verify on native Windows. Then TASK 32 slices, 33, 34, 35, text source (TASK 3 item 17), the monetization chain (capture → report → journey → Alerts), MARCOM (TASK 13), and TASK 36 last.

Landmines

  • Push state: 2 docs commits local-only. Trust git log, not this file's mood, about what's pushed.
  • A stale testhost can lock ytLive.Tests's ytLive.dll → MSB3027; kill it first (cmd.exe /c "taskkill /PID N /F").
  • Full-suite vstest hangs headless (RealAppHost/WASAPI) — run test classes individually; GUI suites verify on the native desktop.
  • WSL cannot spawn Linux ffmpeg from the Windows CLR shim (Win32Exception 193) — verify ffmpeg contracts via shell/python (recipe in MyMistakes.md); CLR→real-ffmpeg is Windows-suite territory. Linux static ffmpeg 7.0.2 + test clip live at /tmp/opencode/.
  • Pre-commit gate: ./scripts/verify.sh "<files>" (clean build, 0 warnings — incremental builds lie).
  • Real-MainWindow tests MUST use MainViewModel.LayoutPathOverride (temp DB) or they wipe the user's real layout on shutdown (see ai.md → Tests).
  • The two known pre-existing failures (AudioPipelineTests.Mix_HonorsProviderGains…, RoundClipInteractionTests.Round_Clip_Corner_Is_Grabbable…) are NOT regressions.

@ User note — no unsolicited roadmap

The creator asked to stop with forward-looking suggestions unless asked. The queue above is theirs, from the 2026-09-01 audit — work what's queued, report what changed, stay quiet on "what's next" beyond the queue. They prefer short, spaced-out output over dense text.