docs: restructure TASKS.md into a catalog — one file per task in TASKS/
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.
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
# TASK 33 — Bandwidth auto step-down (queued 2026-09-01; v1 per the complete-v1 ruling)
|
||||
|
||||
> Catalog: [`TASKS.md`](../TASKS.md) — status and requirements live here.
|
||||
|
||||
|
||||
**Goal:** when the upload can't hold the tier, drop it automatically instead of drowning viewers in
|
||||
freeze frames. The `variable` reusable stream (shipped) makes this zero-API; the governor that decides
|
||||
WHEN is what TASKS.md:25 always claimed existed and was never built.
|
||||
|
||||
1. ☐ Pure `StepDownPolicy` — sliding window over the encoder's reported dropped-frame rate
|
||||
(`StreamHealth`, already parsed): sustained overrun → downgrade exactly one 16:9 tier
|
||||
(1080p60 → 1080p30 → 720p60 → 720p30). Hysteresis cooldown; **one-way within a broadcast**
|
||||
(no oscillation — a recovered connection doesn't climb back mid-show; the creator may manually
|
||||
step up). Vertical tier stays a manual choice.
|
||||
2. ☐ Restart machinery = TASK 32 slice 1 (tier change is an encoder relaunch at new W×H/FPS over the
|
||||
same pipe/URL; the master canvas is 1920×1080 regardless, so geometry never rewrites).
|
||||
3. ☐ Surface: the resolution badge + dropdown update to the landed tier; ONE Info toast
|
||||
("Quality lowered to hold your stream") — no nagging after that.
|
||||
4. ☐ Tests: pure-policy units (drop-rate windows, one-way, cooldown) + the ONE integration: fake
|
||||
health stream with sustained drops → exactly one lower-tier encoder restart.
|
||||
|
||||
Reference in New Issue
Block a user