[codex] add CI gate for webui/backend route parity #13

Merged
electron-rare merged 1 commits from codex/web-route-parity-gate-v2 into audit/telephony-webserver 2026-02-20 23:20:23 +00:00
electron-rare commented 2026-02-20 23:17:47 +00:00 (Migrated from github.com)

Contexte

Les évolutions WebUI + réseau (WiFi/ESP-NOW/MQTT) avancent vite sur audit/telephony-webserver et le risque de divergence frontend/backend augmente à chaque ajout de route.

Impact utilisateur

Quand la WebUI appelle une route absente côté firmware, l'opérateur voit des erreurs HTTP côté navigateur et perd des actions de test (pilotage WiFi/ESP-NOW/MQTT) sans alerte claire en CI.

Root cause

Aucun garde-fou automatique ne vérifiait que les appels requestJson('/api/...') du frontend correspondent à des routes server_.on('/api/...', HTTP_...) déclarées dans WebServerManager.

Correctif

  • Ajout de scripts/check_web_route_parity.py:
    • extrait les routes backend (src/web/WebServerManager.cpp),
    • extrait les appels frontend (data/webui/script.js),
    • échoue si une route frontend n'existe pas côté backend,
    • signale les routes backend non utilisées par la WebUI (warning non bloquant).
  • Intégration du check dans la CI (.github/workflows/ci.yml).
  • Intégration du check dans le test terminal local (scripts/test_terminal.sh).
  • Extension du trigger CI pour inclure la branche active audit/**.

Validation

  • python3 scripts/check_web_route_parity.py
  • bash scripts/test_terminal.sh

Suivi

## Contexte Les évolutions WebUI + réseau (WiFi/ESP-NOW/MQTT) avancent vite sur `audit/telephony-webserver` et le risque de divergence frontend/backend augmente à chaque ajout de route. ## Impact utilisateur Quand la WebUI appelle une route absente côté firmware, l'opérateur voit des erreurs HTTP côté navigateur et perd des actions de test (pilotage WiFi/ESP-NOW/MQTT) sans alerte claire en CI. ## Root cause Aucun garde-fou automatique ne vérifiait que les appels `requestJson('/api/...')` du frontend correspondent à des routes `server_.on('/api/...', HTTP_...)` déclarées dans `WebServerManager`. ## Correctif - Ajout de `scripts/check_web_route_parity.py`: - extrait les routes backend (`src/web/WebServerManager.cpp`), - extrait les appels frontend (`data/webui/script.js`), - échoue si une route frontend n'existe pas côté backend, - signale les routes backend non utilisées par la WebUI (warning non bloquant). - Intégration du check dans la CI (`.github/workflows/ci.yml`). - Intégration du check dans le test terminal local (`scripts/test_terminal.sh`). - Extension du trigger CI pour inclure la branche active `audit/**`. ## Validation - `python3 scripts/check_web_route_parity.py` ✅ - `bash scripts/test_terminal.sh` ✅ ## Suivi - Closes #11 - Relates #10 (couverture WebUI des routes backend restantes)
electron-rare commented 2026-02-20 23:20:19 +00:00 (Migrated from github.com)

Codex review (self-check):

  • Scope vérifié: uniquement gate de parité routes + branchement CI + test terminal local.
  • Risque régression firmware: faible (aucune logique embarquée runtime modifiée).
  • Vérifs exécutées: python3 scripts/check_web_route_parity.py, bash scripts/test_terminal.sh, GitHub Actions build-and-test .
  • Findings bloquants: aucun.

Je recommande merge.

Codex review (self-check): - Scope vérifié: uniquement gate de parité routes + branchement CI + test terminal local. - Risque régression firmware: faible (aucune logique embarquée runtime modifiée). - Vérifs exécutées: `python3 scripts/check_web_route_parity.py`, `bash scripts/test_terminal.sh`, GitHub Actions `build-and-test` ✅. - Findings bloquants: aucun. Je recommande merge.
Sign in to join this conversation.