4.0 KiB
MobilityOps premium UI evidence summary
Date: 2026-08-02
Branch: design/mobilityops-premium-ui
Baseline revision: dfabb41582e302f45a3de826f85f531bf23dfc8b
Final design revision: b3946af4e0e14f2a3acecd212e9f0079e3028fca
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; 238.66 kB JS and 36.54 kB CSS before gzip |
| Browser journeys | 18 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 |
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 {"status":"ok"} from n8n's internal health endpoint.
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
- The global search visual is a non-submitting orientation cue because no cross-entity query API exists; all route-level search and filters are live. It is intentionally not presented as an action button.
- 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.