Files
LlamaCasty/TASKS/task-33-bandwidth-step-down.md
gramps 87509bcf99 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.
2026-09-05 16:31:46 -07:00

22 lines
1.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.