The route parity spec v1 required machine-readable evidence in CI and explicit documentation closure for EF-02/EF-03/EF-04. The repository had parity checks, but no uploaded parity artifact and incomplete traceability in docs.
Cause and User Impact
Without a persisted CI artifact, route coverage proof depended on raw logs only. This made regressions harder to audit and slowed release validation for WebUI/backend parity.
Root Cause
The parity checker emitted console output only and CI did not publish an artifact. Spec tracking docs were not fully synchronized with the implementation evidence.
Fix
This PR adds end-to-end evidence generation and traceability:
Adds --report-json to scripts/check_web_route_parity.py.
Emits stable JSON payload with counts, normalized route lists, deltas, strict flag, and status.
Extends scripts/test_check_web_route_parity.py with report-focused tests:
platformio test --without-uploading --without-testing -e esp32dev (PASSED)
Generated report confirms parity:
backend_count = 29
frontend_count = 29
missing_in_backend = []
unused_backend = []
status = pass
## Issue
The route parity spec v1 required machine-readable evidence in CI and explicit documentation closure for EF-02/EF-03/EF-04. The repository had parity checks, but no uploaded parity artifact and incomplete traceability in docs.
## Cause and User Impact
Without a persisted CI artifact, route coverage proof depended on raw logs only. This made regressions harder to audit and slowed release validation for WebUI/backend parity.
## Root Cause
The parity checker emitted console output only and CI did not publish an artifact. Spec tracking docs were not fully synchronized with the implementation evidence.
## Fix
This PR adds end-to-end evidence generation and traceability:
- Adds `--report-json` to `scripts/check_web_route_parity.py`.
- Emits stable JSON payload with counts, normalized route lists, deltas, strict flag, and status.
- Extends `scripts/test_check_web_route_parity.py` with report-focused tests:
- expected structure,
- stable sorting,
- mismatch/fail case,
- JSON write/read validity.
- Updates CI workflow:
- branch triggers now `main` and `release/stable`,
- parity step exports `artifacts/route_parity_report.json`,
- uploads artifact `route-parity-report`.
- Updates docs for parity closure and evidence linkage:
- `docs/rapport_tests_fonctionnels.md`,
- `docs/spec_webui_route_parity_and_coverage_v1.md`,
- `docs/SPECS_STATE.md`,
- `docs/README.md` index link.
## Validation
Executed locally:
- `python3 -m unittest scripts/test_check_web_route_parity.py` (7 tests, OK)
- `python3 scripts/check_web_route_parity.py --report-json artifacts/route_parity_report.json` (PASS)
- `platformio run -e esp32dev` (SUCCESS)
- `platformio test --without-uploading --without-testing -e esp32dev` (PASSED)
Generated report confirms parity:
- `backend_count = 29`
- `frontend_count = 29`
- `missing_in_backend = []`
- `unused_backend = []`
- `status = pass`
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Issue
The route parity spec v1 required machine-readable evidence in CI and explicit documentation closure for EF-02/EF-03/EF-04. The repository had parity checks, but no uploaded parity artifact and incomplete traceability in docs.
Cause and User Impact
Without a persisted CI artifact, route coverage proof depended on raw logs only. This made regressions harder to audit and slowed release validation for WebUI/backend parity.
Root Cause
The parity checker emitted console output only and CI did not publish an artifact. Spec tracking docs were not fully synchronized with the implementation evidence.
Fix
This PR adds end-to-end evidence generation and traceability:
--report-jsontoscripts/check_web_route_parity.py.scripts/test_check_web_route_parity.pywith report-focused tests:mainandrelease/stable,artifacts/route_parity_report.json,route-parity-report.docs/rapport_tests_fonctionnels.md,docs/spec_webui_route_parity_and_coverage_v1.md,docs/SPECS_STATE.md,docs/README.mdindex link.Validation
Executed locally:
python3 -m unittest scripts/test_check_web_route_parity.py(7 tests, OK)python3 scripts/check_web_route_parity.py --report-json artifacts/route_parity_report.json(PASS)platformio run -e esp32dev(SUCCESS)platformio test --without-uploading --without-testing -e esp32dev(PASSED)Generated report confirms parity:
backend_count = 29frontend_count = 29missing_in_backend = []unused_backend = []status = pass