2.5 KiB
Rules form density and recovery
Baseline511b68a1; source/verifier99b144f4.
The six existing follow-up/ghosting controls now fill two desktop columns. Removing the three empty filler cells eliminates extra mobile/tablet spacer rows while preserving the single-column breakpoint, field order, labels, bounds1–365, validation, save snapshots and discard behaviour. No rule, automation, provider or database contract changed.
Verification
- RED:the actual mobile form had a32px inter-group gap from the empty grid cell. The original three-column desktop template reserved a third of each row for an empty cell. Baseline capture/report retained.
- PASSED:28 targeted Settings/import lifetime cases. A subsequent combined affected run passed76 cases in seven suites on the final application source:Settings, import/export, file picker, catalogue and language provider. These counts overlap; they are not104 distinct tests.
- PASSED:production build/TypeScript and scoped ESLint.
- PASSED:12 actual exported-UI configurations at390/768/1440 ×EN/NB ×light/dark;84 accessibility captures across read error, retry/loaded, invalid, pending save, acknowledged save with newer edit, rejected save and discard. All six inputs remain. Desktop field widths use at least45% of the form and mobile/tablet gaps stay within8–24px.
- Each configuration attempted two intercepted rule updates:one committed fixture snapshot and one rejected fixture. Invalid0 caused no write. Editing21→22 during the held save retains22 on acknowledgement; discard restores the acknowledged21. Rejected20 stays until deliberate discard. Exactly two rule reads, no unexpected writes/proposals/unavailable reads/page exceptions. External fonts blocked. The pilot overlaps the full matrix.
- Desktop English loaded and mobile Bokmål invalid captures were visually inspected. Actions and errors remain reachable without the empty grid rows.
Evidence:evidence/rules-recovery/; source/evidence/export bindings:RULES_RECOVERY_SOURCE_MANIFEST.json. All API behaviour is synthetic. This qualifies UI recovery/presentation, not real server persistence/concurrency, automated rule execution or backend load performance. Existing backend freshness evidence retains its own source/environment identity.
Rollback reverts99b144f4 and reruns affected checks; no migration, dependency or physical CV/PDF change. Remaining workflows, per-user Ghosted pause contract, native-device/AT/native-language, final A3, integrated security/recovery and release gates stay open. The34-route/57-group inventory is preserved.