polish: rebrand to Fleet Ops, add trilingual i18n, adaptive demo guide, and UX overhaul

Rebrands the product from MobilityOps to Fleet Ops across the UI, backend defaults and
knowledge base, and makes nl-BE/en-GB/fr-BE full first-class languages: i18next with
eager-bundled per-namespace resources, a persisted accessible language switcher (topbar
and mobile drawer), locale-aware date/number formatting, and a coverage test that fails
the build on any missing or empty translation key.

Backend dynamic content (demo scenarios, blocked-reason text, integration status) moves
from fixed English/Dutch prose to stable message codes + params so the frontend can
localize it; the demo knowledge base gains a fully translated NL/EN/FR procedure corpus
(11 documents each) with per-language retrieval and localized evidence-state messages.

The Demo Guide becomes breakpoint-adaptive: a docked rail on extra-wide desktop, a
floating panel that auto-collapses to a persistent, closable progress chip on standard
desktop/tablet, and a collapsed/half/full bottom sheet on mobile -- with scroll+focus+
highlight on "go to this step", Escape handling, and reduced-motion support.

The Data Quality Workbench gets accessible choice-card decisions with a clear primary/
secondary/tertiary action hierarchy; the Automation ledger groups repeated successes and
uses meaningful short refs; the Audit trail groups events by correlation id with human
action labels and readable before/after diffs. Attention Queue, Today's movements,
Vehicles, Bookings and Data Quality rows are fully clickable (stretched-link pattern)
with independent secondary links, keyboard support and mobile touch targets.

Fixes a topbar overflow on mobile caused by the new language switcher (moved into the
mobile drawer at <=960px) and two dangling aria-labelledby references introduced this
session. Updates all affected Playwright specs for the new nl-BE default and the new
Audit/DemoGuide DOM structure, and adds new i18n-coverage, demo-guide-adaptive and
clickable-rows specs. 131 backend tests, Ruff and mypy, and 71 Playwright tests pass.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
NuklearRabbit
2026-08-03 18:33:22 +02:00
co-authored by Claude Sonnet 5
parent 257a4cf6c0
commit 337f8716bb
127 changed files with 5529 additions and 1287 deletions
@@ -0,0 +1,21 @@
---
document_id: vehicle-checkout-procedure
title: Vehicle checkout procedure
version: "1.2"
effective_date: 2026-06-01
department: Rental Operations
status: active
---
# Vehicle checkout procedure
## 1. Required checks
Before a vehicle leaves the site, the rental employee must confirm the active booking, customer identity, driving licence and required signed documents. The recorded starting odometer must not be lower than the vehicle's current canonical odometer.
## 2. Vehicle condition
Complete the checkout inspection, record fuel level and visible pre-existing damage, and confirm that no blocking maintenance or data-quality issue is open.
## 3. Release
Only a vehicle with an approved checkout inspection may be set to rented. When a critical discrepancy is found, keep the vehicle blocked and escalate to Operations.
@@ -0,0 +1,25 @@
---
document_id: vehicle-return-procedure
title: Vehicle return procedure
version: "2.0"
effective_date: 2026-07-01
department: Rental Operations
status: active
---
# Vehicle return procedure
## 1. Register the return
Open the active booking and record the ending odometer, fuel level, cleanliness, visible damage, technical warnings and relevant notes.
## 2. Validate the reading
A submitted odometer below the previous canonical reading must never replace the canonical value. Register the inspection, create a data-quality issue and request human review.
## 3. Determine next state
Damage or a technical warning requires a blocked state. A reached service threshold requires maintenance. Otherwise the vehicle moves to cleaning before it can become available.
## 4. Follow-up
The return automation may create a cleaning or maintenance follow-up, but MobilityOps remains the source of truth for the vehicle state.
@@ -0,0 +1,21 @@
---
document_id: damage-procedure
title: Damage handling procedure
version: "1.3"
effective_date: 2026-06-15
department: Operations
status: active
---
# Damage handling procedure
## 1. Immediate actions
When a vehicle returns with visible or reported damage, mark damage in the return inspection, add a concise factual description and keep the vehicle blocked. Do not promise the customer a repair cost or liability decision.
## 2. Evidence
Record at least four photographs in the source inspection system: full affected side, close view, wider context and vehicle registration. MobilityOps may store only the evidence reference in this PoC.
## 3. Escalation
Create an Operations review before any new rental. A vehicle with unresolved damage may not be marked available even when a future booking exists.
@@ -0,0 +1,21 @@
---
document_id: odometer-anomaly-guideline
title: Odometer anomaly guideline
version: "1.1"
effective_date: 2026-05-20
department: Operations
status: active
---
# Odometer anomaly guideline
## 1. Lower reading
If a new reading is lower than the canonical odometer, preserve the submitted reading as evidence but do not lower the canonical value. Check for digit transposition, incorrect vehicle selection or a source-system import error.
## 2. Resolution
An Operations Manager may resolve the issue after checking the original inspection. Correct only the erroneous inspection or source mapping; do not rewrite valid historical readings.
## 3. Escalation threshold
Any unexplained reduction or a single increase above 2,500 kilometres during one rental requires review.
@@ -0,0 +1,21 @@
---
document_id: cleaning-checklist
title: Vehicle cleaning checklist
version: "1.4"
effective_date: 2026-06-10
department: Fleet Preparation
status: active
---
# Vehicle cleaning checklist
## 1. Interior
Remove waste, inspect upholstery, clean kitchen and sanitary surfaces, and confirm that the inventory checklist is complete.
## 2. Exterior
Inspect windows, lights, tyres and bodywork while cleaning. Report newly observed damage rather than silently completing the task.
## 3. Completion
Cleaning completion alone does not make a blocked or maintenance vehicle available. MobilityOps derives availability from all active restrictions.
@@ -0,0 +1,21 @@
---
document_id: maintenance-escalation
title: Maintenance escalation procedure
version: "1.1"
effective_date: 2026-04-01
department: Workshop
status: active
---
# Maintenance escalation procedure
## 1. Triggers
Escalate when a technical warning is reported, the service threshold is reached, a safety-related defect is observed or an existing maintenance block remains unresolved.
## 2. State
Set or retain the maintenance state. A future booking does not override a maintenance restriction.
## 3. Release
Only an authorised maintenance completion record and the absence of other blocking issues permit the vehicle to proceed to cleaning or availability.
@@ -0,0 +1,21 @@
---
document_id: customer-document-requirements
title: Required customer documents
version: "1.0"
effective_date: 2026-07-01
department: Rental Operations
status: active
---
# Required customer documents
## 1. Checkout requirements
The customer identity and valid driving licence must be verified in the source process before checkout. Required contractual documents must be signed.
## 2. Data minimisation
MobilityOps records only completion status and source references for this PoC. It does not store identity-document images.
## 3. Missing information
A booking with incomplete required documents is not ready for checkout and must appear as an attention item.
+21
View File
@@ -0,0 +1,21 @@
---
document_id: privacy-guideline
title: Operational privacy guideline
version: "1.0"
effective_date: 2026-03-01
department: Management
status: active
---
# Operational privacy guideline
## 1. Minimum access
Employees may access only the customer and booking information required for their role. External AI tools receive no unrestricted customer dataset.
## 2. Knowledge platform
Do not ingest customer personal data, booking notes or identity documents into the procedure knowledge collection. The collection is limited to approved internal guidance.
## 3. Logging
Audit action metadata and source references, but avoid copying unnecessary personal data into technical logs.
@@ -0,0 +1,21 @@
---
document_id: booking-conflict-procedure
title: Booking conflict procedure
version: "1.2"
effective_date: 2026-06-20
department: Operations
status: active
---
# Booking conflict procedure
## 1. Detection
Two reserved or active bookings for the same vehicle may not overlap. Imported legacy conflicts must be flagged as data-quality issues.
## 2. Resolution
Operations reviews both bookings, confirms source-system ownership and reassigns or cancels one booking in the authoritative booking system. MobilityOps records the reviewed outcome.
## 3. Safety
Do not automatically cancel a customer booking based only on an inferred conflict.
@@ -0,0 +1,21 @@
---
document_id: roles-and-escalation
title: Roles and escalation matrix
version: "1.0"
effective_date: 2026-06-01
department: Management
status: active
---
# Roles and escalation matrix
## Rental Employee
May view assigned operational records, complete checkout and return inspections, and consult procedures. May not merge customer records or reset the demo environment.
## Operations Manager
May review all attention and data-quality issues, merge confirmed duplicate customers, retry workflow delivery and reset the synthetic demo.
## Service integrations
n8n, RAGcore and ITWorx MCP Hub use separate scoped identities. Service identities do not inherit an interactive user role.
@@ -0,0 +1,21 @@
---
document_id: vehicle-availability-procedure
title: Vehicle availability procedure
version: "1.0"
effective_date: 2026-07-01
department: Rental Operations
status: active
---
# Vehicle availability procedure
## 1. Conditions
A vehicle may be set to available only when no blocking condition remains: no open damage, no unresolved technical warning, no pending maintenance block and no open critical data-quality issue against the vehicle.
## 2. Cleaning is not sufficient
Completing the cleaning checklist alone does not make a vehicle available. Availability is derived from the combined state of cleaning, maintenance and data-quality checks, not from any single step.
## 3. Confirmation
An authorised employee confirms the final check and the vehicle status changes to available. The change is recorded in the audit trail with the checks that were confirmed clear.