8.1 KiB
Fleet Ops — final acceptance evidence
Accepted implementation
- Deployment source marker: current
master; the application image was built from runtime commitcb7edb0and the following commits contain acceptance/evidence only. - Live demo:
http://192.168.10.150:1236— public passwordless synthetic demo. - Deployment: Unraid
/mnt/user/appdata/mobilityops, Compose projectmobilityops. - Database migration:
b913a72e8c14 (head). - Product name: Fleet Ops; MobilityOps remains the technical repository/deployment ID.
Clean acceptance — 2026-08-10
Backend, isolated PostgreSQL: 241 passed, zero warnings
Playwright, fresh local build: 152 passed (5.4 min)
Playwright, live production: 152 passed (4.7 min)
Ruff: clean
Mypy: clean across 58 source files
Frontend lint/build: passed
npm audit, full and prod: 0 vulnerabilities
Alembic: b913a72e8c14 (head)
The browser suite covers both roles, protected routes, booking/return/maintenance/user/privacy workflows, five data-quality resolution types, correlated audit, retryable orchestration, grounded knowledge in three languages, the complete guided demo, the recruiter highlights, keyboard behaviour and responsive layouts from 360 to 1440 px.
The provider matrix explicitly covers both valid title contracts: the deterministic provider uses Markdown frontmatter titles, while production RAGcore returns curated localized presentation titles. Both must include the language-specific source fragment. The focused live matrix passed 3/3, followed by the complete 152/152 green production run.
Production hand-off state
The final reset completed immediately before the verified Hub call at 2026-08-10T19:16Z and restored:
users 2 · customers 180 · vehicles 50 · bookings 254 · inspections 75
maintenance 40 · data-quality issues 33 · workflow runs 20
scenario_integrity.all_ready = true (5/5 scenarios)
API readiness is ready, PostgreSQL is up, and API, web, database, scheduled backup, Prometheus and Grafana are running healthy/current. No traceback or critical error appears in post-deployment API/backup logs.
A pre-deployment custom-format backup was created and independently verified by SHA-256 plus pg_restore --list:
/mnt/user/appdata/mobilityops/backups/postgres/mobilityops-20260810T185833Z.dump
External integration evidence
- Existing central n8n: configured, dispatch enabled and operational. All four expected workflows have recent healthy heartbeats. The reset state contains 19 successful runs, zero pending, zero unexpected failures and one explicitly synthetic failed-retry scenario.
- RAGcore: reachable and ready for tenant
northstar-mobility-demo, workspacemobilityops, collectioninternal-procedures. Exact identity lookups independently confirm 11/11 active published documents in each of NL/EN/FR; the latest n8n report separately records 33 synchronized documents and zero failures. The canonical parsed-artifact hash is not misrepresented as a raw-source hash. - ITWorx MCP Hub: registration is enabled, the Hub is reachable and Fleet Ops is operational. Three real
mobilityops.operations.summaryverification calls are audited under the Hub's tenant-bound client identity; the final short-lived bearer produced HTTP 200/JSON and HTTP 401 after immediate revocation. All exposed Fleet Ops tools remain read-only.
Recruiter and visual acceptance
The public entry now offers a direct 90-second Highlights route. It links three product actions to their engineering proof, while the Engineering workspace explains domain ownership, commit-before-orchestration, citation-bound AI, security and explicit scope.
Interactive live inspection confirmed:
- no horizontal overflow on Highlights or Engineering at desktop; automated coverage confirms 360/390 px mobile layouts;
- clear hierarchy, consistent primary actions and readable proof cards;
- compact remaining-attention action (count badge, two-line label, small directional icon) without the former stretched empty panel;
- truthful live n8n/RAGcore/MCP labels after reset, including 11 verified RAG documents and the real Hub client/tool evidence;
- no dead links, placeholder numbers or unexplained raw data-quality references;
- complete synthetic-data disclosure on login and in the persistent shell.
Current evidence images are in artifacts/evidence/screenshots/:
1-login.png2-highlights.png3-engineering-story.png4-dashboard.png5-knowledge-evidence.png6-highlights-mobile.png
Deliberate boundary
This is a completed, production-shaped public demo—not claimed customer adoption and not a general ERP. Accounting, payments, public reservations, CRM, inventory, HR, a second RAG stack, a separate MCP server and autonomous write agents remain intentionally excluded. A real personal-data rollout would additionally require the adopting organisation's identity provider, retention approvals, secrets lifecycle, alert ownership and disaster-recovery governance.
Local M54 upgrade candidate — 2026-08-23 (not released)
This evidence supplements, but does not replace, the production hand-off above. The local working tree contains an intentionally uncommitted recruiter UX and resilience upgrade; production, its database and the production screenshots were not changed.
Implemented evidence includes the interactive five-step system flow, hardened booking/return/ data-quality invariants, atomic cross-replica demo reset, exact n8n callback and dispatcher leases, citation-bound RAGcore answers, deterministic seed regeneration and abortable, race-safe frontend data loading. Keyboard, forced-colours, reduced-motion and responsive behaviour remain part of the established Fleet Ops design system.
Exact local validation commands and results:
docker compose -p mobilityops-m54-final -f compose.yaml -f compose.test.yaml run --build --rm api pytest
331 passed in 94.19s
focused DQ-03 edge/concurrency suite
44 passed
combined RAGcore, dispatcher and data-quality suite
121 passed
docker compose -p mobilityops-lint -f compose.yaml -f compose.test.yaml run --build --rm --no-deps api ruff check app tests
All checks passed
docker compose -p mobilityops-lint -f compose.yaml -f compose.test.yaml run --build --rm --no-deps api mypy app
Success: no issues found in 62 source files
cd frontend && npm run lint
passed
cd frontend && npm run build && npm run budget
passed
python scripts/check-source-budgets.py
passed; data-quality service 799/900 lines; main CSS 76342/78000 bytes;
architecture CSS 8057/9000 bytes; data-quality CSS 6525/8000 bytes
cd frontend && npx playwright test
171 passed (6.9m) in one uninterrupted run against the rebuilt release container
global-search shortcut regression, repeated against the release container
10 passed in 10 consecutive repetitions
docker compose -p mobilityops-contracts -f compose.yaml -f compose.test.yaml run --build --rm --no-deps --volume "C:\Projects\MobilityOps:/repo" --workdir /repo/backend api python ../scripts/check-contracts.py
OpenAPI, event, MCP and n8n contracts are synchronized
cd frontend && npm audit --omit=dev
0 vulnerabilities
The final local reset restored 2 users / 180 customers / 50 vehicles / 254 bookings / 75 inspections / 40 maintenance records / 33 data-quality issues / 20 workflow runs, with all
five synthetic scenarios ready. API readiness is ready, PostgreSQL is up, the rebuilt
API/web stack remains available, and the final 20-minute log scan contains no traceback,
critical, unhandled, panic, fatal or emergency hit. git diff --check is clean.
In-app browser inspection covered the login, Dashboard and Engineering surfaces at desktop
and 390×844. It confirmed zero horizontal overflow, no alert or console errors, the intended
one-column mobile flow, readable mobile cards and consistent selected-step feedback. The local
Compose candidate is healthy at http://localhost:1228. A release commit/tag, production
backup and deployment remain deferred until explicit authorization; production and its data
were not touched by M54.