50 lines
2.1 KiB
Markdown
50 lines
2.1 KiB
Markdown
# UX and Performance Budgets
|
|
|
|
These budgets apply to the release-candidate map-first flow for Belgium and
|
|
the Belgian North Sea. They are regression limits, not claims about external
|
|
provider availability.
|
|
|
|
## Interactive budgets
|
|
|
|
| Interaction | Budget | Enforcement |
|
|
| --- | ---: | --- |
|
|
| persisted coverage resolution | 4 seconds | hook timing, visible warning and RC browser evidence |
|
|
| cached/persisted map selection analysis | 15 seconds | map timing and visible warning |
|
|
| initial map workspace readiness | 10 seconds on the release LAN | RC viewport evidence |
|
|
| local Ollama answer with persisted context | 90 seconds | RC-8 live journey timeout/evidence |
|
|
| bounded configured-YOLO fixture run | 120 seconds | RC-8 live journey timeout/evidence |
|
|
|
|
An on-demand official-source acquisition is intentionally excluded from the
|
|
15-second cached-selection budget. Its source-specific timeout, transfer and
|
|
feature limits remain authoritative. The UI must keep showing a running state
|
|
and a source-specific failure instead of presenting an acquisition as missing
|
|
or complete.
|
|
|
|
## Required states
|
|
|
|
The frontend distinguishes:
|
|
|
|
- `loading`: project, Area and Dataset state is still being resolved;
|
|
- `empty`: loading completed and no matching persisted data exists;
|
|
- `partial`: the persisted coverage matrix contains incomplete regional data;
|
|
- `error`: the API or provider contract failed;
|
|
- `ready`: persisted data and metrics are available.
|
|
|
|
Definitive `Ontbreekt`/`Niet beschikbaar` wording is forbidden while the
|
|
workspace is loading. A completed coverage or selection request that exceeds
|
|
its budget must display the measured duration and budget warning.
|
|
|
|
## Reproduction
|
|
|
|
```bash
|
|
npm --prefix frontend run test:unit
|
|
bash scripts/run_rc9_ux_audit.sh \
|
|
http://192.168.10.150:1202 \
|
|
artifacts/rc9-ux-audit
|
|
```
|
|
|
|
The browser audit runs at 390x844, 1366x768 and 2560x1080. It checks body
|
|
overflow, map width, keyboard tab behavior, skip-link focus, visible control
|
|
names, delayed bootstrap truthfulness and coverage-budget feedback. Its
|
|
screenshots and `manifest.json` are runtime evidence and remain outside Git.
|