I3232 — A kiosk left running for days shifts its marks against burn-in and recovers from a lost drawing context
Give /ui/kiosk a slow positional drift of static marks and labels, a brightness ceiling, and recovery when the canvas context is lost, each bound declared in .ai/repo/benchmarks/observatory/manifest.json and read by the kiosk, and each covered by a drill in the Observatory's gates.
PŘIPRAVENO vlna 0 · p3 · profil implementation · bezpečné paralelně
Připraveno. Všechny závislosti jsou hotové, takže majordomus plan start I3232 bude přijato.
Cíl
Give /ui/kiosk a slow positional drift of static marks and labels, a brightness ceiling, and recovery when the canvas context is lost, each bound declared in .ai/repo/benchmarks/observatory/manifest.json and read by the kiosk, and each covered by a drill in the Observatory's gates.
Proč
Proposed on 2026-10-13 for a hall LCD; I2680 closed the recovery drills for disconnects, not for burn-in or a lost context. Hardware claims need a named display (2026-10-14 caution). Sources: chatgpt-majordomus:c257#3.
Aktuální stav
Verified on master 707a04c7ce8: share/ui/observatory.js skips readings while hidden; no burn-in drift and no context-loss handler in share/ui; .ai/repo/benchmarks/observatory/manifest.json declares the Observatory's routes and gates but no drift interval, brightness ceiling or redraw bound.
Cílový stav
Drift and recovery exist, their bounds are declared once in the manifest, and the drills measure them on headless Chromium with the display named as not validated.
Rozsah
- share/ui/observatory-kiosk.js
- share/ui/observatory.js
- .ai/repo/benchmarks/observatory/manifest.json
Mimo rozsah
- Claims about a specific panel
Závislosti
Žádné. Tento úkol je kořenem grafu.
Kritéria přijetí
- The drift interval, the brightness ceiling, the context-loss redraw bound and the soak length are declared in .ai/repo/benchmarks/observatory/manifest.json; their values are unresolved until the owner or a measurement on a named display sets them, and the kiosk hard-codes none of them
- A headless soak of the declared length shows no static mark held at one position longer than the declared interval
- A forced context loss redraws within the declared bound
Validace
- bash test/run.sh 3014_the_kiosk_draws_what_the_repository_proves
- cargo test --manifest-path apps/majordomus-cli/Cargo.toml --test observatory
Požadované důkazy
- observatory_gate_burn_in_drift
- observatory_gate_context_loss
Důkazy
Nic nezaznamenáno. Za každým tokenem výše musí stát příkaz nebo artefakt, než lze tento úkol dokončit; vyprávění se odmítá.
Časová osa
- zahájeno
- —
- ověřeno
- —
- dokončeno
- —
Tato tři pole, důkazy výše a stav závislostí jsou vše, z čeho se stav skládá. Neexistuje žádné pole stavu, které by s nimi mohlo být v rozporu.
Canonical record: .ai/repo/project/issues/I3232.yaml. Read it back with majordomus plan show I3232.