Roadmap
Este roadmap descreve a direção ativa do produto. Ele substitui a lista de fases mais antiga que existia antes da sincronização de provedores, blocos de tarefas, buckets, configurações e refatorações do calendário.
Forma atual do produto
Dainvo é um espaço de calendário desktop local primeiro com:
- calendários locais e CRUD de eventos locais
- caminhos de sincronização/mutação para Google, Outlook, Apple Calendar e CalDAV genérico
- expansão básica de recorrência
- importação/exportação ICS
- tarefas principais locais, Todoist, Microsoft To Do, Google Tasks e TickTick
- blocos de tarefas como sessões de trabalho no calendário
- buckets como blocos de tempo do calendário que podem conter tarefas
- configurações de calendário, tarefas, aparência, contas, lembretes, atalhos e sincronização
- suporte a reuniões online do Microsoft Teams, Google Meet, Zoom e Webex
- lembretes no processo principal e limites seguros para provedores/tokens
Projetos não são expostos no app ativo. O repositório ainda tem tabelas de projeto, nomes IPC e serviços de compatibilidade porque buckets originalmente compartilhavam esse namespace e Projetos podem voltar no futuro. Trate esses nomes como detalhes de compatibilidade, a menos que um projeto futuro reative Projetos explicitamente.
Trabalho de estabilidade no curto prazo
- Continuar reduzindo
CalendarPage.tsxextraindo hooks de mutação focados e componentes de renderização. - Manter comportamento de calendário, tarefas, provedores, buckets, contas e configurações atrás das APIs preload tipadas existentes.
- Manter carregamento de intervalo visível do calendário limitado para eventos, tarefas e buckets.
- Continuar reforçando inicialização, migração, sincronização e desligamento do banco de dados.
- Adicionar testes para helpers extraídos, validação, serviços e mudanças de repositório quando o comportamento mudar.
Direção de recursos
- Calendário: manter FullCalendar apenas como UI, preservando barra de ferramentas, barras laterais, popups compactos, menus de contexto, painel de detalhes e modais próprios do app.
- Tarefas: manter tarefas principais separadas de blocos de tarefa; blocos de tarefa continuam sendo registros locais de agendamento.
- Provedores de tarefas: manter projetos/listas de provedores como metadados de provedor para sincronização/composição/filtragem da barra lateral. Espelhamento de projetos do Todoist em Projetos do Dainvo é apenas futuro.
- Buckets: manter buckets independentes de Projetos e renderizá-los como itens de calendário
kind: 'bucket'. - Configurações: estender as seções existentes do DaisyUI e persistência tipada de preferências em vez de adicionar controles ad hoc.
- Documentos e Projetos: manter como planejamento futuro, a menos que sejam explicitamente escopados.
Endurecimento de versão
- Manter
pnpm lint,pnpm typecheck,pnpm testepnpm buildpassando. - Manter testes de provedores mockados; testes automatizados não devem chamar serviços reais do Google, Microsoft, Apple Calendar, CalDAV, Todoist, TickTick, Zoom, Webex, Supabase ou Stripe.
- Manter tokens OAuth, caminhos de banco de dados, payloads de provedores e dados brutos de sincronização fora do renderer e dos logs.
- Adicionar notas de empacotamento, assinatura/notarização e QA de versão antes de uma versão desktop estável.