Files
le-mystere-professeur-zacus/specs/MEDIA_MANAGER_FRONTEND_HANDOFF.md
T
L'électron rare 20aed903ba feat: AI integration — voice pipeline, hints engine, MCP server, analytics, security
- Voice pipeline: ESP32 WebSocket client → voice bridge → LLM → Piper TTS (Tower :8001)
- Hints engine: 3 puzzles (LA_440, LEFOU_PIANO, QR_FINALE), anti-cheat, 3 hint levels
- MCP hardware server: 6 tools (puzzle, audio, LED, camera, scenario, status), stdio transport
- Analytics: ESP32 module + 6 web endpoints + Dashboard UI with chat interface
- Security: auth middleware (Bearer NVS), rate limiting, input validation on 30 endpoints
- Frontend: code-split (1.1MB → 210KB initial), ErrorBoundary, API timeout, WS reconnect
- Tests: 24 Python + 38 TypeScript + 18 MCP = 80 project tests (+ 19 mascarade)
- Specs: AI_INTEGRATION_SPEC, MCP_HARDWARE_SERVER_SPEC, QA_TEST_MATRIX_SPEC
- Docs: SECURITY, DEPLOYMENT_RUNBOOK, voice pipeline guide, AI architecture map
- 6 AI agent definitions (.github/agents/ai_*.md)
- TUI orchestration script (tools/dev/zacus_tui.py)
- Docker compose TTS for Tower + KXKM-AI
- CHANGELOG, README, mkdocs.yml updated
- Cycle detection (DFS) in runtime3 validator
- Sprint plan: plans/SPRINT_AI_INTEGRATION.md

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 13:52:45 +01:00

2.2 KiB
Raw Blame History

Handoff - Équipe Front-end (Media Manager)

Contexte

  • FSM de travail: scenario-ai-coherence/zacus_conversation_bundle_v3/fsm_mermaid.md
  • Contrat media manager: specs/MEDIA_MANAGER_RUNTIME_SPEC.md
  • Scope: aucune modification firmware.

Objectif métier

  • Exposer le Media Manager de manière fiable à larrivée en fin de scénario.
  • Accepter les identifiants step/scene mixtes sans casser lUI.
  • Sappuyer sur les APIs media existantes pour listage, lecture et enregistrement.

Cibles de sortie (artefacts)

  • artifacts/runtime-sync/<date>/media-manager-web-checks.md
  • artifacts/runtime-sync/<date>/media-manager-front-mapping.md
  • notes de migration/ajustement de parsing si nécessaire.
  • Spec détaillée d'intégration: specs/MEDIA_MANAGER_FRONTEND_SPEC.md

Actions obligatoires

  1. Parsing statut:
  • lire story.screen en priorité.
  • fallback tolérant sur story.step == STEP_MEDIA_MANAGER.
  • ne pas supposer step_id prefixé STEP_ ou SCENE_.
  1. Mapping Media Hub:
  • activer vue hub quand story.screen == SCENE_MEDIA_MANAGER.
  • si non dispo, fallback story.step == STEP_MEDIA_MANAGER.
  1. Endpoints media:
  • /api/media/files (kind music/picture/recorder)
  • /api/media/play, /api/media/stop
  • /api/media/record/start, /api/media/record/stop
  • /api/media/record/status
  1. Gestion erreurs:
  • gérer ok=false et error depuis /api/control et endpoints media.
  • afficher media.last_error en debug écran media.
  1. Affichage media:
  • afficher clairement media.record_simulated pour éviter les ambiguïtés denregistrement réel.

Critères dacceptation

  • Le Media Hub saffiche à la fin de scénario sans crash.
  • SCENE_MEDIA_MANAGER déclenche bien la vue média même avec STEP_MEDIA_MANAGER possible en fallback.
  • media.playing bascule correctement via play/stop.
  • Les erreurs API sont présentées de façon exploitable par lopérateur.

Remarques équipe

  • Ne pas changer les contrats runtime, seulement adapter la consommation UI.
  • Toute divergence métier (ex: cible SCENE_MEDIA_MANAGER encore présente) doit être reportée via ticket "scenario".
  • Implémentation front alignée au studio React + Blockly (frontend-scratch-v2) avec consommation API côté UI.