docs: corriger incohérences README + boards.yaml (audit liaison webapp↔firmware)
Repo State / repo-state (push) Failing after 35s
Validate Zacus refactor / validate (push) Successful in 11m32s

Le README et boards.yaml pointaient un canon périmé. Réalité (audit 2026-06-12) :
- canon = frontend-v3/apps/atelier (pnpm+turbo) + ESP32_ZACUS/idf_zacus (ESP-IDF)
  + gateway tools/zacus-gateway (:8400) + scénario zacus_v3_complete.yaml
- frontend-scratch-v2 et hardware/firmware (Arduino freenove) = legacy
- boards.yaml: /game/scenario EST implémenté (game_endpoint.c), commentaire 502 obsolète

Corrections documentaires uniquement, aucun changement de code/comportement.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-12 22:37:01 +02:00
parent 4ae92abcb3
commit fb860238b3
2 changed files with 22 additions and 13 deletions
+21 -12
View File
@@ -6,10 +6,12 @@ Zacus est en refonte vers un produit hybride unique:
- un runtime portable "Zacus Runtime 3" compile depuis le YAML canonique.
## Canon actuel
- Source narrative: `game/scenarios/zacus_v2.yaml`
- Studio auteur: `frontend-scratch-v2/`
- Source narrative: `game/scenarios/zacus_v3_complete.yaml`
- Studio auteur: `frontend-v3/apps/atelier` (monorepo pnpm + turbo ; `frontend-scratch-v2/` est abandonné depuis le hard cutover du 2026-05)
- Hub game-master: `apps/zacus-hub` (app SwiftUI native)
- Gateway d'orchestration: `tools/zacus-gateway` (FastAPI, port 8400) — compile le YAML → Runtime 3 IR et pousse aux cartes
- Runtime portable: `tools/scenario/compile_runtime3.py` + `tools/scenario/simulate_runtime3.py`
- Cible hardware principale: `hardware/firmware` avec `freenove_esp32s3`
- Cible hardware principale: `ESP32_ZACUS/idf_zacus` (ESP-IDF, Freenove ESP32-S3) — submodule sur Gitea ; `hardware/firmware` (ancien build Arduino) est legacy
- Plans et memoire: `memory/`, `plans/`, `todos/`
- Architecture et cartes Mermaid: `docs/architecture/`
@@ -23,17 +25,20 @@ bash tools/test/run_content_checks.sh
### 2. Compiler et simuler Runtime 3
```bash
python3 tools/scenario/compile_runtime3.py game/scenarios/zacus_v2.yaml
python3 tools/scenario/simulate_runtime3.py game/scenarios/zacus_v2.yaml
python3 tools/scenario/export_runtime3_firmware_bundle.py game/scenarios/zacus_v2.yaml
python3 tools/scenario/compile_runtime3.py game/scenarios/zacus_v3_complete.yaml
python3 tools/scenario/simulate_runtime3.py game/scenarios/zacus_v3_complete.yaml
python3 tools/scenario/export_runtime3_firmware_bundle.py game/scenarios/zacus_v3_complete.yaml
```
### 3. Démarrer le studio React + Blockly
```bash
cd frontend-scratch-v2
npm install
npm test
VITE_STORY_API_BASE=http://<esp_ip>:8080 npm run dev
cd frontend-v3
pnpm install
pnpm test
# Bases de liaison : gateway (:8400), firmware (:80), hints (:8311), voice-bridge (:8200)
VITE_GATEWAY_BASE_URL=http://localhost:8400 \
VITE_ESP32_BASE_URL=http://zacus-master.local \
pnpm dev
```
### 4. Utiliser le shell canonique
@@ -52,8 +57,12 @@ make runtime3-test
- `audio/`: manifestes audio et assets associés.
- `printables/`: manifestes et exports imprimables.
- `kit-maitre-du-jeu/`: matériel MJ et déroulé terrain.
- `frontend-scratch-v2/`: studio auteur React + Blockly.
- `hardware/firmware/`: firmware, APIs device, scripts terrain.
- `frontend-v3/`: studio auteur (apps/atelier + apps/dashboard), monorepo pnpm + turbo. **Webapp courante.**
- `apps/zacus-hub/`: hub game-master (app SwiftUI native).
- `tools/zacus-gateway/`: gateway FastAPI (:8400) — orchestration studio/flash, compile YAML → Runtime 3 IR.
- `ESP32_ZACUS/`: firmware ESP-IDF (submodule Gitea), cible principale `idf_zacus`.
- `frontend-scratch-v2/`: studio auteur React + Blockly (legacy, abandonné).
- `hardware/firmware/`: ancien firmware Arduino freenove (legacy).
- `tools/`: validateurs, compilateur/simulateur Runtime 3, shells d'automatisation.
- `docs/`: quickstart, architecture, benchmark OSS et runbooks.
- `memory/`, `plans/`, `todos/`: pilotage de la refonte.
+1 -1
View File
@@ -6,7 +6,7 @@ boards:
type: idf_zacus
ip: 10.2.5.42 # set to the actual board IP on the LAN
mdns: zacus-master.local
hot_endpoint: "/game/scenario" # not yet implemented in firmware → 502 fallback
hot_endpoint: "/game/scenario" # implémenté: game_endpoint.c (POST → hot-load Runtime3 IR + reboot 800ms)
cold_data_dir: "ESP32_ZACUS/idf_zacus/data"
espnow_relay_peers: [box3, plip, p7_coffre] # master pushes to these via ESP-NOW