26 lines
3.7 KiB
Markdown
26 lines
3.7 KiB
Markdown
# P7-10 Audit
|
||
|
||
**Implemented CONDITIONAL GO; publication pending.** Entry is the published Users follow-up `4760fd102c21c684bd139206a12194c6fc8f6104`, which passed staged/full-phase whitespace and normal remote verification at13:10:57UTC. Users' earlier staged-check failure remains recorded in its report.
|
||
|
||
## Bounded changes
|
||
|
||
The existing `/admin/audit` read owner and shared read-state component remain. Shared h2/h3 page/section presentation, localized Events heading and a named keyboard-scrollable table replace the one-off surface. Loading, failure and actual empty results remain distinct; Retry only performs GET. Existing supported Undo types and Deleted-only Restore visibility are unchanged.
|
||
|
||
Mutations now share synchronous admission, pending focus and session/lifetime guards. They retain current-language safe errors and cannot start a private refresh or toast after disposal. A successful write followed by failed refresh offers read recovery without replaying the write. No endpoint, authorization, tenant filter or stored event changes.
|
||
|
||
Visual review found a fixed-layout Job column only92.5px wide. An ordinary browser regression failed before removing the fixed table layout and giving Job/Details useful minimum widths. The named table retains intentional two-dimensional keyboard scrolling within the page; app-root overflow is checked separately. Exceptionally long identities still wrap and produce taller rows rather than losing data.
|
||
|
||
## Evidence
|
||
|
||
- Frontend **9/9 PASS**: seven added regressions, two existing cases. Initial candidate produced three passing/six failing cases against the old owner. Final rerun13:24:37–13:24:41UTC passes with no pending/todo cases.
|
||
- Existing backend **18/18 PASS**, zero skipped: lifecycle events, ordinary job authorization and API authorization posture, using the unchanged Release binary.
|
||
- Native **3/3 PASS**, no skips/flaky/retries,13:23:21–13:23:49UTC, export `vZuD4f-46FJekdIR5rhRk`. Actual isolated HTTP proves owned Restore204, foreign ordinary Restore404, authorized Audit Undo200, unsupported Created Undo400, non-admin GET/POST403 and persisted event/readback. Controlled503 recovery remains GET-only.
|
||
- Finite English/Bokmål light/dark samples at320,390,768,1024,1440,1920. Seven all-enabled axe scans have zero violations and110 incomplete nodes. Contrast incompletes include clipped/overlapping backgrounds and the invisible badge; the inherited shell version badge also has an unresolved role/ARIA incomplete. No rules are suppressed.
|
||
- App/browser TypeScript, lint and production build PASS. [Portable results](evidence/audit-results.json) retain command hashes, source hashes explicitly captured after execution, native counts and image identities.
|
||
|
||
Final320px Bokmål dark and1440px English light PNGs were actually inspected; five others remain automated evidence. Full-page captures place fixed shell chrome over scrolled content and expose a skip-link capture artifact; these images do not establish human screen-reader, real zoom or physical-device acceptance. Earlier candidate results/images and both ordinary layout failures remain retained locally.
|
||
|
||
## Preservation and remaining work
|
||
|
||
PRES-A02/E08/E09 gain bounded evidence; all57 groups remain56 PARTIAL/C11 DEFERRED and33 routes. Derived inventory becomes868 frontend cases/99 suites and345 browser cases/56 files, not a fresh whole-suite pass. No backend, CV renderer, revision, frozen association or AI safeguard changes. Separate administrator recent-auth enforcement is absent in the existing contract and is not claimed. System follows as its own boundary; shared-shell accessibility and full integrated review remain pending. P5-13 stays withheld, production readiness stays NO-GO, Phase8 has not started.
|