CI gate: parité routes WebUI/backend #11
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
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
requestJson('/api/...')du frontend.server_.on('/api/...', HTTP_...)du backend.scripts/test_terminal.sh.Critères d'acceptation
scripts/.github/workflows/ci.yml)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
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.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.
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 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.
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.
Correction: format artefact CI (message precedent).
Mise a jour automatique suite au merge de la PR #26.
1f277f8598Statut: gate parity valide, report JSON genere et publication artefact active en CI.
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-> SUCCESSpython3 scripts/hw_validation.py --port-a252 /dev/cu.usbserial-0001 --base-url http://192.168.0.103 ...-> PASSResultats automatiques:
Resultats manuels (non automatises):
Rapports locaux generes:
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.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
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)
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.
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/22265486749Correction formatting: la propriete hook_active_high est bien forcee a true au boot sur le commit
841fabd.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:
bash scripts/test_terminal.sh: PASSscripts/hw_validation.py(A252): PASSArtefacts:
artifacts/route_parity_report.json(parity checker): PASSartifacts/webui_bt_parity_report.json: PASSartifacts/runtime_snapshot.json: généréartifacts/wifi_stability_report.json: PASSartifacts/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:
unsupported).Update post-push
fcaef73:Preuve CI alignée avec les artefacts locaux Track A/B publiés dans le commentaire précédent.
Proof update (2026-02-22, corrected)
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
command: bash scripts/test_terminal.sh
Batch scope: