Roadmap
Este roadmap describe la dirección activa del producto. Reemplaza la lista de fases anterior que existía antes de la sincronización con proveedores, bloques de tareas, buckets, configuración y refactorizaciones del calendario.
Forma actual del producto
Dainvo es un espacio de calendario de escritorio local primero con:
- calendarios locales y CRUD de eventos locales
- rutas de sincronización y mutación para Google, Outlook, Apple Calendar y CalDAV genérico
- expansión básica de recurrencias
- importación y exportación ICS
- tareas principales locales, de Todoist, Microsoft To Do, Google Tasks y TickTick
- bloques de tareas como sesiones de trabajo en calendario
- buckets como bloques de tiempo de calendario que pueden contener tareas
- configuración para calendario, tareas, apariencia, cuentas, recordatorios, atajos y sincronización
- soporte de reuniones en línea con Microsoft Teams, Google Meet, Zoom y Webex
- recordatorios en el proceso principal y límites seguros para proveedores y tokens
Los proyectos no están expuestos en la app activa. El repositorio todavía tiene tablas, nombres IPC y servicios de compatibilidad de proyectos porque originalmente los buckets compartían ese espacio de nombres y los proyectos podrían volver en el futuro. Trata esos nombres como detalles de compatibilidad salvo que un proyecto futuro reactive explícitamente Proyectos.
Trabajo de estabilidad a corto plazo
- Seguir reduciendo
CalendarPage.tsxmediante hooks de mutación enfocados y componentes de renderizado. - Mantener comportamiento de calendario, tareas, proveedores, buckets, cuentas y configuración detrás de las APIs preload tipadas existentes.
- Mantener acotada la carga de rangos visibles del calendario para eventos, tareas y buckets.
- Seguir endureciendo inicio, migración, sincronización y cierre de base de datos.
- Añadir pruebas para helpers extraídos, validación, servicios y cambios de repositorio cuando cambie el comportamiento.
Dirección de funciones
- Calendario: mantener FullCalendar solo como UI mientras se preservan barra de herramientas propia de la app, barras laterales, popups compactos, menús contextuales, panel de detalles y modales.
- Tareas: mantener tareas principales separadas de bloques de tareas; los bloques de tareas siguen siendo registros locales de programación.
- Proveedores de tareas: mantener proyectos/listas de proveedores como metadatos del proveedor para sincronización, compositor y filtrado de barra lateral. Reflejar proyectos de Todoist en Proyectos de Dainvo es solo futuro.
- Buckets: mantener buckets independientes de Proyectos y renderizarlos como elementos de calendario
kind: 'bucket'. - Configuración: extender las secciones existentes de DaisyUI y la persistencia tipada de preferencias en lugar de añadir controles ad hoc.
- Documentos y Proyectos: mantenerlos como planificación futura salvo que se acoten explícitamente.
Endurecimiento de versiones
- Mantener
pnpm lint,pnpm typecheck,pnpm testypnpm buildpasando. - Mantener pruebas de proveedores con mocks; las pruebas automatizadas no deben llamar servicios reales de Google, Microsoft, Apple Calendar, CalDAV, Todoist, TickTick, Zoom, Webex, Supabase o Stripe.
- Mantener tokens OAuth, rutas de base de datos, payloads de proveedores y datos de sincronización sin procesar fuera del renderer y logs.
- Añadir notas de empaquetado, firma/notarización y QA de versiones antes de una versión estable de escritorio.