docs: renumber tasks sequentially 1-13, close gaps, fix all cross-references
This commit is contained in:
+14
-14
@@ -5,7 +5,7 @@
|
||||
> a problem. Conventions: [`schema.md`](schema.md). Rewrite this file at session
|
||||
> end, compaction, or any interruption.
|
||||
|
||||
## Session state (last updated: 2026-08-16, renumbering pass)
|
||||
## Session state (last updated: 2026-08-16, renumbering finalised)
|
||||
|
||||
- **Branch:** `main`, tracking `origin/main`. Working tree: the **TASK 9 reusable-stream slice** is
|
||||
committed + pushed (details below). Local branches `social-bar`/`webcam-validation` untouched (no secrets).
|
||||
@@ -35,15 +35,15 @@
|
||||
- **TASK 9 items 6-7 scoped (not built):** visibility unlock (remove temporary "always Private" enforcement)
|
||||
and full broadcast form (Core + Advanced tabs with all YouTube API-supported fields). These are the
|
||||
next technical tasks after live chat (item 4) and error handling (item 5).
|
||||
- **TASK 12 trimmed** to technical scope only (billing decision, unlock mechanism, bug report, alerts gating).
|
||||
- **TASK 10 trimmed** to technical scope only (billing decision, unlock mechanism, bug report, alerts gating).
|
||||
Business details moved to `MONETIZATION.md`.
|
||||
- **TASK 15 added** — marcom/launch kit. Business details moved to `MARCOM.md`. Queued after all v1 features.
|
||||
- **TASK 13 added** — marcom/launch kit. Business details moved to `MARCOM.md`. Queued after all v1 features.
|
||||
- **Backlog updated** — removed v0.3 (stream scheduling, not needed for casual streamers). Multi-destination
|
||||
restreaming noted as "congrats, you're ready for OBS" moment.
|
||||
- **Resume point (next branch):** **TASK 9 item 4 — live chat** (`liveChat/messages` poll, right-panel
|
||||
render, Super Chat + membership badges). Then item 5 (error handling), item 6 (visibility unlock),
|
||||
item 7 (full broadcast form), then TASK 12 (billing + unlock + support).
|
||||
- **TASK 14 — MASTER LIMITER — COMMITTED + PUSHED 2026-08-15.** Queued from the TRAX discussion: the
|
||||
item 7 (full broadcast form), then TASK 10 (billing + unlock + support).
|
||||
- **TASK 12 — MASTER LIMITER — COMMITTED + PUSHED 2026-08-15.** Queued from the TRAX discussion: the
|
||||
live mix summed mic + loopback with no ceiling, so hot gains could pass 0 dBFS and clip the AAC
|
||||
encode. New pure `Services/Audio/MasterLimiter.cs` (−1 dBFS ceiling, instant attack per frame,
|
||||
smoothed release) applied at the end of `AudioMixer.FillAndMix`. ONE integration test
|
||||
@@ -56,7 +56,7 @@
|
||||
TRAX music played). The whole `IGameAudioDetector`/`GameAudioDetector`/`GameAudioHysteresis` stack +
|
||||
the VM's 250ms poll timer + its two test files were **deleted**; the bar is now permanently overlaid
|
||||
at the bottom of the preview. Build **0 warnings**, full suite green.
|
||||
- **TASK 13 — POST-PAUSE POLISH BATCH — SHIPPED + COMMITTED + PUSHED 2026-08-15.** All 8 creator
|
||||
- **TASK 11 — POST-PAUSE POLISH BATCH — SHIPPED + COMMITTED + PUSHED 2026-08-15.** All 8 creator
|
||||
review issues fixed in one branch (details below). Build **0 warnings**, full suite **197 passing**
|
||||
(ONE integration test for that branch: `AudioPipelineTests.Mix_HonorsProviderGains_AndGameMute_KillsTheLoopback`).
|
||||
- **AUDIO MILESTONE (TASK 8) — SHIPPED + COMMITTED + PUSHED.** Real stream audio + voice filters +
|
||||
@@ -67,12 +67,12 @@
|
||||
lapse → list on renewal. Free tier unchanged (branding flash = the billboard + no Alerts; Alerts is
|
||||
the paid feature). **Billing NOT itch-locked**; candidates Gumroad (native affiliates =
|
||||
tiebreaker) / Lemon Squeezy. Support = in-app bug-report → git issues. Full policy in `ai.md` →
|
||||
Monetization; scoped plan in `TASKS.md` **TASK 12**.
|
||||
Monetization; scoped plan in `TASKS.md` **TASK 10**.
|
||||
- **Secrets scrubbed from git history.** The DO token + passwords were purged via `git filter-branch`
|
||||
+ `git gc --prune=now --aggressive` (all-refs scan = 0 hits); values still exist in chat — keep
|
||||
treating as **compromised**; rotate the DO API token.
|
||||
- **Shipped, all pushed:** TASK 9 items 1–3 (reusable stream + health banner, 2026-08-16), TASK 14
|
||||
master limiter, TASK 13 polish batch, TASK 11 (creator-hub About, `3d92bd0`), TASK 7 (meter +10 dB),
|
||||
- **Shipped, all pushed:** TASK 9 items 1–3 (reusable stream + health banner, 2026-08-16), TASK 12
|
||||
master limiter, TASK 11 polish batch, creator-hub About (`3d92bd0`), TASK 7 (meter +10 dB),
|
||||
TASK 4 ship step 7 (one-click go-live + private-only), TASK 8 audio milestone (`6d71ace`), secrets
|
||||
cleanup (`f2f6401`), monetization docs (`86fcd86`).
|
||||
|
||||
@@ -129,9 +129,9 @@ mappings, and the design's bottom-strip YouTube logo/green-red dot (clickable
|
||||
+ the ONE integration test `GetStreamHealthAsync_Report_By_Exception_Banner_Only_On_Warning_Or_Error`
|
||||
(real service JSON parse → real reporter: good → no banner, error issue → banner text + error color).
|
||||
|
||||
## TASK 13 — the 8-issue polish batch — SHIPPED 2026-08-15 (what changed)
|
||||
## TASK 11 — the 8-issue polish batch — SHIPPED 2026-08-15 (what changed)
|
||||
|
||||
The creator's review of the TASK 8 build, all fixed in one branch (full record in `TASKS.md` TASK 13).
|
||||
The creator's review of the TASK 8 build, all fixed in one branch (full record in `TASKS.md` TASK 11).
|
||||
|
||||
1. ✅ **Desktop/game audio volume slider had no effect** — the `AudioMixer` gain seams defaulted to
|
||||
unity (the VM never passed them): the slider/mute were decorative, stream AND local. Fixed with a
|
||||
@@ -175,7 +175,7 @@ sound or TRAX played, so it sat hidden during normal use. Fix = the bar is now *
|
||||
- **MainWindow.xaml:** dropped the `Visibility` binding on the preview-overlay game bar; it renders
|
||||
unconditionally (TRAX button + "Desktop Audio" label + meter + mute + volume unchanged).
|
||||
|
||||
## TASK 14 — master limiter 2026-08-15 (what changed)
|
||||
## TASK 12 — master limiter 2026-08-15 (what changed)
|
||||
|
||||
Came out of the TRAX discussion (file-size guard? 20% cap? sound-event balance?). Verdict: two of the
|
||||
three instincts were already satisfied, one real gap existed:
|
||||
@@ -207,7 +207,7 @@ and `ai.md` ("Live audio capture"). Highlights:
|
||||
before `_framePump.StopAsync()`.
|
||||
- **2-input mix (mic + loopback)**, honest gains: `micGain = MicVolume` (mute = 0),
|
||||
`loopbackGain = GameMuted ? 0 : GameAudioVolume` × duck. No third music channel.
|
||||
- **Voice chain on the mic** (TASK 10), before meter AND mix: bass 120 Hz +4 dB → treble 8 kHz +3 dB →
|
||||
- **Voice chain on the mic** (TASK 8), before meter AND mix: bass 120 Hz +4 dB → treble 8 kHz +3 dB →
|
||||
gate (0.005 / hysteresis 0.5) → compressor (0.5, 4:1). Pure TDF2 DSP, per-sample, always on.
|
||||
- **Auto-duck:** mic RMS > 0.02 → loopback ×0.25 (−12 dB), attack 0.05 / release 0.005.
|
||||
- **TRAX (free BGM):** `MusicPlayer` = MediaFoundationReader → `VolumeWaveProvider16` at fixed **0.20** →
|
||||
@@ -224,7 +224,7 @@ and `ai.md` ("Live audio capture"). Highlights:
|
||||
start-of-stream silence race was seen and eliminated).
|
||||
|
||||
**Out of scope this branch:** IP webcam, chat box, alt-key crop, credits, bg removal, music-off-VOD
|
||||
track (YouTube mutes VODs with copyrighted music — future feature), `PremiumUrl` (TASK 12 seam).
|
||||
track (YouTube mutes VODs with copyrighted music — future feature), `PremiumUrl` (TASK 10 seam).
|
||||
|
||||
- **Landmines:**
|
||||
- Never add another test that constructs `new App()` — use `RealAppHost.Run(...)` (shared STA host
|
||||
|
||||
Reference in New Issue
Block a user