Claude Worker claude2 b2267f2261
CI / platformio (pull_request) Failing after 6m18s
feat(scenario-mesh): ESP-NOW scenario hot-load receivers + green builds
- scenario_mesh: ESP-NOW frame protocol component (master + box3_voice):
  chunking, per-source reassembly, deferred apply off the Wi-Fi callback.
- game_endpoint: POST /game/scenario/relay (master) + shared scenario_apply.
- box3_voice: scenario receiver wiring (scenario_mesh_init).
- espnow_slave (shared by all puzzles): demux scenario frames inside the single
  recv callback so a misrouted relay can't corrupt the MSG_* stream; reassemble
  per source MAC; optional consumer hook (logs+drops by default, puzzles have no
  scenario engine). Add missing esp_mac.h include for MACSTR/MAC2STR.
- CMakeLists (scenario_mesh + 4 puzzle mains): drop invalid `esp_now` REQUIRES;
  the ESP-NOW API lives in esp_wifi. Fixes "Failed to resolve component esp_now".
- docs: scenario-mesh receiver patch note (puzzles done via defensive demux;
  PLIP out of scope — Wi-Fi/HTTP-only, no ESP-NOW stack).

Builds green under ESP-IDF 5.4.4: idf_zacus, box3_voice, p7_coffre.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-09 04:11:28 +02:00
2026-04-03 07:36:51 +02:00

ESP32_ZACUS

Workspace firmware centré sur une seule cible: Freenove FNK0102H avec ui_freenove_allinone.

Docs canoniques

  • docs/QUICKSTART.md: bootstrap, build, flash, monitor, smoke.
  • docs/FNK0102H_SOURCE_OF_TRUTH.md: matrice board/config/pins/support.
  • README_ESP32_ZACUS.md: notes runtime et signatures série utiles.

Arborescence utile

  • platformio.ini: env PlatformIO canonique freenove_esp32s3_full_with_ui.
  • ui_freenove_allinone/: firmware UI/audio/caméra/réseau.
  • data/: contenu LittleFS.
  • lib/: bibliothèques runtime.
  • scripts/: bootstrap et scripts repo.
  • tests/: harness Sprint 1, Sprint 2, Sprint 3, Phase 9.

Environnements supportés

  • freenove_esp32s3_full_with_ui: chemin release/stabilisation.
  • freenove_esp32s3: alias du chemin canonique.
  • freenove_esp32s3_touch: expérimental, hors release, sans CI.

Démarrage rapide

./scripts/bootstrap_platformio.sh
./scripts/doctor_repo.sh
source .venv/bin/activate
python -m platformio run -e freenove_esp32s3_full_with_ui
python -m platformio run -e freenove_esp32s3_full_with_ui -t buildfs
python -m platformio run -e freenove_esp32s3_full_with_ui -t uploadfs --upload-port <PORT>
python -m platformio run -e freenove_esp32s3_full_with_ui -t upload --upload-port <PORT>
python -m platformio device monitor -b 115200 --port <PORT>

Guardrails runtime

  • Si la PSRAM est détectée, le firmware démarre normalement puis autorise le réseau après validation UI.
  • Si la PSRAM n'est pas détectée, le firmware bascule en safe diagnostic mode.
  • En mode diagnostic, le firmware garde uniquement la pile série, l'affichage minimal et les boutons physiques.
  • En mode diagnostic, caméra, FX, micro, audio, Wi-Fi, ESP-NOW, WebUI et partage de fichiers restent coupés.

Vérifications minimales

./scripts/doctor_repo.sh
./scripts/check_memory_budget.sh --env freenove_esp32s3_full_with_ui --max-ram 75 --max-flash 80 --yes
python tests/sprint1_utility_contract.py --mode serial --port <PORT>
python tests/sprint2_capture_contract.py --mode serial --port <PORT>
python tests/sprint3_audio_contract.py --mode serial --port <PORT>
python tests/phase9_ui_validation.py --port <PORT>

Audit & Execution Plan (2026-03-10)

Snapshot

  • Priority: P2
  • Tech profile: embedded
  • Workflows: yes
  • Tests: yes
  • Debt markers: 0
  • Source files: 258

Corrections Prioritaires

  • Vérifier target PlatformIO et budget mémoire
  • Ajouter/fiabiliser les commandes de vérification automatiques.
  • Clore les points bloquants avant optimisation avancée.

Optimisation

  • Identifier le hotspot principal et mesurer avant/après.
  • Réduire la complexité des modules les plus touchés.

Mémoire chantier

  • Control plane: /Users/electron/.codex/memories/electron_rare_chantier
  • Repo card: /Users/electron/.codex/memories/electron_rare_chantier/REPOS/ESP32_ZACUS.md
S
Description
ESP32 ZACUS — firmware ESP32 pour le projet Le Mystere du Professeur Zacus
Readme 11 MiB
Languages
C 75.4%
C++ 22%
Python 2.1%
Shell 0.3%
CMake 0.1%