Files
geointel/docs/UX_PERFORMANCE_BUDGETS.md
T
Codex 9b0239747d
GeoIntel release gates / Compile, test, contracts and builds (push) Canceled after 0s
GeoIntel release gates / Python and npm vulnerability policy (push) Canceled after 0s
GeoIntel release gates / GIS image, SBOM and container scan (push) Canceled after 0s
Harden RC9 UX and performance states
2026-07-18 06:37:54 +02:00

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.