CI gate: parité routes WebUI/backend #11

Closed
opened 2026-02-20 23:17:11 +00:00 by electron-rare · 17 comments
electron-rare commented 2026-02-20 23:17:11 +00:00 (Migrated from github.com)

Contexte

Les PR récentes ont ajouté plusieurs endpoints (/api/network/*) et des évolutions WebUI. Sans garde-fou automatique, une route appelée côté WebUI peut diverger du backend et casser l'interface sans signal CI clair.

Problème

Absence de gate CI de cohérence routes WebUI/backend.

Attendu

  • Ajouter un script de vérification qui détecte les appels requestJson('/api/...') du frontend.
  • Extraire les routes server_.on('/api/...', HTTP_...) du backend.
  • Échouer la CI si une route frontend n'existe pas côté backend.
  • Intégrer ce check dans la CI et dans scripts/test_terminal.sh.

Critères d'acceptation

  • Script ajouté dans scripts/
  • Intégration CI (.github/workflows/ci.yml)
  • Exécution locale documentée/validée
## Contexte Les PR récentes ont ajouté plusieurs endpoints (`/api/network/*`) et des évolutions WebUI. Sans garde-fou automatique, une route appelée côté WebUI peut diverger du backend et casser l'interface sans signal CI clair. ## Problème Absence de gate CI de cohérence routes WebUI/backend. ## Attendu - Ajouter un script de vérification qui détecte les appels `requestJson('/api/...')` du frontend. - Extraire les routes `server_.on('/api/...', HTTP_...)` du backend. - Échouer la CI si une route frontend n'existe pas côté backend. - Intégrer ce check dans la CI et dans `scripts/test_terminal.sh`. ## Critères d'acceptation - [ ] Script ajouté dans `scripts/` - [ ] Intégration CI (`.github/workflows/ci.yml`) - [ ] Exécution locale documentée/validée
electron-rare commented 2026-02-20 23:18:38 +00:00 (Migrated from github.com)

Cross-repo links:\n- Kill_LIFE implementation pattern PR: https://github.com/electron-rare/Kill_LIFE/pull/2\n- Zacus companion adoption issue: https://github.com/electron-rare/le-mystere-professeur-zacus/issues/94

Cross-repo links:\n- Kill_LIFE implementation pattern PR: https://github.com/electron-rare/Kill_LIFE/pull/2\n- Zacus companion adoption issue: https://github.com/electron-rare/le-mystere-professeur-zacus/issues/94
electron-rare commented 2026-02-20 23:20:37 +00:00 (Migrated from github.com)

Implémenté via PR #13 (merge commit d2925d2) sur la branche d'intégration . Fermeture manuelle car la base n'est pas la branche par défaut.

Implémenté via PR #13 (merge commit d2925d2) sur la branche d'intégration . Fermeture manuelle car la base n'est pas la branche par défaut.
electron-rare commented 2026-02-20 23:20:53 +00:00 (Migrated from github.com)

Précision: la PR #13 a été mergée dans la branche d’intégration audit/telephony-webserver (non default), d’où la fermeture manuelle de cette issue.

Précision: la PR #13 a été mergée dans la branche d’intégration audit/telephony-webserver (non default), d’où la fermeture manuelle de cette issue.
electron-rare commented 2026-02-20 23:37:14 +00:00 (Migrated from github.com)

Spec orchestrateur publiée:\n- PR: https://github.com/electron-rare/RTC_BL_PHONE/pull/16\n\nCette spec fixe le cadre d'implémentation du gate parity CI + critères de preuve.

Spec orchestrateur publiée:\n- PR: https://github.com/electron-rare/RTC_BL_PHONE/pull/16\n\nCette spec fixe le cadre d'implémentation du gate parity CI + critères de preuve.
electron-rare commented 2026-02-20 23:40:03 +00:00 (Migrated from github.com)

Spec merged: https://github.com/electron-rare/RTC_BL_PHONE/pull/16\n\nNext step on this issue: implement CI step + parity artifact according to spec section EF-01/EF-02.

Spec merged: https://github.com/electron-rare/RTC_BL_PHONE/pull/16\n\nNext step on this issue: implement CI step + parity artifact according to spec section EF-01/EF-02.
electron-rare commented 2026-02-21 21:11:40 +00:00 (Migrated from github.com)

Mise a jour automatique suite au merge de la PR #26.\n\n- PR mergee: https://github.com/electron-rare/RTC_BL_PHONE/pull/26\n- Commit merge: 1f277f8598db8469e9005e35cf8312bee7989590\n- Workflow CI (Firmware CI): https://github.com/electron-rare/RTC_BL_PHONE/actions/runs/22264380212\n- Job build-and-test (PASS): https://github.com/electron-rare/RTC_BL_PHONE/actions/runs/22264380212/job/64407648537\n- Artefact CI attendu: (contient )\n\nStatut: gate parity valide, report JSON genere et publication artefact active en CI.

Mise a jour automatique suite au merge de la PR #26.\n\n- PR mergee: https://github.com/electron-rare/RTC_BL_PHONE/pull/26\n- Commit merge: 1f277f8598db8469e9005e35cf8312bee7989590\n- Workflow CI (Firmware CI): https://github.com/electron-rare/RTC_BL_PHONE/actions/runs/22264380212\n- Job build-and-test (PASS): https://github.com/electron-rare/RTC_BL_PHONE/actions/runs/22264380212/job/64407648537\n- Artefact CI attendu: (contient )\n\nStatut: gate parity valide, report JSON genere et publication artefact active en CI.
electron-rare commented 2026-02-21 21:11:52 +00:00 (Migrated from github.com)

Correction: format artefact CI (message precedent).

Mise a jour automatique suite au merge de la PR #26.

Statut: gate parity valide, report JSON genere et publication artefact active en CI.

Correction: format artefact CI (message precedent). Mise a jour automatique suite au merge de la PR #26. - PR mergee: https://github.com/electron-rare/RTC_BL_PHONE/pull/26 - Commit merge: 1f277f8598db8469e9005e35cf8312bee7989590 - Workflow CI (Firmware CI): https://github.com/electron-rare/RTC_BL_PHONE/actions/runs/22264380212 - Job build-and-test (PASS): https://github.com/electron-rare/RTC_BL_PHONE/actions/runs/22264380212/job/64407648537 - Artefact CI: route-parity-report (contient artifacts/route_parity_report.json) Statut: gate parity valide, report JSON genere et publication artefact active en CI.
electron-rare commented 2026-02-21 21:16:51 +00:00 (Migrated from github.com)

Update hardware (ESP32 Audio Kit sur /dev/cu.usbserial-0001)

Execution autonome terminee apres flash du firmware courant:

  • platformio run -e esp32dev -t upload --upload-port /dev/cu.usbserial-0001 -> SUCCESS
  • python3 scripts/hw_validation.py --port-a252 /dev/cu.usbserial-0001 --base-url http://192.168.0.103 ... -> PASS

Resultats automatiques:

  • serial_smoke: PASS
  • serial_network_stack: PASS
  • http_endpoints: PASS

Resultats manuels (non automatises):

  • manual_hook_transition: MANUAL_SKIP
  • manual_ring_behavior: MANUAL_SKIP
  • manual_audio_path: MANUAL_SKIP
  • manual_hfp_pairing: MANUAL_SKIP

Rapports locaux generes:

  • artifacts/hw_validation_usbserial_http.json
  • artifacts/hw_validation_usbserial_http.md
Update hardware (ESP32 Audio Kit sur /dev/cu.usbserial-0001) Execution autonome terminee apres flash du firmware courant: - `platformio run -e esp32dev -t upload --upload-port /dev/cu.usbserial-0001` -> SUCCESS - `python3 scripts/hw_validation.py --port-a252 /dev/cu.usbserial-0001 --base-url http://192.168.0.103 ...` -> PASS Resultats automatiques: - serial_smoke: PASS - serial_network_stack: PASS - http_endpoints: PASS Resultats manuels (non automatises): - manual_hook_transition: MANUAL_SKIP - manual_ring_behavior: MANUAL_SKIP - manual_audio_path: MANUAL_SKIP - manual_hfp_pairing: MANUAL_SKIP Rapports locaux generes: - artifacts/hw_validation_usbserial_http.json - artifacts/hw_validation_usbserial_http.md
electron-rare commented 2026-02-21 21:53:53 +00:00 (Migrated from github.com)

Mise a jour auto (commit 52c4aba):\n\n- Repo State CI: success\n https://github.com/electron-rare/RTC_BL_PHONE/actions/runs/22265034082\n- Firmware CI: en cours\n https://github.com/electron-rare/RTC_BL_PHONE/actions/runs/22265034083\n\nPreuves locales hardware (ESP32 Audio Kit /dev/cu.usbserial-0001):\n- artifacts/hw_validation_latest.json\n- artifacts/hfp_commands_smoke_latest.json\n\nNotes: BT discoverable OK, BT_PBAP_SYNC retourne unsupported (stack courante), BT_DIAL echoue proprement sans lien HFP actif.

Mise a jour auto (commit 52c4aba):\n\n- Repo State CI: success\n https://github.com/electron-rare/RTC_BL_PHONE/actions/runs/22265034082\n- Firmware CI: en cours\n https://github.com/electron-rare/RTC_BL_PHONE/actions/runs/22265034083\n\nPreuves locales hardware (ESP32 Audio Kit /dev/cu.usbserial-0001):\n- artifacts/hw_validation_latest.json\n- artifacts/hfp_commands_smoke_latest.json\n\nNotes: BT discoverable OK, BT_PBAP_SYNC retourne unsupported (stack courante), BT_DIAL echoue proprement sans lien HFP actif.
electron-rare commented 2026-02-21 21:54:04 +00:00 (Migrated from github.com)

Update CI final: Firmware CI est maintenant success pour 52c4aba.\n\n- Firmware CI: https://github.com/electron-rare/RTC_BL_PHONE/actions/runs/22265034083\n- Repo State CI: https://github.com/electron-rare/RTC_BL_PHONE/actions/runs/22265034082

Update CI final: Firmware CI est maintenant success pour 52c4aba.\n\n- Firmware CI: https://github.com/electron-rare/RTC_BL_PHONE/actions/runs/22265034083\n- Repo State CI: https://github.com/electron-rare/RTC_BL_PHONE/actions/runs/22265034082
electron-rare commented 2026-02-21 21:55:08 +00:00 (Migrated from github.com)

Résultats hardware locaux (2026-02-21, /dev/cu.usbserial-0001):\n- Firmware flash OK\n- Commandes BT présentes: BT_DIAL, BT_REDIAL, BT_ANSWER, BT_HANGUP, BT_CALLS, BT_PBAP_SYNC\n- BT_DISCOVERABLE_ON/OFF: OK\n- BT_STATUS expose: slc_connected/call_state/pbap_supported/pbap_last_error\n- BT_PBAP_SYNC: retourne (attendu sur stack actuelle)\n- BT_DIAL sans lien HFP: retourne ERR (garde-fou attendu)

Résultats hardware locaux (2026-02-21, /dev/cu.usbserial-0001):\n- Firmware flash OK\n- Commandes BT présentes: BT_DIAL, BT_REDIAL, BT_ANSWER, BT_HANGUP, BT_CALLS, BT_PBAP_SYNC\n- BT_DISCOVERABLE_ON/OFF: OK\n- BT_STATUS expose: slc_connected/call_state/pbap_supported/pbap_last_error\n- BT_PBAP_SYNC: retourne (attendu sur stack actuelle)\n- BT_DIAL sans lien HFP: retourne ERR (garde-fou attendu)
electron-rare commented 2026-02-21 21:55:15 +00:00 (Migrated from github.com)

Correction formatting: BT_PBAP_SYNC retourne un statut d'erreur unsupported (comportement attendu sur la stack actuelle), et BT_DIAL sans lien HFP retourne aussi une erreur contrôlée.

Correction formatting: BT_PBAP_SYNC retourne un statut d'erreur unsupported (comportement attendu sur la stack actuelle), et BT_DIAL sans lien HFP retourne aussi une erreur contrôlée.
electron-rare commented 2026-02-21 22:21:56 +00:00 (Migrated from github.com)

Update hook/SLIC (commit 841fabd):\n\n- SHK hardcode conserve sur GPIO23\n- maintenant force a au boot\n- Flash valide sur ESP32 Audio Kit (/dev/cu.usbserial-0001)\n- Capture live: hook stable ON_HOOK/IDLE avec cette polarite (artifact local: artifacts/slic_hook_window_20s_hard_true.json)\n\nCI en cours pour ce commit:\n- Repo State: https://github.com/electron-rare/RTC_BL_PHONE/actions/runs/22265486738\n- Firmware CI: https://github.com/electron-rare/RTC_BL_PHONE/actions/runs/22265486749

Update hook/SLIC (commit 841fabd):\n\n- SHK hardcode conserve sur GPIO23\n- maintenant force a au boot\n- Flash valide sur ESP32 Audio Kit (/dev/cu.usbserial-0001)\n- Capture live: hook stable ON_HOOK/IDLE avec cette polarite (artifact local: artifacts/slic_hook_window_20s_hard_true.json)\n\nCI en cours pour ce commit:\n- Repo State: https://github.com/electron-rare/RTC_BL_PHONE/actions/runs/22265486738\n- Firmware CI: https://github.com/electron-rare/RTC_BL_PHONE/actions/runs/22265486749
electron-rare commented 2026-02-21 22:22:01 +00:00 (Migrated from github.com)

Correction formatting: la propriete hook_active_high est bien forcee a true au boot sur le commit 841fabd.

Correction formatting: la propriete hook_active_high est bien forcee a true au boot sur le commit 841fabd.
electron-rare commented 2026-02-21 22:58:32 +00:00 (Migrated from github.com)

Preuve de convergence ajoutée (2026-02-21) pour fermeture progressive route parity/WebUI + track HW.

CI de référence (main):

Exécution locale:

  • Upload firmware A252: PASS
  • bash scripts/test_terminal.sh: PASS
  • scripts/hw_validation.py (A252): PASS

Artefacts:

  • artifacts/route_parity_report.json (parity checker): PASS
  • artifacts/webui_bt_parity_report.json: PASS
  • artifacts/runtime_snapshot.json: généré
  • artifacts/wifi_stability_report.json: PASS
  • artifacts/hfp_operational_report.json: PASS (HFP command-level + erreurs contrôlées)
  • artifacts/espnow_protocol_v1_report.json: FAIL/blocked en mono-carte (pas de peer)

Conclusion:

  • WiFi/WebUI/Bluetooth HFP (stack actuelle) validés côté gate local.
  • ESP-NOW v1 E2E two-board à valider dès que le 2e nœud est branché.
  • PBAP reste bloqué stack et tracé explicitement (unsupported).
Preuve de convergence ajoutée (2026-02-21) pour fermeture progressive route parity/WebUI + track HW. CI de référence (main): - Repo State: https://github.com/electron-rare/RTC_BL_PHONE/actions/runs/22265486738 - Firmware CI: https://github.com/electron-rare/RTC_BL_PHONE/actions/runs/22265486749 Exécution locale: - Upload firmware A252: PASS - `bash scripts/test_terminal.sh`: PASS - `scripts/hw_validation.py` (A252): PASS Artefacts: - `artifacts/route_parity_report.json` (parity checker): PASS - `artifacts/webui_bt_parity_report.json`: PASS - `artifacts/runtime_snapshot.json`: généré - `artifacts/wifi_stability_report.json`: PASS - `artifacts/hfp_operational_report.json`: PASS (HFP command-level + erreurs contrôlées) - `artifacts/espnow_protocol_v1_report.json`: FAIL/blocked en mono-carte (pas de peer) Conclusion: - WiFi/WebUI/Bluetooth HFP (stack actuelle) validés côté gate local. - ESP-NOW v1 E2E two-board à valider dès que le 2e nœud est branché. - PBAP reste bloqué stack et tracé explicitement (`unsupported`).
electron-rare commented 2026-02-21 23:01:17 +00:00 (Migrated from github.com)

Update post-push fcaef73:

Preuve CI alignée avec les artefacts locaux Track A/B publiés dans le commentaire précédent.

Update post-push `fcaef73`: - Repo State (success): https://github.com/electron-rare/RTC_BL_PHONE/actions/runs/22266003301 - Firmware CI (success): https://github.com/electron-rare/RTC_BL_PHONE/actions/runs/22266003302 Preuve CI alignée avec les artefacts locaux Track A/B publiés dans le commentaire précédent.
electron-rare commented 2026-02-22 20:51:32 +00:00 (Migrated from github.com)

Proof update (2026-02-22, corrected)

Batch scope:

  • Coex WiFi/BT hardening
  • Stability prep for queued HFP dial flow
Proof update (2026-02-22, corrected) - Firmware CI (main, success): https://github.com/electron-rare/RTC_BL_PHONE/actions/runs/22266990348 - Repo State (main, success): https://github.com/electron-rare/RTC_BL_PHONE/actions/runs/22266990354 - Route parity checker (JSON export): PASS command: python3 scripts/check_web_route_parity.py --report-json artifacts/route_parity_report.json summary: backend=39, frontend=38, no missing backend route, one intentional backend-only route: GET /api/bluetooth/hfp/auto - Local validation bundle: PASS command: bash scripts/test_terminal.sh Batch scope: - Coex WiFi/BT hardening - Stability prep for queued HFP dial flow
Sign in to join this conversation.