- Mascota con estados de ánimo: Tired (cejas caídas + gota de sudor 2.4s)
y Sleep (ojos cerrados + Z flotantes 2.6s), PRD §5.1/§6.4
- LowBatteryPolicy: bandas 20/15/10/5 (BA-03) con 7 tests — al descartar
en una banda solo reaparece al caer a la siguiente
- BatteryUxViewModel: máquina de estados normal→low→charging; conectar
el cargador resetea el ciclo de alertas
- LowBatteryOverlay (BA-01/02/04): scrim del prototipo, mascota cansada,
% real en negritas, barra coral, 'Ahora no' + 'Conectar cargador' con
coralpulse; bloquea interacción con el fondo
- ChargingLockScreen (CA-01..05): gradiente nocturno + 46 estrellas
twinkle, cápsula de energía con glow, 'Cargando · N%', botón 'Ya la
desconecté' que NUNCA desbloquea (el candado cae solo al detectar la
desconexión real — CA-04 estructural), despertar al 100%, sin back
- Escape 'salir (debug)' solo en builds DEBUG para desarrollo por USB
- Overlays montados sobre el NavHost: cubren cualquier pantalla
- Breakpoint 600dp: debajo, dashboard en una sola columna scrolleable
(header, perfil+XP+llama compactos, semana, hábitos, mascota, equipo,
museo); arriba, se mantiene el layout 3 columnas del PRD §5.2
- Onboarding: grid 2×2 en compacto, 4 columnas en tablet
- Orientación desbloqueada en manifest (sensorLandscape fuera)
- WeekRow extraído a componente compartido; TeamAccessCard y
MuseumMiniCard ahora internal para reuso entre layouts
- Header reestructurado: en el Huawei de prueba el Row con Alignment.Bottom
+ SpaceBetween medía ~270dp fantasma, aplastando la lista de hábitos a
altura 0 (las tarjetas ni se componían). Ahora es columna simple con
chips en fila propia y maxLines acotados.
- LazyColumn con weight(1f) en vez de fillMaxSize dentro de Column sin peso.
- Singular '1 día de racha' / '1 día' (antes '1 días').
- Layout 3 columnas (sidebar 232dp · centro flex · derecha 296dp)
- Tarjetas de hábito: franja de color, ícono 62dp, check 74dp con
palomita animada (drawCheck 0.5s + pop) y badge ¡Hecho!, toggle reversible
- Tarjeta Tu racha: llama Canvas con flicker, semana L-D, banner
'¡Racha asegurada hoy!' al completar todo
- Confeti de 26 piezas con paleta Rachita (una vez por celebración)
- Sidebar: perfil con mascota, barra XP derivada de logs (10 XP/hábito),
menú de navegación (solo Inicio activo en sprint 1)
- Chip de batería real (gris normal / coral <20% / verde cargando)
- Gate de arranque: onboarding completado → directo al dashboard
- Copy exacto del prototipo; fix orejas recortadas de mascotas
- HabitEntity/HabitLogEntity (1 log por hábito por día, fecha ISO)
- Seed de los 3 hábitos del PRD DA-02 en primer arranque
- StreakCalculator puro: día asegurado = todos los hábitos hechos;
racha = días consecutivos terminando hoy (o ayer si hoy va en progreso);
fallar un día completo reinicia a 0 (DA-11 v1, sin congelador)
- 6 tests unitarios de racha (incluye reversibilidad del toggle)
Un Surface crema vacío tras completar onboarding se confundía con una
pantalla en blanco durante pruebas en dispositivo (Huawei HBP-LX9).
Ahora muestra mascota + mensaje hasta que llegue el módulo 2.