Master audit: non-Top-10 audits and every approved non-clinical fix (D-129 to D-131)

Merged
BI
2d ago
+26818-1201

Requested by josh · project thread

What this does

  • Audits: every master audit item outside the Top 10 now has an audit test (tests/ward-audit-m*), a governance draft, a place in the Tier 7 plan and a row in the register (docs/ward-flow/evidence/2026-11-10-master-audit-register.md).
  • Approved non-clinical fixes (D-129, D-130):
    • Saving and syncing:
      • Open tabs reload after a restore (restore marker).
      • After a 429 the client holds saves, resends them, and retries if it is busy. Each account has a save limit.
      • Reconnects are spread out, and the 413 message is clearer.
    • Bulk actions: bulk acknowledge shows "N of M" and writes one audit row for each alert. "Sign off N" can be undone.
    • Handover and print: the Handover page opens on the handover just held. Printed sheets say when reads are frozen.
    • Cover: it asks for a reason and appears on the review list.
    • Monitoring and migrations:
      • Error reports carry Sentry tags.
      • Migrations have a lock timeout.
      • The uptime job opens a "monitor not set up" issue.
    • Screens and copy:
      • Toasts sit above the phone bar.
      • Show me says when it is offline.
      • The report picture carries a synthetic marker.
      • Shared views note local settings.
      • The chronology CSV shows UMRN only.
      • 18 glossary entries are added.
      • The server checks the referrer's phone number.
    • Test and tooling additions:
      • A hard-case seed overlay, which D-131 allowlisted.
      • Mutant tests.
      • The movement diagram now follows the engine.
      • Hotspots, the import map guard and the mock-up production guard.
  • D-126 is recorded. The machine and test mismatch list is in docs/ward-flow/evidence/2026-11-10-machine-test-mismatches.md, and all 12 items are done. The front door notes are corrected.
  • Review fixes: all Copilot and CodeRabbit findings are fixed and resolved. One is deferred: reusing compareSecurityHeaders would change what fails the post-release check, so it needs its own PR.
  • Merged with main: main is merged in at 8f3b07282, after #1595. Each phone limit adds this PR's increase on top of the new limits on main.
  • Clinical fixes: these are in the separate held PR, #1599.

Checks

  • Passed locally:
    • vitest on the changed and touched test files, including all 149 shared-client test files.
    • Backend integration tests on a throwaway Postgres 16: 703 of 703 pass.
    • Typecheck, lint, knip, Prettier, and the organise and docs checks.
  • After the merge with main: the CSS, budget and journey tests pass (120 of 120), and the journey check passes.
  • Not run locally: the full suite and the hosted build. CI runs both.

Generated by Claude Code

🤖 Generated with Claude Code

https://claude.ai/code/session_01GxPPxmhDVdNGdg88uwRe7v