M18: implement operational workspaces

This commit is contained in:
NuklearRabbit
2026-08-10 12:41:28 +02:00
parent 8030753dbc
commit fe06ff75a1
33 changed files with 1082 additions and 95 deletions
+23
View File
@@ -2436,3 +2436,26 @@ evidence yet."
feedback.
- Exact next action: turn the data-quality queue, booking planning, fleet overview and
user administration into complete daily operational workspaces.
## M18 — daily operational workspaces (2026-08-10)
- Turned data quality into an owned work queue: every newly detected open issue receives
a severity-based SLA deadline (4h high, 1d medium, 3d low), managers can filter by
assignee/overdue state and assign or reschedule up to 25 selected issues atomically.
Every change is row-locked, validated against an active user and independently audited.
- Added the PostgreSQL ownership/deadline migration with indexed nullable assignment,
`ON DELETE SET NULL`, live-data backfill and deterministic demo-reset deadlines.
- Upgraded booking planning with operational-priority ordering, inclusive date-window,
location and explicit sort filters plus Today/Upcoming presets. The default no longer
leads with the furthest-future booking.
- Upgraded the fleet register with exact location filtering, next-booking context,
remaining service distance and explicit attention reasons (blocked, service due or
open quality issue) instead of one unexplained warning label.
- Completed user administration: managers can now edit names/roles, reset passwords and
activate/deactivate accounts from the UI; existing self-demotion/deactivation guards
and auditing remain authoritative in the API.
- Evidence: frontend TypeScript production build passed; ruff and mypy passed; focused
PostgreSQL suites **58 passed**; migration applied in the isolated stack; OpenAPI was
regenerated. E2E coverage now includes bulk queue assignment and full user editing.
- Exact next action: split the frontend bundle, harden mobile layout and operational
backup/deployment controls, then run clean full acceptance and redeploy.