Config avancée: /api/config/audio, /api/config/mqtt, POST /api/config/pins
Network lecture: GET /api/network/mqtt, GET /api/network/espnow, GET /api/network/espnow/peer
Objectif
Ajouter les blocs UI manquants (visualisation + actions) pour couvrir ces routes côté opérateur.
Critères d'acceptation
Actions Bluetooth disponibles depuis la WebUI
Visualisation/édition config audio et MQTT
Rafraîchissement explicite des états MQTT/ESP-NOW peers via routes dédiées
## Contexte
Le check de parité routes montre que plusieurs endpoints backend existent mais ne sont pas encore utilisés par la WebUI.
## Scope backlog (WebUI)
- Bluetooth: `/api/bluetooth`, `/api/bluetooth/hfp/connect`, `/api/bluetooth/hfp/disconnect`, `/api/bluetooth/ble/start`, `/api/bluetooth/ble/stop`
- Config avancée: `/api/config/audio`, `/api/config/mqtt`, `POST /api/config/pins`
- Network lecture: `GET /api/network/mqtt`, `GET /api/network/espnow`, `GET /api/network/espnow/peer`
## Objectif
Ajouter les blocs UI manquants (visualisation + actions) pour couvrir ces routes côté opérateur.
## Critères d'acceptation
- [ ] Actions Bluetooth disponibles depuis la WebUI
- [ ] Visualisation/édition config audio et MQTT
- [ ] Rafraîchissement explicite des états MQTT/ESP-NOW peers via routes dédiées
Spec merged: https://github.com/electron-rare/RTC_BL_PHONE/pull/16\n\nNext step on this issue: implement UI coverage endpoints from spec section EF-03.
Implémentation en PR:\n- https://github.com/electron-rare/RTC_BL_PHONE/pull/17\n\nCoverage ajouté: Bluetooth actions + édition JSON config audio/mqtt/pins côté WebUI.
CI baseline et gate route-parity consolidés côté Kill_LIFE.
Cela aligne la stratégie avec RTC (#13/#15) pour la robustesse UI/API et les checks CI.
Cross-repo update:
- Kill_LIFE PR #2 mergée: https://github.com/electron-rare/Kill_LIFE/pull/2
- Merge commit: 42c0702aad179a4fa020811b09cc0bfcbd562466
- CI baseline et gate route-parity consolidés côté Kill_LIFE.
Cela aligne la stratégie avec RTC (`#13/#15`) pour la robustesse UI/API et les checks 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.
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.
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
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.
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
Ce run correspond aux changements Track A/B (WiFi/WebUI/ESP-NOW v1 + BT abstraction PBAP) déjà détaillé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
Ce run correspond aux changements Track A/B (WiFi/WebUI/ESP-NOW v1 + BT abstraction PBAP) déjà détaillés dans le commentaire précédent.
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.
Contexte
Le check de parité routes montre que plusieurs endpoints backend existent mais ne sont pas encore utilisés par la WebUI.
Scope backlog (WebUI)
/api/bluetooth,/api/bluetooth/hfp/connect,/api/bluetooth/hfp/disconnect,/api/bluetooth/ble/start,/api/bluetooth/ble/stop/api/config/audio,/api/config/mqtt,POST /api/config/pinsGET /api/network/mqtt,GET /api/network/espnow,GET /api/network/espnow/peerObjectif
Ajouter les blocs UI manquants (visualisation + actions) pour couvrir ces routes côté opérateur.
Critères d'acceptation
Spec orchestrateur publiée:\n- PR: https://github.com/electron-rare/RTC_BL_PHONE/pull/16\n\nLe scope couverture WebUI des routes backend est maintenant cadré en exigences + DoD.
Spec merged: https://github.com/electron-rare/RTC_BL_PHONE/pull/16\n\nNext step on this issue: implement UI coverage endpoints from spec section EF-03.
Implémentation en PR:\n- https://github.com/electron-rare/RTC_BL_PHONE/pull/17\n\nCoverage ajouté: Bluetooth actions + édition JSON config audio/mqtt/pins côté WebUI.
Implemented and merged via PR #17: https://github.com/electron-rare/RTC_BL_PHONE/pull/17
Cross-repo update:
Cela aligne la stratégie avec RTC (
#13/#15) pour la robustesse UI/API et les checks 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.
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.Update d'avancement (2026-02-21) — exécution locale sur ESP32 Audio Kit
/dev/cu.usbserial-0001.CI de référence (main):
Gates locaux:
platformio run -e esp32dev -t upload --upload-port /dev/cu.usbserial-0001-> PASSbash scripts/test_terminal.sh-> PASSpython3 scripts/hw_validation.py --port-a252 /dev/cu.usbserial-0001 --report-json artifacts/hw_validation_report.json --report-md artifacts/hw_validation_report.md-> PASSArtefacts générés:
artifacts/route_parity_report.json-> PASSartifacts/webui_bt_parity_report.json-> PASSartifacts/wifi_stability_report.json-> PASSartifacts/hfp_operational_report.json-> PASSartifacts/espnow_protocol_v1_report.json-> FAIL (bench mono-carte, pas de peer radio actif)Notes de blocage:
BT_PBAP_SYNCretourneunsupportedexplicitement sur la stack actuelle.id) reste à refaire avec une 2e carte connectée.Update post-push
fcaef73:Ce run correspond aux changements Track A/B (WiFi/WebUI/ESP-NOW v1 + BT abstraction PBAP) déjà détaillé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: python3 scripts/hw_validation.py --port-a252 /dev/cu.usbserial-0001 --report-json artifacts/hw_validation_report.json --report-md artifacts/hw_validation_report.md
Batch scope: