4.5 KiB
MobilityOps premium UI evidence summary
Date: 2026-08-02
Branch: design/mobilityops-premium-ui
Baseline revision: dfabb41582e302f45a3de826f85f531bf23dfc8b
Revision: final branch head reported in the review handoff
Review URL: http://192.168.10.150:1236
Outcome
The working PoC was transformed into the Control Rail operational interface without changing backend contracts or adding scope. All existing journeys remain functional; return registration gained an evidence-based review boundary before commit.
Evidence index
- Baseline audit:
docs/design/current-ux-audit.md - Three directions and decision:
docs/design/design-directions.md - Design tokens and component rules:
docs/design/design-system.md - Stitch resource IDs:
docs/design/stitch-manifest.md - Implemented visual validation:
docs/design/implementation-validation.md - Baseline captures:
artifacts/design-validation/current/ - Stitch captures:
artifacts/design-validation/stitch/ - Final responsive captures:
artifacts/design-validation/implementation/
Major implementation changes
- Responsive Control Rail shell with compact top bar, desktop rail, off-canvas menu and labelled mobile bottom navigation.
- Live readiness band, filterable Attention queue, movement timeline, honest integration pulse and persisted activity on the operations dashboard.
- Searchable fleet and booking registries; booking client pagination limits the DOM to 25 operational rows; responsive tables retain field labels.
- Capture → review → result return workflow with calculated consequence preview and no write request before confirmation.
- Match/conflict duplicate comparison, evidence-first knowledge, system-health cards and expandable audit metadata.
- Inline SVG product mark, Feather-like line icon set, CSS control-centre illustration, timeline/status motion and reduced-motion fallback; no image or motion dependency.
Validation
| Gate | Result |
|---|---|
| Backend tests | 66 passed |
| Backend lint | ruff passed |
| Backend types | mypy: 0 issues in 44 files |
| Frontend types/build | passed; 59 modules; 240.24 kB JS and 36.63 kB CSS before gzip |
| Browser journeys | 19 passed locally |
| Horizontal overflow | none at 390/768/1280/1440 px |
| Accessibility | named landmarks, skip link, visible focus, text-plus-shape status, labelled mobile rows, reduced-motion support |
| Deployed browser smoke | passed on all 10 authenticated routes plus login at desktop and mobile sizes |
| Console/network | 0 browser warnings/errors; 7 authenticated API paths returned HTTP 200 |
| Deployed global search | Ctrl+K plus MO-024 navigation passed against the review URL |
All displayed operational counts remain derived from the existing persisted API data. Synthetic-data labelling is persistent on login and authenticated surfaces.
Deployed evidence is stored in artifacts/design-validation/implementation/deployed/.
The review stack reports healthy PostgreSQL/API state, HTTP 200 from the web application,
and healthy state from the server's existing n8n at port 5678. A synthetic return reached
succeeded on attempt 1 through that shared n8n and its MobilityOps callback; the demo was
then reset to its deterministic state.
Performance observations
No runtime font, image or animation dependency was added. The application uses inline SVG and CSS visuals, and the production bundle remains appropriate for this internal PoC.
Known limitations
- Global search resolves Control Rail sections and
MO-*,BK-*,DQ-*public references. It intentionally does not offer customer lookup because the locked PoC has no customer detail route or cross-entity search API. - The repository retains a bundled n8n service for standalone local clean-checkout demos.
The Unraid overlay keeps it behind the opt-in
bundled-n8nprofile; the live review deployment uses the server's existing shared n8n instead. - The MCP Hub state is correctly shown as not configured in the current PoC rather than simulated as healthy.
- Live RAGcore and MCP Hub round trips remain subject to the existing environment limits
documented in
PROJECT_STATE.md; their degradation behavior is unchanged.
Rollback
The accepted baseline remains reachable at commit
dfabb41582e302f45a3de826f85f531bf23dfc8b. To roll back the review deployment without
rewriting git history, archive that revision, extract it over the application source on
Unraid while preserving .env and Docker volumes, and run
docker compose -p mobilityops up -d --build. Verify /health and port 1236 afterwards.