I3090 — The UI audit warms every surface and gives an unreachable page a second load
Before the first visit, the UI audit loads the first planned page of every top-level surface, not only the root. It records page.unreachable only after a second load fails, and never retries a refused connection, which still stops the run.
PŘIPRAVENO vlna 0 · p1 · profil implementation · běží samostatně
Připraveno. Všechny závislosti jsou hotové, takže majordomus plan start I3090 bude přijato.
Cíl
Before the first visit, the UI audit loads the first planned page of every top-level surface, not only the root. It records page.unreachable only after a second load fails, and never retries a refused connection, which still stops the run.
Proč
On 2026-10-19 and 20 the ui job on master (runs 39205883728 and 39233374923) and on the alpha.1 top (39357242274) failed on one finding: page.unreachable on /docs/ @320. The documentation surface is served from a tree of its own, and its first load, the first visit of the plan, exceeded the 20 s goto while every later visit of /docs/ loaded. A red that says something about a cold machine and nothing about the site.
Aktuální stav
The audit warms only the root, and a single timed-out goto is a finding.
Cílový stav
Every surface is warm before the first visit, and a page is unreachable only when it fails twice.
Rozsah
- scripts/lib/ui-audit.mjs
- scripts/lib/ui.test.mjs
- .ai/repo/project/issues/I3090.yaml
Závislosti
Žádné. Tento úkol je kořenem grafu.
Kritéria přijetí
- The audit warms the first planned route of every top-level path segment before the workers start, deriving the segments from the plan and naming no mount
- A visit whose goto times out is loaded once more before page.unreachable is recorded, and the finding names the number of attempts
- A refused connection is never retried: the run still stops and says the server stopped answering
- A full ui audit run on CI reports no page.unreachable on /docs/
Validace
- majordomus plan validate
- node scripts/lib/ui.test.mjs
- scripts/ui audit --report
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/I3090.yaml. Read it back with majordomus plan show I3090.