M39: harden application and acceptance gates
This commit is contained in:
+305
-12
@@ -1,25 +1,147 @@
|
||||
# File index
|
||||
|
||||
Tracked source, contract, documentation and configuration files. Release evidence and
|
||||
screenshots live under `artifacts/<release>/` and are omitted here for brevity.
|
||||
Regenerate with `git ls-files` when the tree changes.
|
||||
|
||||
- `.env.example`
|
||||
- `.gitattributes`
|
||||
- `.gitea/workflows/ci.yml`
|
||||
- `.gitignore`
|
||||
- `AGENTS.md`
|
||||
- `CLAUDE.md`
|
||||
- `FILE_INDEX.md`
|
||||
- `MASTER_BUILD_PROMPT.md`
|
||||
- `Makefile`
|
||||
- `PROJECT_STATE.md`
|
||||
- `README.md`
|
||||
- `START_HERE.md`
|
||||
- `backend/Dockerfile`
|
||||
- `backend/alembic.ini`
|
||||
- `backend/alembic/env.py`
|
||||
- `backend/alembic/script.py.mako`
|
||||
- `backend/alembic/versions/0a4c1d2e3f5b_idempotency_request_fingerprint.py`
|
||||
- `backend/alembic/versions/799d8800e241_outbox_last_error_code.py`
|
||||
- `backend/alembic/versions/a81d0ce9f662_oidc_identity.py`
|
||||
- `backend/alembic/versions/b7c7b536df85_operational_user_credentials.py`
|
||||
- `backend/alembic/versions/b913a72e8c14_customer_privacy_state.py`
|
||||
- `backend/alembic/versions/c24f6a9d013e_domain_constraints_indexes.py`
|
||||
- `backend/alembic/versions/c9498525abb5_initial_schema.py`
|
||||
- `backend/alembic/versions/d1f83bc64170_revoked_sessions.py`
|
||||
- `backend/alembic/versions/e7b08389f47f_idempotency_records.py`
|
||||
- `backend/alembic/versions/f43d829ab610_quality_work_queue.py`
|
||||
- `backend/app/__init__.py`
|
||||
- `backend/app/api/__init__.py`
|
||||
- `backend/app/api/deps.py`
|
||||
- `backend/app/api/routers/__init__.py`
|
||||
- `backend/app/api/routers/audit.py`
|
||||
- `backend/app/api/routers/auth.py`
|
||||
- `backend/app/api/routers/bookings.py`
|
||||
- `backend/app/api/routers/customers.py`
|
||||
- `backend/app/api/routers/dashboard.py`
|
||||
- `backend/app/api/routers/data_quality.py`
|
||||
- `backend/app/api/routers/demo.py`
|
||||
- `backend/app/api/routers/integration_status.py`
|
||||
- `backend/app/api/routers/integrations.py`
|
||||
- `backend/app/api/routers/knowledge.py`
|
||||
- `backend/app/api/routers/mcp_integrations.py`
|
||||
- `backend/app/api/routers/observability.py`
|
||||
- `backend/app/api/routers/privacy.py`
|
||||
- `backend/app/api/routers/search.py`
|
||||
- `backend/app/api/routers/users.py`
|
||||
- `backend/app/api/routers/vehicles.py`
|
||||
- `backend/app/api/routers/workflows.py`
|
||||
- `backend/app/cli.py`
|
||||
- `backend/app/core/__init__.py`
|
||||
- `backend/app/core/config.py`
|
||||
- `backend/app/core/db.py`
|
||||
- `backend/app/core/errors.py`
|
||||
- `backend/app/core/observability.py`
|
||||
- `backend/app/core/ratelimit.py`
|
||||
- `backend/app/core/security.py`
|
||||
- `backend/app/main.py`
|
||||
- `backend/app/models/__init__.py`
|
||||
- `backend/app/models/audit.py`
|
||||
- `backend/app/models/booking.py`
|
||||
- `backend/app/models/customer.py`
|
||||
- `backend/app/models/data_quality.py`
|
||||
- `backend/app/models/idempotency.py`
|
||||
- `backend/app/models/inspection.py`
|
||||
- `backend/app/models/maintenance.py`
|
||||
- `backend/app/models/mixins.py`
|
||||
- `backend/app/models/outbox.py`
|
||||
- `backend/app/models/revoked_session.py`
|
||||
- `backend/app/models/user.py`
|
||||
- `backend/app/models/vehicle.py`
|
||||
- `backend/app/schemas.py`
|
||||
- `backend/app/seed_loader.py`
|
||||
- `backend/app/services/__init__.py`
|
||||
- `backend/app/services/audit.py`
|
||||
- `backend/app/services/data_quality.py`
|
||||
- `backend/app/services/demo_manifest.py`
|
||||
- `backend/app/services/dispatcher.py`
|
||||
- `backend/app/services/integration_status.py`
|
||||
- `backend/app/services/knowledge/__init__.py`
|
||||
- `backend/app/services/knowledge/demo.py`
|
||||
- `backend/app/services/knowledge/procedures.py`
|
||||
- `backend/app/services/knowledge/ragcore.py`
|
||||
- `backend/app/services/operations.py`
|
||||
- `backend/app/services/returns.py`
|
||||
- `backend/app/services/sessions.py`
|
||||
- `backend/app/services/vehicle_status.py`
|
||||
- `backend/entrypoint.sh`
|
||||
- `backend/pyproject.toml`
|
||||
- `backend/requirements.lock`
|
||||
- `backend/scripts/generate_openapi.py`
|
||||
- `backend/tests/conftest.py`
|
||||
- `backend/tests/test_audit.py`
|
||||
- `backend/tests/test_auth.py`
|
||||
- `backend/tests/test_bookings.py`
|
||||
- `backend/tests/test_dashboard.py`
|
||||
- `backend/tests/test_data_quality.py`
|
||||
- `backend/tests/test_database_constraints.py`
|
||||
- `backend/tests/test_demo_manifest.py`
|
||||
- `backend/tests/test_dispatcher.py`
|
||||
- `backend/tests/test_hardening.py`
|
||||
- `backend/tests/test_health.py`
|
||||
- `backend/tests/test_integration_status.py`
|
||||
- `backend/tests/test_integrations.py`
|
||||
- `backend/tests/test_knowledge.py`
|
||||
- `backend/tests/test_mcp_integrations.py`
|
||||
- `backend/tests/test_migrations.py`
|
||||
- `backend/tests/test_observability.py`
|
||||
- `backend/tests/test_operational_auth.py`
|
||||
- `backend/tests/test_privacy.py`
|
||||
- `backend/tests/test_return.py`
|
||||
- `backend/tests/test_search.py`
|
||||
- `backend/tests/test_seed.py`
|
||||
- `backend/tests/test_users.py`
|
||||
- `backend/tests/test_vehicle_status.py`
|
||||
- `backend/tests/test_vehicles.py`
|
||||
- `backend/tests/test_workflows.py`
|
||||
- `compose.observability.yaml`
|
||||
- `compose.test.yaml`
|
||||
- `compose.unraid.yaml`
|
||||
- `compose.yaml`
|
||||
- `contracts/events.schema.json`
|
||||
- `contracts/mcp-tools.json`
|
||||
- `contracts/openapi.yaml`
|
||||
- `contracts/ragcore-contract-assumptions.md`
|
||||
- `deploy/observability/alerts.yml`
|
||||
- `deploy/observability/grafana/dashboards/mobilityops-overview.json`
|
||||
- `deploy/observability/grafana/provisioning/dashboards/mobilityops.yml`
|
||||
- `deploy/observability/grafana/provisioning/datasources/prometheus.yml`
|
||||
- `deploy/observability/prometheus.yml`
|
||||
- `deploy/unraid/README.md`
|
||||
- `deploy/unraid/backup-postgres.sh`
|
||||
- `deploy/unraid/configure-env.sh`
|
||||
- `deploy/unraid/prune-postgres-backups.sh`
|
||||
- `deploy/unraid/restore-postgres.sh`
|
||||
- `deploy/unraid/scheduled-backup.sh`
|
||||
- `deploy/unraid/setup-existing-n8n.sh`
|
||||
- `deploy/unraid/setup-n8n.sh`
|
||||
- `deploy/unraid/setup-scheduled-scan.sh`
|
||||
- `deploy/unraid/verify-postgres-backups.sh`
|
||||
- `docs/00-product-brief.md`
|
||||
- `docs/01-scope-and-non-goals.md`
|
||||
- `docs/02-user-stories.md`
|
||||
@@ -38,32 +160,203 @@
|
||||
- `docs/15-build-plan.md`
|
||||
- `docs/16-portfolio-case-study.md`
|
||||
- `docs/17-runbook.md`
|
||||
- `docs/18-privacy-governance.md`
|
||||
- `docs/19-visual-product-roadmap.md`
|
||||
- `docs/deferred.md`
|
||||
- `docs/demo-release/current-demo-gap-audit.md`
|
||||
- `docs/demo-release/demo-concept.md`
|
||||
- `docs/demo-release/demo-data.md`
|
||||
- `docs/demo-release/demo-guide.md`
|
||||
- `docs/demo-release/demo-runbook.md`
|
||||
- `docs/demo-release/demo-scenarios.md`
|
||||
- `docs/design/current-ux-audit.md`
|
||||
- `docs/design/design-directions.md`
|
||||
- `docs/design/design-system.md`
|
||||
- `docs/design/implementation-validation.md`
|
||||
- `docs/design/stitch-manifest.md`
|
||||
- `docs/final-integrations/ai-operations-brief-runbook.md`
|
||||
- `docs/final-integrations/current-state-audit.md`
|
||||
- `docs/final-product-polish/audit.md`
|
||||
- `docs/fleet-ops-correction/current-gap-audit.md`
|
||||
- `docs/fleet-ops-correction/i18n-inventory.md`
|
||||
- `docs/fleet-ops-correction/vehicle-status-decision-table.md`
|
||||
- `docs/fleet-ops-final-localization/audit.md`
|
||||
- `docs/functional-completion/current-functional-audit.md`
|
||||
- `docs/functional-completion/server-baseline.md`
|
||||
- `docs/live-ai-integration/n8n-current-state.md`
|
||||
- `frontend/Dockerfile`
|
||||
- `frontend/e2e/_capture-demo-screenshots.spec.ts`
|
||||
- `frontend/e2e/_capture-recruiter-screenshots.spec.ts`
|
||||
- `frontend/e2e/_capture-screenshots.spec.ts`
|
||||
- `frontend/e2e/clickable-rows.spec.ts`
|
||||
- `frontend/e2e/demo-accessibility.spec.ts`
|
||||
- `frontend/e2e/demo-entry.spec.ts`
|
||||
- `frontend/e2e/demo-guide.spec.ts`
|
||||
- `frontend/e2e/demo-legibility.spec.ts`
|
||||
- `frontend/e2e/demo.spec.ts`
|
||||
- `frontend/e2e/error-messages.spec.ts`
|
||||
- `frontend/e2e/fleet-ops-correction.spec.ts`
|
||||
- `frontend/e2e/greeting-live.spec.ts`
|
||||
- `frontend/e2e/greeting.spec.ts`
|
||||
- `frontend/e2e/guided-demo-full.spec.ts`
|
||||
- `frontend/e2e/i18n-coverage.spec.ts`
|
||||
- `frontend/e2e/interactive-elements.spec.ts`
|
||||
- `frontend/e2e/operational-workflows.spec.ts`
|
||||
- `frontend/e2e/privacy.spec.ts`
|
||||
- `frontend/e2e/recruiter-polish.spec.ts`
|
||||
- `frontend/e2e/responsive-i18n.spec.ts`
|
||||
- `frontend/e2e/roadmap-regression.spec.ts`
|
||||
- `frontend/e2e/ui-redesign.spec.ts`
|
||||
- `frontend/index.html`
|
||||
- `frontend/nginx.conf`
|
||||
- `frontend/package-lock.json`
|
||||
- `frontend/package.json`
|
||||
- `frontend/playwright.config.ts`
|
||||
- `frontend/public/favicon.svg`
|
||||
- `frontend/public/og-fleet-ops.svg`
|
||||
- `frontend/src/App.tsx`
|
||||
- `frontend/src/api/apiError.ts`
|
||||
- `frontend/src/api/client.ts`
|
||||
- `frontend/src/api/errorMessages.ts`
|
||||
- `frontend/src/api/types.ts`
|
||||
- `frontend/src/components/Badge.tsx`
|
||||
- `frontend/src/components/CheckoutForm.tsx`
|
||||
- `frontend/src/components/DemoBadge.tsx`
|
||||
- `frontend/src/components/DemoGuide.tsx`
|
||||
- `frontend/src/components/Icons.tsx`
|
||||
- `frontend/src/components/LanguageSwitcher.tsx`
|
||||
- `frontend/src/components/Layout.tsx`
|
||||
- `frontend/src/components/PageChrome.tsx`
|
||||
- `frontend/src/components/Pagination.tsx`
|
||||
- `frontend/src/components/RequireAuth.tsx`
|
||||
- `frontend/src/components/ReturnForm.tsx`
|
||||
- `frontend/src/components/VehicleMaintenanceActions.tsx`
|
||||
- `frontend/src/context/AuthContext.tsx`
|
||||
- `frontend/src/context/DemoGuideContext.tsx`
|
||||
- `frontend/src/context/DemoManifestContext.tsx`
|
||||
- `frontend/src/data/demoGuideSteps.ts`
|
||||
- `frontend/src/data/evidenceSignals.ts`
|
||||
- `frontend/src/data/integrationLabels.ts`
|
||||
- `frontend/src/hooks/useViewportTier.ts`
|
||||
- `frontend/src/i18n/brusselsDateTime.ts`
|
||||
- `frontend/src/i18n/config.ts`
|
||||
- `frontend/src/i18n/format.ts`
|
||||
- `frontend/src/i18n/greeting.ts`
|
||||
- `frontend/src/i18n/locales/en-GB/accessibility.json`
|
||||
- `frontend/src/i18n/locales/en-GB/audit.json`
|
||||
- `frontend/src/i18n/locales/en-GB/auth.json`
|
||||
- `frontend/src/i18n/locales/en-GB/bookings.json`
|
||||
- `frontend/src/i18n/locales/en-GB/common.json`
|
||||
- `frontend/src/i18n/locales/en-GB/dashboard.json`
|
||||
- `frontend/src/i18n/locales/en-GB/demo.json`
|
||||
- `frontend/src/i18n/locales/en-GB/errors.json`
|
||||
- `frontend/src/i18n/locales/en-GB/fleet.json`
|
||||
- `frontend/src/i18n/locales/en-GB/integrations.json`
|
||||
- `frontend/src/i18n/locales/en-GB/knowledge.json`
|
||||
- `frontend/src/i18n/locales/en-GB/navigation.json`
|
||||
- `frontend/src/i18n/locales/en-GB/operations.json`
|
||||
- `frontend/src/i18n/locales/en-GB/privacy.json`
|
||||
- `frontend/src/i18n/locales/en-GB/quality.json`
|
||||
- `frontend/src/i18n/locales/en-GB/returns.json`
|
||||
- `frontend/src/i18n/locales/fr-BE/accessibility.json`
|
||||
- `frontend/src/i18n/locales/fr-BE/audit.json`
|
||||
- `frontend/src/i18n/locales/fr-BE/auth.json`
|
||||
- `frontend/src/i18n/locales/fr-BE/bookings.json`
|
||||
- `frontend/src/i18n/locales/fr-BE/common.json`
|
||||
- `frontend/src/i18n/locales/fr-BE/dashboard.json`
|
||||
- `frontend/src/i18n/locales/fr-BE/demo.json`
|
||||
- `frontend/src/i18n/locales/fr-BE/errors.json`
|
||||
- `frontend/src/i18n/locales/fr-BE/fleet.json`
|
||||
- `frontend/src/i18n/locales/fr-BE/integrations.json`
|
||||
- `frontend/src/i18n/locales/fr-BE/knowledge.json`
|
||||
- `frontend/src/i18n/locales/fr-BE/navigation.json`
|
||||
- `frontend/src/i18n/locales/fr-BE/operations.json`
|
||||
- `frontend/src/i18n/locales/fr-BE/privacy.json`
|
||||
- `frontend/src/i18n/locales/fr-BE/quality.json`
|
||||
- `frontend/src/i18n/locales/fr-BE/returns.json`
|
||||
- `frontend/src/i18n/locales/nl-BE/accessibility.json`
|
||||
- `frontend/src/i18n/locales/nl-BE/audit.json`
|
||||
- `frontend/src/i18n/locales/nl-BE/auth.json`
|
||||
- `frontend/src/i18n/locales/nl-BE/bookings.json`
|
||||
- `frontend/src/i18n/locales/nl-BE/common.json`
|
||||
- `frontend/src/i18n/locales/nl-BE/dashboard.json`
|
||||
- `frontend/src/i18n/locales/nl-BE/demo.json`
|
||||
- `frontend/src/i18n/locales/nl-BE/errors.json`
|
||||
- `frontend/src/i18n/locales/nl-BE/fleet.json`
|
||||
- `frontend/src/i18n/locales/nl-BE/integrations.json`
|
||||
- `frontend/src/i18n/locales/nl-BE/knowledge.json`
|
||||
- `frontend/src/i18n/locales/nl-BE/navigation.json`
|
||||
- `frontend/src/i18n/locales/nl-BE/operations.json`
|
||||
- `frontend/src/i18n/locales/nl-BE/privacy.json`
|
||||
- `frontend/src/i18n/locales/nl-BE/quality.json`
|
||||
- `frontend/src/i18n/locales/nl-BE/returns.json`
|
||||
- `frontend/src/i18n/useGreetingPeriod.ts`
|
||||
- `frontend/src/main.tsx`
|
||||
- `frontend/src/pages/AboutDemo.tsx`
|
||||
- `frontend/src/pages/Audit.tsx`
|
||||
- `frontend/src/pages/Automation.tsx`
|
||||
- `frontend/src/pages/BookingCreate.tsx`
|
||||
- `frontend/src/pages/BookingDetail.tsx`
|
||||
- `frontend/src/pages/Bookings.tsx`
|
||||
- `frontend/src/pages/Dashboard.tsx`
|
||||
- `frontend/src/pages/DataQuality.tsx`
|
||||
- `frontend/src/pages/DataQualityIssueDetail.tsx`
|
||||
- `frontend/src/pages/Highlights.tsx`
|
||||
- `frontend/src/pages/Knowledge.tsx`
|
||||
- `frontend/src/pages/Login.tsx`
|
||||
- `frontend/src/pages/Privacy.tsx`
|
||||
- `frontend/src/pages/Scenarios.tsx`
|
||||
- `frontend/src/pages/Users.tsx`
|
||||
- `frontend/src/pages/VehicleDetail.tsx`
|
||||
- `frontend/src/pages/Vehicles.tsx`
|
||||
- `frontend/src/product.ts`
|
||||
- `frontend/src/styles.css`
|
||||
- `frontend/src/vite-env.d.ts`
|
||||
- `frontend/tsconfig.json`
|
||||
- `frontend/vite.config.ts`
|
||||
- `knowledge/manifest.json`
|
||||
- `knowledge/procedures/01-vehicle-checkout.md`
|
||||
- `knowledge/procedures/02-vehicle-return.md`
|
||||
- `knowledge/procedures/03-damage-handling.md`
|
||||
- `knowledge/procedures/04-odometer-anomalies.md`
|
||||
- `knowledge/procedures/05-cleaning-checklist.md`
|
||||
- `knowledge/procedures/06-maintenance-escalation.md`
|
||||
- `knowledge/procedures/07-customer-documents.md`
|
||||
- `knowledge/procedures/08-privacy.md`
|
||||
- `knowledge/procedures/09-booking-conflicts.md`
|
||||
- `knowledge/procedures/10-roles-and-escalation.md`
|
||||
- `knowledge/procedures/en-GB/01-vehicle-checkout.md`
|
||||
- `knowledge/procedures/en-GB/02-vehicle-return.md`
|
||||
- `knowledge/procedures/en-GB/03-damage-handling.md`
|
||||
- `knowledge/procedures/en-GB/04-odometer-anomalies.md`
|
||||
- `knowledge/procedures/en-GB/05-cleaning-checklist.md`
|
||||
- `knowledge/procedures/en-GB/06-maintenance-escalation.md`
|
||||
- `knowledge/procedures/en-GB/07-customer-documents.md`
|
||||
- `knowledge/procedures/en-GB/08-privacy.md`
|
||||
- `knowledge/procedures/en-GB/09-booking-conflicts.md`
|
||||
- `knowledge/procedures/en-GB/10-roles-and-escalation.md`
|
||||
- `knowledge/procedures/en-GB/11-vehicle-availability.md`
|
||||
- `knowledge/procedures/fr-BE/01-vehicle-checkout.md`
|
||||
- `knowledge/procedures/fr-BE/02-vehicle-return.md`
|
||||
- `knowledge/procedures/fr-BE/03-damage-handling.md`
|
||||
- `knowledge/procedures/fr-BE/04-odometer-anomalies.md`
|
||||
- `knowledge/procedures/fr-BE/05-cleaning-checklist.md`
|
||||
- `knowledge/procedures/fr-BE/06-maintenance-escalation.md`
|
||||
- `knowledge/procedures/fr-BE/07-customer-documents.md`
|
||||
- `knowledge/procedures/fr-BE/08-privacy.md`
|
||||
- `knowledge/procedures/fr-BE/09-booking-conflicts.md`
|
||||
- `knowledge/procedures/fr-BE/10-roles-and-escalation.md`
|
||||
- `knowledge/procedures/fr-BE/11-vehicle-availability.md`
|
||||
- `knowledge/procedures/nl-BE/01-vehicle-checkout.md`
|
||||
- `knowledge/procedures/nl-BE/02-vehicle-return.md`
|
||||
- `knowledge/procedures/nl-BE/03-damage-handling.md`
|
||||
- `knowledge/procedures/nl-BE/04-odometer-anomalies.md`
|
||||
- `knowledge/procedures/nl-BE/05-cleaning-checklist.md`
|
||||
- `knowledge/procedures/nl-BE/06-maintenance-escalation.md`
|
||||
- `knowledge/procedures/nl-BE/07-customer-documents.md`
|
||||
- `knowledge/procedures/nl-BE/08-privacy.md`
|
||||
- `knowledge/procedures/nl-BE/09-booking-conflicts.md`
|
||||
- `knowledge/procedures/nl-BE/10-roles-and-escalation.md`
|
||||
- `knowledge/procedures/nl-BE/11-vehicle-availability.md`
|
||||
- `n8n/README.md`
|
||||
- `n8n/workflows/MANIFEST.md`
|
||||
- `n8n/workflows/fleet-ops-vehicle-return.json`
|
||||
- `n8n/workflows/fleet-ops-data-quality-scan.json`
|
||||
- `n8n/workflows/check_drift.py`
|
||||
- `n8n/workflows/fleet-ops-data-quality-scan.json`
|
||||
- `n8n/workflows/fleet-ops-error-handler.json`
|
||||
- `n8n/workflows/fleet-ops-ragcore-procedure-sync.json`
|
||||
- `n8n/workflows/fleet-ops-vehicle-return.json`
|
||||
- `n8n/workflows/merge_credential_refs.py`
|
||||
- `scripts/run-isolated-tests.sh`
|
||||
- `seed/README.md`
|
||||
- `seed/bookings.csv`
|
||||
- `seed/customers.csv`
|
||||
|
||||
Reference in New Issue
Block a user