diff --git a/PROJECT_STATE.md b/PROJECT_STATE.md index 8053e89..38cf159 100644 --- a/PROJECT_STATE.md +++ b/PROJECT_STATE.md @@ -1187,12 +1187,36 @@ Handler — both net-new, not yet built. manual-reconstruction caveat as workflows 1-2: no literal export/download available), updated `n8n/workflows/MANIFEST.md` (all 4 workflows, workflow 3 still not-built) and `check_drift.py`'s known-workflows list. +- **Integration status page enriched with real per-workflow evidence** (commit + `4049c0c`): `N8nIntegrationStatus` now returns `workflows: N8nWorkflowEvidence[]` + (the 4 canonical workflows, each with real evidence — latest successful outbox + delivery for the return workflow, latest *service*-triggered `data_quality_scan_run` + audit event for the scan workflow so a manual UI-triggered scan doesn't fake n8n + evidence, latest `n8n_workflow_failure_registered` for the error handler, always + `built: false` / no evidence for the not-yet-built RAGcore sync), plus + `expected_workflow_count`/`known_workflow_count` and an `error_handler` summary + (total registered, latest failure + which workflow). New tests in + `backend/tests/test_integration_status.py` (all green, 159 backend tests total, + ruff/mypy clean). Frontend: `Automation.tsx` renders this as a localized workflow + table (EN/NL/FR, new `integrations:workflows.*` keys, technical workflow names under + a "Technical details" disclosure per the existing progressive-disclosure pattern). + Verified live in the browser both locally (Dutch locale, disclosure expand/collapse + confirmed) and **on the deployed Unraid server after this round's deploy**: correctly + shows "3 van 4 canonieke n8n-workflows hebben actuele evidentie van werking" with real + timestamps for the return/scan/error-handler workflows, "Nog Niet Gebouwd" for the + RAGcore sync, and the real error-handler registration from this session's live + testing. Deployed to Unraid (commit `4049c0c6b12fef3d948cd31f21119044143320d8`, + rebuilt both `api` and `web`, `/health` OK) — user re-approved this second deploy + separately from the first. +- **Operational lesson learned this round**: `docker compose run --rm api pytest` does + **not** reliably pick up source edits without an explicit `docker compose build api` + first — a test file edit silently kept running against the stale built image (test + count didn't change) until rebuilt. Always `docker compose build api` (and `web` for + frontend changes) before trusting a green result after backend/frontend edits in this + repo. - **Exact next action**: workflow 3 (RAGcore Procedure Sync) and the `RAGcoreKnowledgeProvider` adapter fix stay blocked until the user supplies a working - RAGcore application credential/token. Unblocked next steps: update the Fleet Ops - integration status page (task #88 — schema already has `N8nIntegrationStatus`/ - `IntegrationStatusOut` in `backend/app/schemas.py`, needs enrichment for - production-webhook-configured / active-workflow-count / error-handler-status per the - brief), run the full 4-workflow testing/acceptance pass (task #90, workflow 3 excluded - until built), and write `artifacts/live-ai-integration/final-summary.md` (task #91, - explicitly: no credentials or secret values in that file). + RAGcore application credential/token — this is now the only remaining blocker for + tasks #86, #90 (full 4-workflow acceptance pass), and #91 (final evidence doc, which + should honestly document workflow 3 as pending and note the "manual n8n editor test + runs don't trigger the Error Workflow" limitation found this round).