Este documento mantiene las notas vigentes y decisiones duraderas de desarrollo de Notifica.
El documento historico completo se conserva en archive/dev-notes-history.md.
Notifica es una app Vue 3 + TypeScript + Vite con Tailwind CSS. Se distribuye como:
- PWA de produccion desplegada desde
mainen Vercel - app Android generada con Capacitor y publicada en Google Play
develop es la rama activa de trabajo.
La fase actual es v1.3.x Fortificacion Tecnica: mejorar workflow, documentacion, tests, arquitectura y mantenimiento antes de volver a crecer en funcionalidades.
- Preview generica de
developen Vercel: Notifica develop. - Usar esta URL para la primera revision de cambios desplegados desde
develop. - No confundirla con la PWA de produccion publicada desde
main.
v1.3.xse mantiene como fase interna de fortificacion y no se publica como version de producto.- El objetivo publico siguiente es una release coordinada PWA + Android
1.4.0. - El alcance congelado de
1.4.0incluye los cambios ya validados endevelop, la featureMantener pantalla encendida, el mantenimiento compatible de dependencias/seguridad y la retirada completa del aviso de nueva version, su CTA de Play Store y su entrada del menu PWA. - La revision explicita de pendientes quedo cerrada el 2026-08-24: fechas cerca de medianoche, barra inferior Android en tema oscuro, deuda tecnica adicional y automatizacion de capturas Android permanecen fuera de
1.4.0. - La preparacion del candidato deja coherentes
package.json,package-lock.json, Android y la version visible en1.4.0; elversionCodecandidato es11y se comprobara de nuevo contra Play Console antes de una subida real. - Esta preparacion es un gate previo y no implica merge a
main, tag, produccion, Play Console ni publicacion. La decision final queda pendiente de confirmacion expresa del usuario y de un momento adecuado para publicar. - Orden de trabajo acordado: mantenimiento de dependencias, implementacion y validacion de
Mantener pantalla encendida, retirada y validacion del aviso antiguo, preparacion de release. - El primer pase de mantenimiento de dependencias ya esta aplicado dentro de las lineas compatibles: Capacitor 7, Vite 6, PostCSS, Workbox/PWA y
npm-run-all29. - Tras el pase,
npm audit --omit=devqueda limpio; el audit completo conserva 8 avisos transitivos de tooling (1 baja, 1 moderada y 6 altas, sin criticas), que no bloquean el grafo de produccion y quedan separados para una futura revision de herramientas. - La implementacion de
Mantener pantalla encendidaesta actualmente endevelop: ajuste persistente y desactivado por defecto, Screen Wake Lock validado en la PWA iPhone yFLAG_KEEP_SCREEN_ONvalidado en la APK debug del Huawei para activacion, persistencia, ciclo de segundo plano/reapertura, auto-bloqueo con el ajuste desactivado y liberacion en caliente. - La retirada del aviso de nueva version queda aprobada como el ultimo cambio funcional acotado antes de preparar
1.4.0.
- La PWA movil de
developno muestra el banner antiguo de nueva version. - El menu lateral ya no muestra la entrada de novedades.
- Los ajustes, tareas, notas,
Deshacer, exportacion y compartir siguen funcionando correctamente. - La PWA conserva preferencias y datos tras recarga/reapertura.
- La prueba desktop se omitio conscientemente al compartir la misma ruta funcional y no haber cambios especificos de viewport.
- La APK debug
com.jcpaezd.notifica.debugse recompilo, instalo y arranco correctamente en el HuaweiPOT-LX1; la APK de produccioncom.jcpaezd.notificapermanecio instalada e independiente. - Con el ajuste activo, la pantalla permanecio encendida al menos 10 minutos despues del ultimo toque conocido, superando el timeout normal configurado de 5 minutos.
- La activacion/desactivacion, el paso a segundo plano, la reapertura y la persistencia del ajuste se comportaron correctamente durante la prueba manual.
- La prueba inicial de bloqueo no fue concluyente porque el dispositivo estaba conectado por USB y reporto
stay_on_while_plugged_in=7,mPlugType=2yscreen_off_timeout=300000; se repitio con valores temporales0y30000, y se confirmo el auto-bloqueo y la liberacion en caliente.
- Los metadatos de
package.json,package-lock.json, Android y la version visible quedan coherentes en1.4.0. - El
versionCodeAndroid candidato es11; debe comprobarse de nuevo contra Play Console en el momento real de subida. npm run qualitypaso: type-check, 14 archivos de tests unitarios, 54 tests y build PWA.npm run test:e2epaso con 14 tests en Chromium y mobile-Chrome.npx cap sync android,assembleDebugybundleReleasepasaron con la firma local configurada.- El manifest Android generado fue comprobado con
com.jcpaezd.notifica,versionCode 11yversionName 1.4.0; la firma del AAB se verifico. - La verificacion local de firma pasa, con las advertencias esperables del keystore local sobre certificado autofirmado y ausencia de timestamp; la credencial y el esquema de firma de Play Console deben confirmarse en el gate real.
- El AAB candidato se conserva localmente en
android/app/release/app-release-2026-08-24-v1.4.0.aab; es un artefacto ignorado por Git y no se ha subido a Play Console. - Este checkpoint deja preparada la release, pero no autoriza merge a
main, tag, produccion, Play Console ni publicacion. Queda pendiente la revision final del candidato desplegado endevelopy la confirmacion expresa del usuario.
developse publico enorigin/developen592e98ey el preview generico de Vercel respondioHTTP 200.- El bundle remoto contiene la version visible
Notifica v1.4.0y no contiene el aviso/menu retirado. - En la PWA publicada se comprobo la version visible
v1.4.0, la ausencia deNovedadesy la presencia deMantener pantalla encendidadesactivado por defecto. - Una pestaña que conservaba la version anterior mostro
v1.3.0hasta recargarse; despues de la recarga quedo env1.4.0. Se registra como observacion de actualizacion de service worker/cache, no como regresion funcional. - La preparacion queda pausada antes del gate final: no hay merge a
main, produccion, tag, Play Console ni publicacion. - Los valores originales del dispositivo se restauraron y verificaron:
stay_on_while_plugged_in=7yscreen_off_timeout=300000.
- Durante la revision del gate final en la PWA movil se detecto que, tras reabrir la app con notas en el tramo actual, el panel aparecia cerrado y las notas existentes quedaban con altura cero hasta editarlas.
- La diagnosis local confirmo que los datos se recuperaban correctamente; el problema estaba en la sincronizacion inicial de la apertura y en el redimensionado de textareas cuando el panel se mostraba.
ShiftNotes.vueahora inicializa la apertura tambien en el montaje y redimensiona todas las notas al montarse, al cambiar el contenido y despues de abrir la transicion.- Se anadio un E2E que comprueba reapertura, apertura automatica, visibilidad y valores de varias notas persistidas; la suite completa pasa con 14 tests en Chromium y mobile-Chrome.
npm run qualitypasa con type-check, 14 archivos unitarios, 54 tests y build PWA.- La revalidacion manual de Notas en la PWA desplegada en
developquedo completada el 2026-08-25: reapertura, apertura automatica, visibilidad inmediata, cambio de tramo, edicion y persistencia pasaron correctamente.
- Se eligio el AVD
Pixel_7con Android API 34 para repetir la comprobacion sin usar el Huawei. npx cap sync android,assembleDebug,bundleReleaseyassembleReleasefinalizaron correctamente; la APK releasecom.jcpaezd.notifica1.4.0/versionCode 11se instalo y probo en el emulador.- Con una tarea y una nota creadas y la nota desenfocada para confirmar la escritura,
force-stopy reapertura conservaron la tarea, el contador, la apertura automatica del panel y el texto visible. - El AAB candidato actualizado queda archivado localmente en
android/app/release/app-release-2026-08-25-v1.4.0.aab; no se modifico Play Console.
- La revision de Play Console detecto que las futuras actualizaciones deben orientarse a Android 16 / API 36 desde el 2026-08-31; la produccion actual sigue en
1.3.0y no se hizo ninguna subida. - Se instalo localmente
platforms;android-36yandroid/variables.gradlequeda conminSdkVersion 23,compileSdkVersion 36ytargetSdkVersion 36. npx cap sync android,assembleDebugybundleReleasefinalizaron correctamente. Se conserva el mismoversionName 1.4.0yversionCode 11.- El AAB API 36 queda archivado localmente en
android/app/release/app-release-2026-08-25-v1.4.0-api36.aab, con SHA-2564DB8379AA804FC9C507630C93AB2D3593766333D8C2ABB3858C408B51BD8C2F4. - Se valido la variante debug
com.jcpaezd.notifica.debugen el AVDMedium_Phone_API_36.0: arranque, interfaz, acceso a Ajustes, activacion en caliente deMantener pantalla encendiday persistencia tras relanzar. El valor se restauro a desactivado y el emulador se cerro. - Los avisos de Gradle/Capacitor y de firma local son los esperables y no bloquearon la compilacion. Play Console, merge, tag y publicacion siguen pendientes.
- El guardado de una nota al perder el foco es el comportamiento esperado por diseno. La perdida de una edicion aun enfocada al cerrar abruptamente la app queda registrada como mejora de robustez.
- La ventana de perdida de una tarea creada y cerrada casi inmediatamente solo se observo en una prueba sintetica de
force-stop, sin reproduccion en uso manual normal. - Se acepta expresamente este riesgo para
1.4.0; la mejora queda priorizada como bug/hardening para la siguiente version, sin reabrir el alcance actual ni bloquear el gate de release.
Texto aprobado para la ficha/release de 1.4.0:
- Nuevo ajuste «Mantener pantalla encendida».
- Notas por tramo visibles al reabrir la app.
- Exportacion JSON y uso compartido mejorados.
- Correcciones y optimizaciones generales.
Criterio de oportunidad: publicar en cuanto el gate este cerrado y exista una ventana suficiente para comprobar produccion con calma. No hay una hora concreta preferida.
- Tratar
maincomo produccion viva. - Tratar
developcomo rama de trabajo salvo indicacion explicita. - Preservar compatibilidad con datos existentes en localStorage y JSON importado/exportado.
- No refactorizar persistencia, fechas o exportacion sin tests o plan de validacion concreto.
- Mantener cambios UI/UX pequenos bajo validacion humana antes de cerrarlos.
- Usar
../notifica_docspara planes privados, estrategia interna y analisis que aun no deben vivir en el repo publico.
La guia repo-local vive en:
Uso esperado de skills:
capture-item: notas crudasrefine-item: items capturados pero ambiguosplan-version: decisiones de roadmap y bloques de trabajodesign-spec: diseno de items seleccionadosbreakdown-feature: division de trabajo ya disenadoimplement-feature: implementacion claradebug-root-cause: bugs poco clarosrelease-workflow: releases PWA/Android
- Notifica-Roadmap.md: roadmap activo y fase actual.
- architecture.md: arquitectura y direccion del refactor.
- maintenance.md: checks locales y mantenimiento diario.
- release-process.md: proceso de release PWA/Android.
- i18n.md: flujo de traducciones.
- known-issues.md: bugs conocidos y caveats de plataforma.
- archive/: documentacion historica.
- working/: inventarios temporales.
- La persistencia local es una superficie critica de datos de usuario.
- Import/export es una superficie de compatibilidad.
- Los toasts son el mecanismo preferido para feedback no intrusivo.
Undoes preferible a confirmacion bloqueante para acciones frecuentes y reversibles cuando encaja con el sistema de toasts.window.confirm()sigue siendo aceptable para acciones destructivas raras donde la interrupcion es intencional.- Los textos i18n deben vivir en
src/locales/, no directamente en templates. - PWA y Android deben mantenerse alineadas salvo diferencia deliberada y documentada.
Mantener la documentacion activa corta y navegable.
Cuando un documento acumule historial, mover la narracion antigua a archive/ y dejar en vivo solo la decision, regla o enlace vigente.