docs(status): sesión 2 — módulo 2 implementado, verificación visual pendiente
This commit is contained in:
@@ -3,7 +3,7 @@
|
|||||||
> Estado vivo del desarrollo. **Actualizar al cerrar cada hito o sesión de trabajo.**
|
> Estado vivo del desarrollo. **Actualizar al cerrar cada hito o sesión de trabajo.**
|
||||||
> Si retomas en un chat nuevo: lee CLAUDE.md (arquitectura/convenciones), PRD-Rachita.md (requisitos) y este archivo (dónde vamos), en ese orden.
|
> Si retomas en un chat nuevo: lee CLAUDE.md (arquitectura/convenciones), PRD-Rachita.md (requisitos) y este archivo (dónde vamos), en ese orden.
|
||||||
|
|
||||||
**Última actualización:** 2026-07-03 (sesión 1)
|
**Última actualización:** 2026-07-03 (sesión 2)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -12,13 +12,27 @@
|
|||||||
| Módulo | Estado | Notas |
|
| Módulo | Estado | Notas |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| 1. Onboarding / Selección de avatar | ✅ **Hecho y verificado en dispositivo real** | Compose + MVVM + DataStore; mascotas 100 % Canvas |
|
| 1. Onboarding / Selección de avatar | ✅ **Hecho y verificado en dispositivo real** | Compose + MVVM + DataStore; mascotas 100 % Canvas |
|
||||||
| 2. Dashboard de hábitos + racha | ⬜ Siguiente | Placeholder visible en NavHost; requiere resolver pregunta abierta #1 (ver abajo) |
|
| 2. Dashboard de hábitos + racha | 🟨 **Implementado, verificación en dispositivo a medias** | Ver "pendiente de verificar" abajo |
|
||||||
| 3. Monitoreo de batería (overlay <20 % + bloqueo en carga) | ⬜ Pendiente | Notas técnicas en CLAUDE.md §8 |
|
| 3. Monitoreo de batería (overlay <20 % + bloqueo en carga) | ⬜ Siguiente | `BatteryStatusMonitor` ya existe como base; notas en CLAUDE.md §8 |
|
||||||
|
|
||||||
### Verificado en dispositivo (2026-07-03, Huawei HBP-LX9, Android 12)
|
### Verificado en dispositivo (2026-07-03, Huawei HBP-LX9, Android 12)
|
||||||
- Onboarding renderiza completo: título, 4 tarjetas, mascotas animadas (breathe/blink), badge "✓ Elegido", CTA.
|
- Onboarding completo: título, 4 tarjetas, mascotas animadas, badge, CTA, persistencia y navegación.
|
||||||
- Fuentes Baloo 2 / Nunito cargan vía Downloadable Fonts (el equipo tiene Google Play Services).
|
- Fuentes Baloo 2 / Nunito cargan vía Downloadable Fonts (el equipo tiene Google Play Services).
|
||||||
- Tap avatar → Continuar → persiste en DataStore (`avatar_kind`, `child_name`, `onboarding_completed`) → navega al placeholder del Dashboard.
|
- Dashboard: gate de arranque OK (entra directo con onboarding completado), saludo "¡Hola, Lucía!", fecha es-MX real, "te quedan 3 hábitos" (seed Room funcionó), sidebar completo (mascota sin orejas cortadas, Nv./XP/racha), columna derecha (En equipo, mensaje de mascota, Museo Diario).
|
||||||
|
|
||||||
|
### ⚠️ Pendiente de verificar (bloqueado por teléfono con PIN al final de la sesión)
|
||||||
|
En la única captura del dashboard NO se veían las 3 tarjetas de hábitos ni la tarjeta "Tu racha";
|
||||||
|
todo lo demás renderizaba. Puede ser un frame capturado a destiempo (EMUI) o un bug real de layout.
|
||||||
|
**Primer paso de la próxima sesión:** relanzar la app y mirar la pantalla — si las tarjetas aparecen,
|
||||||
|
cerrar el tema; si no, bisecar con cajas de color en `CenterColumn`/`StreakCard`.
|
||||||
|
Nota: la regla de racha y el toggle están cubiertos por 6 tests unitarios verdes (`StreakCalculatorTest`).
|
||||||
|
|
||||||
|
## Decisiones de producto tomadas en sesión 2
|
||||||
|
|
||||||
|
- **Racha v1 (DA-11):** se pierde completa al fallar un día; congelador pospuesto a v1.1 (recomendación del PRD §16.1).
|
||||||
|
- **Horarios por hábito:** el subtítulo ("A las 9:00 pm") es copy descriptivo; todo hábito cuenta antes de medianoche.
|
||||||
|
- **XP:** derivado 100 % de logs (10 XP por hábito hecho, nivel cada 500) — reversible y sin drift, igual que la racha. Sin tabla de recompensas aún (pregunta abierta §16.5).
|
||||||
|
- **Racha mostrada:** incluye hoy en cuanto se completa todo (feedback inmediato); desmarcar la revierte.
|
||||||
|
|
||||||
## Historial de commits relevantes
|
## Historial de commits relevantes
|
||||||
|
|
||||||
@@ -26,6 +40,9 @@
|
|||||||
- `1b5a1f7` feat(theme): paleta PRD §6 + Baloo 2/Nunito + shapes
|
- `1b5a1f7` feat(theme): paleta PRD §6 + Baloo 2/Nunito + shapes
|
||||||
- `ae8f6b7` feat(onboarding): pantalla de avatar + mascotas Canvas + DataStore + NavHost
|
- `ae8f6b7` feat(onboarding): pantalla de avatar + mascotas Canvas + DataStore + NavHost
|
||||||
- `3f7602e` fix(nav): placeholder de Dashboard con contenido visible (un Surface vacío parecía "pantalla en blanco" en pruebas)
|
- `3f7602e` fix(nav): placeholder de Dashboard con contenido visible (un Surface vacío parecía "pantalla en blanco" en pruebas)
|
||||||
|
- `28f2359` feat(habits): Room (Habit/HabitLog) + StreakCalculator + 6 tests
|
||||||
|
- `33de656` feat(battery): BatteryStatusMonitor (callbackFlow sobre sticky broadcast)
|
||||||
|
- `1d34b78` feat(dashboard): módulo 2 completo — 3 columnas, checks animados, confeti, gate
|
||||||
|
|
||||||
## Entorno de build (esta Mac)
|
## Entorno de build (esta Mac)
|
||||||
|
|
||||||
@@ -43,20 +60,16 @@
|
|||||||
- Avatar "Mi dibujo" usa Photo Picker (`PickVisualMedia`) — cero permisos de almacenamiento. Recorte orgánico (AV-02) pendiente de pulido.
|
- Avatar "Mi dibujo" usa Photo Picker (`PickVisualMedia`) — cero permisos de almacenamiento. Recorte orgánico (AV-02) pendiente de pulido.
|
||||||
- AV-08 (nombre configurable): ViewModel ya persiste `childName`, pero el onboarding no tiene campo de texto (el prototipo lo trata como prop, default "Lucía").
|
- AV-08 (nombre configurable): ViewModel ya persiste `childName`, pero el onboarding no tiene campo de texto (el prototipo lo trata como prop, default "Lucía").
|
||||||
|
|
||||||
## Deuda / pulido pendiente (detectado en prueba de dispositivo)
|
## Deuda / pulido pendiente
|
||||||
|
|
||||||
1. **Gate de onboarding**: la app siempre abre en onboarding aunque `onboarding_completed=true`; debe saltar directo al Dashboard (hacerlo junto con módulo 2).
|
1. ⚠️ Verificar tarjetas de hábitos + "Tu racha" en pantalla (ver arriba — prioridad 1 próxima sesión).
|
||||||
2. Orejas de mascotas recortadas dentro de las tarjetas; conejo se ve comprimido (headroom del Canvas en aspect ratio no cuadrado).
|
2. Avatar personalizado ("Mi dibujo") aún no se muestra como imagen (falta Coil o similar en el catálogo); hoy cae al marco punteado. Recorte orgánico AV-02 pendiente.
|
||||||
3. Layout del onboarding apretado en pantalla de teléfono — diseñado para tablet 1280×800 (target real). Decidir si se adapta o se asume tablet-only.
|
3. Layout diseñado para tablet 1280×800; en el teléfono de prueba (373 dp de alto útil) queda apretado. El target real es tablet — decidir si se adapta responsive o se asume tablet-only.
|
||||||
4. Migrar `kotlinOptions` deprecado ya hecho; sin otras warnings relevantes.
|
4. `confettiOn` (DA-05) hoy está fijo en true; se conecta cuando exista pantalla de Ajustes con gate parental.
|
||||||
|
5. Campo de nombre en onboarding (AV-08): el ViewModel ya lo persiste; falta el input en UI.
|
||||||
## Preguntas abiertas que bloquean el módulo 2 (de CLAUDE.md §11)
|
|
||||||
|
|
||||||
1. **¿La racha se pierde completa al fallar un día, o hay "congelador" desde v1?** (PRD recomienda: v1 simple, congelador en v1.1.) ← decidir antes de implementar DA-11.
|
|
||||||
2. ¿Horario límite individual por hábito? (afecta modelo Room del módulo 2)
|
|
||||||
|
|
||||||
## Próximos pasos (en orden)
|
## Próximos pasos (en orden)
|
||||||
|
|
||||||
1. Módulo 2 — Dashboard: entidades Room (`Habit`, `HabitLog`), tarjetas de hábitos con check 74 px, racha con llama animada, confeti al completar todo, gate de onboarding.
|
1. **Resolver el pendiente de verificación del dashboard** (arriba).
|
||||||
2. Módulo 3 — Batería: `ACTION_BATTERY_CHANGED` receiver, overlay <20 %, Activity de bloqueo en carga con verificación real.
|
2. Módulo 3 — Batería: overlay <20 % con mascota cansada (estados tired/sleep en `MascotIllustrations`), Activity de bloqueo en carga con verificación real de desconexión (`BatteryStatusMonitor` ya provee el flow).
|
||||||
3. Sprint 2+: backend .NET 10 + deploy PapuTec (CLAUDE.md §4), CI Gitea Actions.
|
3. Sprint 2+: backend .NET 10 + deploy PapuTec (CLAUDE.md §4), CI Gitea Actions.
|
||||||
|
|||||||
Reference in New Issue
Block a user