Files
ESP32_ZACUS/specs/apps/kids_languages.md
T
L'électron rare 878d911065 P1.1+P1.2: Phase 9 Touch Emulator + AGENT_TODO Update
 P1.1 Phase 9 Touch Input (4h)
- TouchEmulator: 4x4 grid navigation via buttons (UP/DOWN/LEFT/RIGHT toggle)
- Files: touch_emulator.{h,cpp} + AmigaUIShell integration
- Button mapping: 0=UP, 1=SELECT, 2=DOWN, 3=MENU, 4=TOGGLE_LR
- Build SUCCESS (31.06s, 64.4% RAM, 42.0% Flash)

 P1.2 Documentation Update (1h)
- AGENT_TODO.md: Phase 9 completion + Sprint 9 section added
- Root cause analysis: watchdog timeout (cycle 9) → stack fix (8192→16384)
- Troubleshooting guide: common issues + debug commands

Files:
  + touch_emulator.{h,cpp}
  ~ ui_amiga_shell.* + main.cpp + AGENT_TODO.md

Next: P1.3 (Sprint 1 endurance validation) + P2 (main.cpp refactor)
2026-03-11 00:03:58 +01:00

52 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Spec App - Langues Enfants (`kids_languages`)
## 1. Cadrage
- ID runtime: `kids_languages`
- Catégorie: `kids_learning`
- Scène d'entrée: `SCENE_KIDS_LANG`
- Module actuel: `KidsLearningModule`
- Manifest attendu: `/apps/kids_languages/manifest.json`
- Offline: **oui** | Streaming: **oui**
## 2. Capacités
- Requises (129): `CAP_AUDIO_OUT`, `CAP_GPU_UI`
- Optionnelles (80): `CAP_WIFI`, `CAP_STORAGE_FS`
## 3. Objectif Produit
- Parcours pédagogique guidé (leçons, quiz, session audio).
## 4. Contrat Actions (`APP_ACTION` / `/api/apps/action`)
| Action | Payload | Effet attendu |
|---|---|---|
| `lesson_open` | `lesson id` | Ouvre une leçon et reset le step. |
| `lesson_next` | `vide` | Passe à l'étape suivante. |
| `lesson_prev` | `vide` | Revient à l'étape précédente. |
| `quiz_answer` | `answer` | Met à jour le score si réponse correcte. |
| `session_start / play` | `path/url optionnel` | Lance audio guidé. |
| `pause` | `vide` | Pause audio + sauvegarde progression. |
| `session_stop / stop` | `vide` | Stop audio + sauvegarde. |
| `seek_ms` | `entier ms` | Met à jour curseur logique. |
## 5. Stockage & Persistance
- Progression: /apps/<app_id>/progress.json
- Cursor: lesson, step, score, cursor_ms
- Audio offline recommandé: /apps/<app_id>/audio/session.mp3
## 6. Backlog Développement (MVP)
- Flow leçon/quiz complet et robuste.
- Persistance fine de progression par app.
- Fallback audio offline si Wi-Fi indisponible.
- Intégrer le déclenchement depuis le launcher (`AmigaUIShell::launchSelectedApp`) via `APP_OPEN`.
- Vérifier la route de scène (`entry_screen`) et la cohérence UI/LVGL.
## 7. Critères dAcceptation
- L'app se lance via API et via commande série sans crash.
- Les actions principales répondent sans erreur non gérée.
- Le statut runtime reflète correctement `state`, `last_event`, `last_error`.
- Retour propre à `SCENE_READY` après fermeture app.
## 8. Tests Recommandés
1. `APP_OPEN kids_languages` puis contrôle `UI_SCENE_STATUS`.
2. Exécuter 3-5 actions clés de `KidsLearningModule` (serial/API).
3. `APP_CLOSE` puis validation `APP_IDLE` et absence de fuite mémoire visible.