Repository review: bug fixes, Leave/Help/Export screens, demo pass, code health, CI setup (D-145)
Merged
BI
10h ago+2257+2257+0123456789012345678901234567890123456789-1235-1235-0123456789012345678901234567890123456789
Requested by Josh · project thread
This is the non-clinical part of the 11 November repository review. Josh approved it as D-145, which is recorded in docs/ward-flow/decisions.md. The clinical part is #1621, which has merged; Josh signed it off at 05:51 UTC, and that sign-off is recorded under D-145 here. Synthetic data only. No signed clinical value or clinical rule changes.
Screens (design review approved by Josh at 05:46 UTC, recorded under D-145)
- Leave page:
- Each overdue or absent row has an Open ward link.
- Print sits in the card head (icon-only on phones) and prints a clean A4 list.
- Searching "leave" now finds the page.
- Help: new Help for Leave, Today's review, Start a triage and the triage form (
help/ward-help-pages-more.ts). - Legal forms and Movements:
- Print and spreadsheet Export, without patient names, desktop only as on other lists.
- The CSV helper moved to the ward root (
ward-csv.ts), and Statistics re-uses it.
- Shared pattern:
ListExportButton's status line is visually hidden until it has text. - What's new: entry
2026-11-11-leave-print-and-exports.json.
Fixes
- Pull-hold lapse at the exact minute now uses the canonical
bedHoldLapsed. - Staff requests keep the shift the person chose, with a 5-minute tolerance that is not clinical.
REQUEST_WARD_STAFFgains a schema. - Typed times have one reader, and length of stay has one calculation.
- Demo code:
- A demo pass ends at once when
WARD_DEMO_CODEchanges. - A set code shorter than 12 characters (spaces and dashes not counted) counts as no code. This was added after #1615 merged; the tests pin the 11/12 boundary.
- A demo pass ends at once when
- The go/no-go checklist gains rows C8 (UMRN-free record ids) and C9 (
web-pushvendor check).
Code health
max-linescounts code lines only, and the baseline is re-set; main's later +5 for the reducer carries over.- Every React hook rule switch-off carries a reason.
- The side-rail helpers are shared.
- One shared CI setup step.
- Patch-level dependency updates.
Phone size limits
- Raised on top of main's values: ED +0.3, Movements +0.5 and Statistics +0.3 KB, each well within the 5 KB allowance.
- The reasons are in
docs/script-budget-history/2026-11-11-pr1623-repository-review.md.
Checks
- Local, on the branch merged with main
b3a9f5a:tsc --noEmit: exit 0.- eslint on changed files: clean.
- Focused vitest: front door and demo code, 108 passed; budget, import map and M124, all passed.
- Journey, doc facts and owner rulings checks: passed.
- Hosted CI: unit, coverage, build, static and browser checks passed on earlier heads. The release gate timed out on
maintoo; #1624 fixes that.
🤖 Generated with Claude Code