- Fix: a barra lateral rola por inteiro — só o logo e o seletor de espaço ficam fixos, e o atalho de nova pasta acompanha a lista
- UX: links da organização (Visão geral, Membros, Configurações da org) agora ficam no menu do seletor de espaço
- UI: interface mais compacta no computador — botões, campos, menus, abas, diálogos, cabeçalhos e espaçamentos menores, com os alvos de toque mantidos no celular
- UI: topbar mais baixa e títulos de página, painéis de pasta e colunas do Kanban mais enxutos
- Fix: itens recuados nos menus suspensos voltam a respeitar o recuo
Notas protegidas por PIN
Guarde senhas de sistemas, chaves de API e arquivos .env numa nota que só abre com o seu PIN e trava sozinha.
- Fix: testes automáticos não dependem mais da URL do Supabase do ambiente, e a verificação contínua (CI) volta a passar
- Feat: notas protegidas por PIN — o conteúdo fica cifrado no servidor, abre só com o PIN e trava sozinho depois de 5 minutos sem uso; bom para guardar um .env ou um texto sensível
- Feat: "Copiar conteúdo" na nota protegida, com o texto fiel (inclusive blocos de código)
- Segurança: nota protegida fica fora da busca, do assistente de IA, do histórico de versões, do link público e da exportação
- Fix: sair da página com um formulário preenchido (cofre de senhas, despesas) agora pede confirmação, com "Salvar e sair"
- Fix: o aviso de alterações não salvas vale para qualquer link (Voltar, breadcrumb, menus) e para fechar ou recarregar a aba
- Fix: depois de sair de um fluxo ou mapa mental, outras páginas não mostram mais o aviso de alterações não salvas sem motivo
- Segurança: conflito de versão nunca devolve o conteúdo cifrado do cofre ao navegador
- Feat: o proprietário pode excluir a organização em Configurações, confirmando pelo nome; as pastas voltam ao Espaço pessoal de cada dono
- Segurança: arquivos de listas só podem ser excluídos por quem os enviou; editores removem arquivos de colegas pelo servidor, com checagem
- Segurança: uploads de até 4 MB, sem SVG/HTML e com o tipo conferido pelo conteúdo do arquivo
- Segurança: a chave da OpenAI nunca volta ao navegador; conversas com a IA ficam visíveis só para quem perguntou
- Fix: a API de IA respeita plano, cota e histórico, como o app
- Fix: link público de uma lista visível só para o dono; cópia de lista e Pasta Modelo ganham arquivos próprios
- Fix: notas, contador e tarefas da pasta não sobrescrevem alterações feitas em outro lugar ("Recarregar")
- Fix: tarefas digitadas com a rede fora não somem mais; "Tentar novamente" grava tudo de uma vez
- Fix: Desfazer a conclusão devolve a tarefa à coluna de origem (no sprint, ao Backlog)
- Fix: título editado no detalhe é salvo ao fechar clicando fora
- Fix: comentários não recarregam sem parar; comentário excluído aparece como "Comentário removido"
- Fix: arquivo ou despesa excluída não volta mais ao recarregar a página
- Fix: concluir aqui e mudar a prioridade em outra aba não pede mais "Recarregar"; coluna "A concluir" não é confundida com "Concluído"
- Fix: avisos seguem o tema e não cobrem o campo de nova tarefa; sprint no celular sem rolagem dupla
- Feat: "Adicionar tarefa para hoje" direto da tela Hoje
- Acessibilidade: tipo do novo item como grupo de opções, foco nas telas de erro e em Hoje, nomes distintos em listas e filtros
- Fix: textos atenuados com contraste legível; barra do navegador na cor do tema escolhido; criação desabilitada na conta demo
Tarefas sem atrito
Renomeie e descreva tarefas, adicione várias seguidas e desfaça qualquer exclusão ou conclusão por 6 segundos.
Kanban e calendário no celular
Arraste com toque longo ou pelo teclado, veja a agenda da semana e toque na tarefa para abrir os detalhes.
Tema Sistema e cores legíveis
Claro, Escuro ou Sistema, com contraste AA em todas as telas e textos revisados em português.
- Feat: tema Sistema como padrão e seletor Claro/Escuro/Sistema; fluxo e mapa mental acompanham o tema
- Feat: cores com contraste AA nos dois temas — laranja de interação mais escuro e coral reservado à marca; prioridade e status com cores próprias
- UX: textos revisados em português (acentos, sentence case, Rótulo, Quadro, Modelo, Excluir, Leitor); colunas padrão "A fazer" e "Em andamento"
- Acessibilidade: nome em português em todos os botões só com ícone, "Fechar" nos diálogos e botões com resposta ao pressionar
- Feat: renomear tarefa e escrever descrição no painel de detalhes (também pela API e pelo MCP)
- Feat: linha de tarefa enxuta, com menu ⋯ e clique direito; no celular, tocar abre os detalhes
- Feat: Desfazer por 6 s ao excluir ou concluir tarefa e ao excluir despesa ou arquivo; sucesso silencioso com "Salvo às hh:mm"
- Perf: adicionar várias tarefas seguidas só com Enter; concluir tarefa não recarrega a página; detalhe e comentários carregam sob demanda
- Fix: lista de tarefas e quadro na altura toda, com adição rápida fixa e barra de ferramentas sem corte em 320 px
- Feat: Kanban arrasta no toque (toque longo), no mouse e no teclado, com cartão flutuante e "Mover para coluna"
- Feat: calendário no celular com faixa semanal e agenda do dia; tocar numa tarefa abre os detalhes em vez de concluí-la
- Fix: quadro e calendário respeitam a permissão de edição e as dependências; leitor de tela anuncia o arraste em português
- Feat: pastas mostram primeiro o conteúdo real, com "Adicionar à pasta" e a aba "Todos os itens" com filtro por tipo; "Excluir pasta" no menu ⋯
- Feat: estados vazios com ação no Início, Hoje, Notificações e busca; Ctrl+K oferece "Criar item «termo»"; telas de erro com "Tentar novamente"
- Feat: Configurações em uma coluna com atalhos por seção; "Dashboard" vira "Início" e "Inbox" vira "Notificações"
- Feat: membros de notas compartilhadas usam o assistente de IA; sem chave, o assistente mostra "em breve" em vez de levar a uma página sem ação
- Segurança: a IA nunca recebe conteúdo de cofres de senha nem de arquivos; o histórico de versões nunca mostra dados cifrados
- Segurança: senhas antigas do cofre só são reveladas na lista a que pertencem; a API de senhas passa a cifrar no servidor
- Fix: pastas não podem mais formar ciclos (o app deixava de responder para todos)
- Fix: excluir pasta, no app ou pela API, devolve listas e subpastas aos donos, tudo ou nada; colega não transforma pasta compartilhada em "Recuperados"
- Privacidade: excluir a conta preserva o conteúdo, as organizações e as respostas dos colegas; arquivos só são apagados depois da exclusão
- Fix: conflito com outra aba preserva colunas, visão e campos; falha ao salvar oferece "Tentar novamente"
- Fix: o link de recuperação de senha volta a abrir a tela de nova senha
- Fix: lembretes respeitam o limite do plano; reabrir lembrete vencido não dispara e-mail; pendentes aparecem primeiro no Início
- Fix: lembrete, contador, hábito, despesa, cofre e arquivo usam a largura toda; modais de PIN não rolam a página sozinhos
- Fix: upload mostra limite e tipos aceitos antes de enviar; avisos aparecem acima da navegação inferior no celular
- Chore: verificação ortográfica em português e de cores por token no CI
Busca e atalhos que funcionam
Ctrl+K ou / abre a busca com recentes, pastas, listas e ações de criar; atalhos de uma tecla para navegar sem mouse.
Hoje de verdade
Prazos no dia certo, no seu fuso, e tarefas concluídas direto na tela Hoje — com Desfazer.
Seus dados protegidos
Cofre de senhas mais seguro, detecção de edições simultâneas e novas opções de privacidade (exportar e excluir conta).
- Feat: busca global (Ctrl+K ou /) refeita com recentes, pastas, listas e ações — criar nota, lista de tarefas, lembrete e pasta direto pela busca
- Feat: atalhos de uma tecla — C cria, / busca, ? mostra a ajuda e G depois H/T/I vai para Início, Hoje e Notificações
- Feat: concluir tarefas direto em Hoje e nos widgets, com Desfazer; sprints entram em Hoje e nas atrasadas
- Fix: prazos gravados como data e exibidos no dia certo em todas as visões; Hoje, atrasadas e saudação no fuso do usuário
- Fix: hábito e despesa usam o dia local (a sequência não zera mais à noite); despesa aceita 1.234,56 e pode ser editada
- Feat: notas com autosave silencioso e histórico de versões útil (conteúdo anterior, no máximo 1 a cada 10 min, além de Ctrl+S)
- Perf: digitar em notas grandes não redesenha mais o editor nem a barra lateral a cada tecla
- Feat: tarefas e sprints detectam alterações feitas em outra aba e mesclam automaticamente; quando não dá, oferecem Recarregar
- Fix: editores convidados de uma pasta criam listas e subpastas e salvam em listas de subpastas
- Fix: excluir pasta move as listas das subpastas para a pasta pai ou para Recuperados, em vez de deixá-las órfãs
- Fix: contadores de tarefas iguais no dashboard, na pasta e na lista; listas arquivadas não contam no limite do plano
- Feat: lembrete sempre com data e hora (atalhos Hoje 18h, Amanhã 9h, Próxima segunda), com Editar data e Reabrir
- Segurança: senhas do cofre cifradas vinculadas à lista, à credencial e ao dono; conteúdo cifrado não vai mais ao navegador
- Segurança: PIN do cofre bloqueia por 15 minutos após 5 erros; novos PINs têm 6 dígitos; desativar pede o PIN atual
- Privacidade: baixar meus dados e excluir conta com carência de 7 dias, em Configurações → Privacidade
- Feat: seletor de espaço (pessoal/organizações) também no celular; barra inferior com Início, Hoje, Criar, Notificações e Menu
- Fix: ao abrir um link do app sem estar logado, o login leva direto para ele; o callback só redireciona para caminhos internos
- PWA: doFlow instalável na tela inicial, com títulos por página, robots.txt e sitemap
- Legal: páginas de Privacidade, Termos de Uso e Cookies (versão preliminar) e aviso de aceite no cadastro
- Fix: URL inexistente mostra Página não encontrada em vez de levar ao login; landing servida estática pelo CDN
- Segurança: Next.js 15.5.26 e dependências com correções de vulnerabilidades
- Fix: nomes de colegas com acesso herdado (pasta pai) voltam a aparecer nos comentários e no chat da pasta
- Segurança: convite só consulta o e-mail depois de confirmar que você é dono da lista ou pasta
- Fix: um lembrete malformado ou e-mail inválido não trava mais o envio dos demais; execuções duplicadas do cron não repetem e-mails
- Fix: desfazer do Kanban volta ao estado anterior ao arraste quando a gravação falha
- Tech: CI no GitHub Actions (tipos, lint, testes e build), smoke pós-deploy e Dependabot semanal
- Tech: Speed Insights e Analytics da Vercel, logs em JSON e health check que responde 503 quando o banco cai
- Fix: página de erro global em pt-BR quando o próprio layout falha
- Segurança: cabeçalhos contra clickjacking, sniffing de tipo e vazamento de referer (links públicos continuam embutíveis)
- Tech: protótipo /v2 removido (redireciona para a página inicial) e componentes de animação sem uso apagados
- Tech: repositório mais leve — dependências do servidor MCP e arquivos temporários saem do versionamento
- Docs: README reescrito com o fluxo atual (Vercel, migrations, crons)
- Segurança: conta de demonstração somente leitura em todas as ações de escrita (inclui troca de senha), com migration de RLS e reset diário dos dados de exemplo
- Segurança: nota compartilhada não aceita mais HTML injetado pelo nível do título ou pela cor da célula
- Segurança: período de teste único por usuário (também pela API) e sem promoção a proprietário de organização
- Segurança: menções só notificam quem tem acesso à lista; assistente de IA não lê cofres de senhas nem arquivos
- Fix: lembretes voltam a ser enviados a cada 5 minutos, sem disparar e-mails de lembretes antigos ou arquivados
- Feat: avisos por e-mail 3 dias e 1 dia antes do fim do teste do Pro e ao expirar
- Fix: listas de hábito e despesa criadas pela API/MCP deixam de nascer com conteúdo vazio (e as views toleram registros antigos)
- Fix: concluir tarefa recorrente pelo widget da pasta agora cria a próxima ocorrência
- Fix: concluir/reabrir tarefa grava coluna do Kanban e data de conclusão também no servidor
- Fix: arrastar card no Kanban grava uma única vez ao soltar (antes gravava a cada coluna cruzada) e toggle no quadro não dispara mais duas gravações concorrentes
- Fix: salvar tarefas não apaga mais colunas do Kanban, visão escolhida e campos customizados
- Fix: causa raiz da queda da API — conflito de rotas dinâmicas em /api/v1/invitations ([id] e [token] no mesmo nível) derrubava todas as rotas /api
- Fix: rotas de API (/api/v1, MCP, cron de lembretes e health) voltam a responder — o middleware deixa de interceptar /api/*
- Infra: deploy exclusivo na Vercel — removidos Dockerfile, .dockerignore e output 'standalone'
- Fix: agrupar tarefas por status agora respeita as colunas reais — itens do Backlog aparecem em 'Backlog', não mais em 'Outros'
- UX: toast 'Salvando...' deixou de empilhar ao arrastar vários cards no board (um único toast que se atualiza)
- UX: botão 'Ordenar' aparece apenas na visão Lista, onde tem efeito (escondido no Board e Calendário)
- Feat: no Sprint, tarefas sem prazo nascem com a data de fim do sprint (removível pelo usuário)
- Feat: novo tipo de lista 'Sprint' para times de dev — board Kanban com coluna de Backlog, meta do sprint e datas de início/fim com indicador de dias restantes
- Feat: progresso do sprint por contagem de tarefas (concluídas vs total), considerando apenas o que está no sprint (Backlog não conta)
- Feat: Backlog vs sprint ativo — novas tarefas entram no Backlog e são puxadas para o board ao arrastá-las para 'A Fazer'
- Tech: sanitização de tarefas passa a preservar responsável (assignedUserId) e data de conclusão (completedAt)
- Fix: navegação de orgs — OrgSwitcher agora exibe links diretos para Gerenciar org, Membros e Configurações quando uma org está ativa
- Feat: seção 'Organização' no sidebar desktop — links de Visão geral, Membros e Configurações aparecem automaticamente quando uma org está ativa
- Feat: seção de org no menu mobile — mesmos links acessíveis pelo sheet lateral
- Feat: rotas de org registradas em lib/app-routes.ts — aparecem no Mapa do App em /changelog
- Feat: API REST v1 ganhou cobertura completa — endpoints REST para Tags, Task Comments, Folder Tasks, Public Share, Sharing (list/folder members + invitations), Search, Reminder snooze, List Versions, Mentions, Me, Settings, Organizations, Plans, Subscriptions, Usage, Trial e AI
- Feat: Operações cirúrgicas em TodoItem via /api/v1/todos/[id]/items/[itemId] — adiciona, atualiza, deleta e toggle (com suporte a recorrência) sem precisar enviar o array items inteiro
- Feat: Endpoint público sem autenticação /api/v1/public/lists/[token] — read-only para listas compartilhadas (bloqueia type=password)
- Feat: /api/v1/lists/[id]/ai/ask — assistente de IA via API REST usando ai_settings do usuário (OpenAI), com /history e clear
- Feat: /api/v1/me, /api/v1/me/settings, /api/v1/me/mentions, /api/v1/me/subscription, /api/v1/me/usage, /api/v1/me/trial — perfil e billing do usuário autenticado
- Feat: /api/v1/organizations — CRUD de orgs Enterprise, gestão de membros (owner/admin/member/viewer) e convites com token SHA-256
- Feat: /api/v1/search?q=&type=&folder_id=&limit= — busca por título com filtros
- Feat: /api/v1/lists/[id]/share gera/regenera/revoga share_token para link público
- Feat: /api/v1/invitations + /[token]/accept + /[id] — listar pendentes, aceitar e cancelar convites
- Feat: /api/v1/tags + /[id] + /lists/[id]/tags(/[tagId]) — CRUD de tags e atribuição em listas
- Feat: /api/v1/comments/[id] (+/reactions) e /api/v1/lists/[id]/tasks/[taskId]/comments — comentários em tarefas com replies, reactions emoji e soft delete
- Feat: /api/v1/folders/[id]/tasks(/[taskId]) — tarefas unificadas embutidas em areas.tasks (JSONB)
- Feat: 13 novos ErrorCodes em lib/errors.ts — TAG_NOT_FOUND, COMMENT_NOT_FOUND, MEMBER_NOT_FOUND, SHARE_TOKEN_NOT_FOUND, INVITATION_NOT_FOUND, VERSION_NOT_FOUND, PLAN_NOT_FOUND, USAGE_LIMIT_EXCEEDED, AI_NOT_CONFIGURED, MENTION_NOT_FOUND, TASK_NOT_FOUND
- Docs: docs/API.md reescrito — cobre tanto a API REST v1 (visão geral, autenticação, todos os endpoints com exemplos curl, tabela de códigos de erro, limitações) quanto as Server Actions internas
- Fix: list-editor.tsx — null-check em BubbleMenu para evitar 'editor is possibly null' (build TypeScript estava falhando)
- UX: Dashboard hero band com tipografia display, gradiente sutil e detalhe coral — substituiu o greeting de text-lg por layout de impacto
- UX: Onboarding checklist interativo no dashboard — substitui card 'Começar' de texto plano por checklist visual com barra de progresso e passos marcáveis
- UX: Confetti ao marcar tarefa como concluída — partículas CSS-only respeitando prefers-reduced-motion
- UX: Bubble menu contextual no Tiptap — toolbar flutua sobre texto selecionado (N/I/S/</>/H2/•), sem precisar usar a toolbar fixa
- UX: DragOverlay ghost no dnd-kit da TodoList — ghost rotacionado e escalado ao arrastar, item original fica opaco no lugar
- UX: BreadcrumbNav integrado à Topbar — hierarquia de navegação visível em desktop
- UX: BottomNav mobile com pílula indicadora — active state mais evidente (bg-primary/10 + dot top + font-semibold)
- UX: Command palette (Ctrl+K) com ícones semânticos nos resultados de busca — usa tokens list-note/reminder/todo/flow
- Design: FolderTree com linhas guia verticais de profundidade — facilita leitura de hierarquias aninhadas
- Design: EmptyState enriquecido com 4 novas ilustrações SVG brand-aligned: Inbox, Today, Comments, Reminders
- Design: Prop size (sm/md/lg) adicionada ao componente EmptyState
- Design: Flow canvas — nodes novos entram com animação scale 0.8→1 + opacity 0→1 (spring 200ms)
- Design System: Motion tokens adicionados em globals.css — durações (fast/base/slow/deliberate) e easings (out-quart/spring/emphasized) padronizados
- Design System: Tokens semânticos por tipo de lista (note/reminder/todo/flow/mindmap/link/password/counter/habit/expense/file) — elimina cores hardcoded como text-amber-500, bg-emerald-500/10
- Design System: Tokens de elevação refinados — sombras com ambient + key no light mode, rim light + sombra intensa no dark mode
- Design System: Utilitários .hover-lift e .hover-press padronizados em globals.css — substituem combinações ad-hoc de translate + shadow + scale
- Design System: Skeleton agora usa shimmer (gradient passante) ao invés de animate-pulse simples
- A11y: Focus-visible global com ring contrastado (2px solid hsl(--ring) + offset 2px) — corrige focus rings que sumiam em dark mode
- Estilo: Página /styleguide reescrita em pt-BR — removidos resíduos de mockup financeiro em inglês (Good morning Sajibur, Total Balance) e cores hardcoded substituídas por tokens semânticos
- Estilo: Seções Motion e Interações adicionadas ao /styleguide — demonstram tokens de duração e utilitários hover
- UX: Toaster global enriquecido — closeButton, expand, duration 5s, classNames customizadas para consistência visual
- UX: Autosave debounced (1.5s) implementado no editor Tiptap — usuário não precisa mais clicar em Salvar a cada alteração
- UX: OrgSwitcher trocou window.location.href por router.push + router.refresh — troca de organização agora é SPA suave, sem hard reload
- UX: Mobile drawer (MobileNav) ganhou itens Hoje e Inbox — paridade com sidebar desktop
- Fix: bg-blue-500 hardcoded no badge de menções do MobileNav substituído por bg-info (token semântico)
- Fix: bg-green-500 hardcoded na progress bar do dashboard substituído por bg-success
- Fix: bg-yellow-500 / bg-green-500 no indicador de salvamento da nota substituídos por bg-warning / bg-success
- Refactor: Body com transição suave de cor ao alternar tema (transition: background-color/color 200ms ease-out-quart)
- Feat: API REST v1 com CRUD completo de pastas (POST /api/v1/folders + GET/PUT/DELETE em /api/v1/folders/[id]) — suporta hierarquia, arquivamento, modelos, banner e avatar
- Feat: Endpoints REST para 6 novos tipos de lista — /api/v1/links, /counters, /habits, /expenses, /passwords (conteúdo já criptografado), /files (metadados)
- Feat: Endpoints transversais sobre lists — GET /api/v1/lists (filtros: type, folder_id, archived, search, tag_id, limit, offset), GET/PUT/DELETE /api/v1/lists/[id], POST /archive, /move, /copy
- Feat: Helper lib/api-list-handlers.ts para padronizar handlers HTTP de listas (autenticação, validação Zod, ownership, soft delete, _meta de export)
- Refactor: ExportMetaSchema._meta.type estendido de 5 para 11 tipos (todo, note, reminder, flow, mindmap, link, counter, habit, expense, password, file)
- Refactor: ExportMeta.schema_version bumpado de 1 para 2 (campo type agora suporta 11 valores)
- Refactor: Filtros opcionais adicionados em GET /api/v1/folders (archived, include_template, parent_id)
- Feat: Campo "Responsável" em tarefas — atribua membros da lista a cada tarefa com avatar visível no card (lista, Kanban e calendário)
- Feat: Seletor de responsável no painel de detalhes da tarefa, com busca por nome/email entre membros da lista
- Feat: Filtro por responsável no painel de filtros, incluindo opção "Sem responsável"
- Fix: Dashboard agora filtra estatísticas, widgets, pastas recentes, listas recentes, lembretes e menções pela organização ativa (cookie doflow_org)
- Fix: Sidebar passa a listar apenas as listas das pastas do contexto ativo (org ou Espaço pessoal)
- Refactor: Novo helper lib/organization-context.ts centraliza a resolução de org ativa + IDs das pastas acessíveis
Planos e Billing
Sistema completo de planos (Free/Pro/Enterprise) com limites, trial de 7 dias e enforcement server-side.
Organizações Enterprise
Crie organizações, convide membros, gerencie papéis e compartilhe workspaces com sua equipe.
- Feat: Sistema de planos — Free, Pro (R$ 29/mês) e Enterprise com limites de pastas, listas, IA e storage
- Feat: Trial de 7 dias para o plano Pro com ativação self-service
- Feat: Enforcement de limites de plano nas server actions (pastas, listas, IA, compartilhamento)
- Feat: Página /settings/billing com plano atual, barras de uso e ativação de trial
- Feat: Sistema de organizações Enterprise — criar org, convidar membros, gestão de papéis (owner/admin/member/viewer)
- Feat: Org Switcher na sidebar para alternar entre espaço pessoal e organizações
- Feat: Dashboard da organização com estatísticas, membros e configurações
- Feat: Convites de organização por email com token seguro (SHA-256)
- Feat: Rota pública /org-invite/[token] para aceitar convites
- Feat: Página de auditoria por organização (/org/[slug]/audit)
- Feat: Filtro de pastas por contexto de organização no layout (cookie doflow_org)
- Feat: Cron job /api/cron/check-trials para expirar trials automaticamente
- Feat: PlanProvider + usePlan() hook para acesso ao plano no client-side
- Feat: Componentes reutilizáveis UpgradePrompt e UsageBar para billing
- Feat: Pricing page atualizada com CTAs funcionais (trial, criar org, falar com vendas)
- Fix: denyDemoUser adicionado em createReminder (lista de lembretes era criável via modal 'Novo lembrete')
- Fix: Botões de criação/edição abrem modais normalmente em modo demo — ações bloqueadas apenas no servidor
- Feat: denyDemoUser guard adicionado em toggleFolderFavorite, reminders, tags, security-pin, api-tokens, mcp-tokens e user-settings
- Fix: Changelog oculto no sidebar em modo demo
- Fix: Dados criados acidentalmente pelo usuário demo removidos (lembretes + WhatsApp)
- Feat: Botão 'Ver demonstração' adicionado na landing page (hero e CTA) — inicia sessão demo direto da página inicial
- Fix: Feedback de erro visível no botão de demonstração quando login falha
- Fix: Senha do usuário demo resetada no banco para garantir acesso correto
- Feat: Banner de modo demo exibido para visitantes (fundo âmbar, link para criar conta)
- Feat: Botão 'Ver demonstração →' na página de login (controlado por NEXT_PUBLIC_DEMO_ENABLED)
- Feat: Conta demo com flag is_demo — todas as mutações bloqueadas no servidor via denyDemoUser()
- Feat: Seed de dados de demonstração (3 pastas, 8 listas: todo kanban, note, flow, habit, expense, reminder, mindmap)
- Fix: FlipWords — palavra agora centralizada dentro do container (block w-full text-center), elimina gap visual entre 'forma' e palavras curtas como 'visual'
- Fix: Hero headline reestruturada — 'Organize suas tarefas de forma' em span.block, FlipWords em linha própria abaixo, sem gap indesejado
Redesign Apple-inspired
Landing page completamente redesenhada com estética minimalista, tipografia dramática e ritmo de seções escuro/claro.
- Fix: Hero adaptativo ao tema — usa bg-background/text-foreground (não mais sempre dark); mockup interno sempre dark; <br> controlado para 2 linhas limpas na headline
- Fix: Navbar simplificada — glassmorphism sempre ativo com bg-white/30 dark:bg-zinc-950/30, texto theme-aware (text-muted-foreground), sem lógica de cor branca forçada
- Fix: Pricing redesenhado — seção bg-zinc-50/dark:zinc-950, cards brancos com sombra e borda, Pro com ring-2 ring-primary + sombra colorida, badge flutuante, checks com bg colorido
- Fix: Hero restaurado com texto original 'Organize suas tarefas de forma' + FlipWords com gradiente primary→orange via .text-gradient-primary
- Fix: page.tsx usa bg-background (resolve light theme correto na landing page)
- Design: Redesign completo da landing page inspirado no estilo Apple — hero dark full-bleed com tipografia display text-7xl, app mockup centralizado
- Design: Navbar h-12, links centralizados, CTAs como link simples + pill button
- Design: Features — grid 4×2 de cards grandes sem borda, linha 1 dark (bg-zinc-950), linha 2 light (bg-zinc-100), gap-px como separadores
- Design: How It Works — números watermark gigantes (text-[80px] opacity-5), fundo bg-white/dark:zinc-950, grid com gap-px, py-32
- Design: CTA — full-bleed gradient sem card arredondado, py-40, headline text-7xl, botões pill
- Design: Footer — bg-zinc-950, texto white/20-50, títulos uppercase tracking-wider
- CSS: .text-gradient-primary (linear-gradient primary → orange, bg-clip-text) e @keyframes fade-up
- UI: ThemeToggle redesenhado como pill switch escuro com thumb branco deslizante e ícone Sol/Lua ao lado
- UI: Redesign compacto estilo Linear/ClickUp — font-size base reduzida para 15px, buttons h-10→h-8, inputs h-10→h-8, card padding p-6→p-4, card title text-2xl→text-base, gaps de seção space-y-6→space-y-4, itens de tarefa py-1.5 px-3, itens com space-y-1
- UX: Blocos de código são expansíveis/colapsáveis também no modo de visualização (TiptapReadOnly) — mesmo visual do editor com wrapper collapsible via CSS grid
- UX: Blocos de código no editor agora são expansíveis/colapsáveis — header clicável exibe linguagem e chevron animado; corpo colapsa com transição suave via CSS grid
- Fix: Recentes — itens deletados são filtrados ao abrir o popover (validateRecentItems valida existência via RLS no Supabase)
Sidebar Hub Pessoal
Minha Área, Recentes e navegação contextual inspirados no Linear
Abas na Pasta
Navegue entre Visão Geral, Tarefas, Notas e Lembretes sem rolar
Command Palette com Ações
Ctrl+K agora cria, navega e altera preferências — não só busca
- UX: Sidebar redesenhada com hub pessoal — seção 'MINHA ÁREA' com Dashboard, Hoje e Inbox (badge de menções); seção 'Recentes' colapsável (últimas 5 listas/pastas visitadas via localStorage)
- UX: Bottom nav mobile aprimorado — 5 itens: Hoje, Pastas, [FAB +], Buscar, Config.; background com backdrop-blur
- UX: Command palette expandido com ações rápidas (estilo Linear) — grupos Criar (lista, pasta, nota), Navegar (Dashboard, Hoje, Inbox, Config.) e Preferências (toggle tema); resultados separados das ações; novo placeholder 'Buscar ou digitar um comando...'
- UX: NotificationsPopover no topbar — ícone de sino com badge de count; popover com Menções (link /inbox) e Tarefas de hoje (link /today); substitui badge de menções isolado
- UX: Agrupamento de tarefas na lista todo — botão 'Agrupar' alterna entre nenhum/prioridade/status; seções colapsáveis com header colorido e borda lateral; badge de count por grupo
- UX: Abas de navegação na pasta (ClickUp-style) — Visão Geral, Tarefas, Notas, Lembretes, Outros; cada aba mostra badge de count; Visão Geral mantém layout grid original
- UX: Empty states redesenhados — NoteViewer e TodoListViewer com ícone maior (rounded-2xl), descrição contextual e botão CTA com borda tracejada hover-colored
- UI: Hover lift padronizado nos cards de lembretes — hover:-translate-y-0.5 hover:shadow-md transition-all duration-200
- UX: Hooks useRecentItems (localStorage) + RecentItemTracker — rastreamento automático de visitas a pastas e listas; máx 5 recentes por tipo
- Rotas: /today e /inbox — páginas dedicadas acessíveis pela sidebar e bottom nav
Design System
Tokens centralizados de cor, status e ícones para consistência visual em todo o app
Breadcrumb
Topbar mostra localização atual (pasta > lista) com links clicáveis
- Design: lib/design-tokens.ts — tokens centralizados de prioridade (bg classes, dot classes, hex), status de tarefa (todo/in-progress/done/blocked) e cores por tipo de lista
- UI: StatusBadge e PriorityBadge — componentes reutilizáveis com dot + label, variantes sm/md, usam design-tokens
- UI: lib/list-type-utils.ts — ícones Lucide padronizados por tipo de lista (BookOpen, ListTodo, BellRing, Workflow, BrainCircuit, TrendingUp, BarChart2, Receipt, KeyRound, FolderOpen, Link2); nova função getListTypeIcon()
- UX: Breadcrumb dinâmico no topbar — BreadcrumbProvider + BreadcrumbSetter + BreadcrumbNav; páginas de pasta exibem nome da pasta; páginas de lista exibem 'Pasta > Lista' clicável
- UX: Header da lista todo redesenhado — pendentes + concluídas como texto, progress bar h-1.5 accent com percentual à direita (estilo Linear)
- UX: Modal de compartilhar pasta reestruturado — menu inicial com dois botões quadrados (Links Públicos / Compartilhar Pasta); Links Públicos lista tokens gerados nas listas da pasta com opção de copiar/revogar; Compartilhar Pasta exibe aviso de sub-pastas e mantém gestão de membros/convites
- UX: Toolbar de edição extraída para EditorToolbar component — renderizada fora do scroll em NoteViewer (entre tabs e conteúdo) e em NoteEditorCard (entre header e conteúdo); ListEditor ganha hideToolbar + onEditorReady
- UX: Bento NoteViewer — controles de save (status + botão Salvar) movidos para o header ao lado do título da nota em modo edição; ListEditor recebe hideStatusBar + onSaveRef
- UX: Página expandida de nota — NoteEditorCard (client component) unifica título + status de save na mesma linha; remove subtítulo 'Organize notas...'; onRestoreRef conecta VersionHistory ao editor
- UI: Scrollbars customizadas globais — 6px, arredondadas, track transparente, thumb em var(--border) com hover suavizado; Firefox via scrollbar-width/color
- UI: ToggleGroup shadcn substitui toggles customizados com framer-motion em ViewModeToggle (lista/board/calendário) e FlowViewModeToggle (fluxo/lista/checklist)
- UX: Command com busca substituiu lista simples em DependencySelector — facilita encontrar dependências em listas longas
- UX: AlertDialog shadcn para ações destrutivas — DeleteListDialog e DeleteDialog (bulk) agora usam AlertDialog com semântica e estilo corretos
- UI: Avatar shadcn nos comentários de tarefas substituindo implementação manual com div
- UI: Textarea shadcn substitui <textarea> nativo no drawer de comentários de tarefas
- UI: Progress shadcn substitui todas as barras de progresso customizadas (dashboard, todo list, widgets de prioridade/status, flow checklist, folder-item-grid)
- UX: TooltipProvider adicionado no DashboardLayoutClient; Tooltip nos 7 botões de ícone do SortableTodoItem (prazo, prioridade, anexo, subtarefa, campos, excluir)
- Fix: layout bento — NoteViewer, RemindersTimeline e ItemsGrid ficam na coluna esquerda (8/12); TodoListViewer na direita (4/12); Itens apenas na coluna esquerda
Anexos em Tarefas
Anexe imagens, PDFs, planilhas e documentos diretamente em tarefas. Novo bucket task-files com suporte a múltiplos formatos.
- UI: sidebar colapsada — exibe ícones das pastas favoritas com tooltip e link direto; botão de toggle movido para a topbar (à esquerda da busca)
- Favoritos pessoais: cada usuário tem seus próprios favoritos — nova tabela folder_favorites (per-user) substitui coluna is_favorite da tabela areas; membros compartilhados agora podem favoritar pastas independentemente
- Fix: membros da pasta podem ver e excluir arquivos na lista de arquivos — canEdit na página da lista agora verifica area_members; política de DELETE no bucket list-files liberada para todos os usuários autenticados (permissão real é no server action)
- Fix: layout do bento dashboard — NoteViewer ocupa largura total; RemindersTimeline e TodoListViewer ficam lado a lado na linha de baixo (tarefas alinhadas com lembretes, não com notas)
- Fix: TodoListViewer — container sem h-full, altura natural pelo conteúdo; quick-add fica logo abaixo da última tarefa
- Fix: nomes longos de tarefas no container principal — flex-1 min-w-0 no span garante truncate correto sem quebrar linha
- Fix: container principal de tarefas — calendário shadcn/ui no quick-add; adicionar subtarefa ao expandir (botão + no hover, input inline com Enter/Escape)
- Tarefas: anexo de arquivos por tarefa — botão clipe (paperclip) abre seletor de arquivo; suporta imagens, PDF, Word, Excel e texto (máx 20MB); bucket task-files com RLS
- Tarefas: removido ctrl+v para colar imagem no campo de nova tarefa
- Tarefas: datepicker shadcn/ui Calendar no input de nova tarefa (expandido) — popover na mesma linha do título, substituindo input[type=date] nativo
- Tarefas: editar/adicionar/remover data de qualquer tarefa após criação — badge de data clicável abre Calendar; botão calendário no menu quando sem data
- Tarefas: toggle de subtarefas no container principal (todo-list-viewer) — chevron aparece apenas quando o item tem subtarefas; exibe contador e lista colapsável
- Tarefas: toggle de subtarefas na lista expandida (sortable-todo-item) — chevron aparece APENAS quando há subtarefas (antes aparecia sempre quando canEdit=true)
- Tarefas: modal de anexos atualizado — exibe ícones para PDF (vermelho), planilha (verde) e arquivo genérico; preview de imagem mantido; tamanho em KB ou MB
- Infra: componente shadcn/ui Calendar criado (react-day-picker v8 com locale pt-BR)
- Fix: upload de arquivos — criado bucket list-files no Supabase com políticas RLS (upload autenticado, leitura pública, deleção própria)
- Fix: input de arquivo agora seleciona um arquivo por vez (removido atributo multiple)
- Fix: permissão de edição via pasta — getListRole agora verifica area_members, permitindo que membros da pasta façam upload de arquivos
- Fix: abas de notas e tarefas no bento dashboard — substituído scroll horizontal por quebra de linha (flex-wrap), removido overflow-y-auto da lista de tarefas
- UI: sidebar colapsável — toggle 'Recolher menu' mantém ícones visíveis com tooltips, liberando espaço no conteúdo principal
- Feat: widget 'Por status (Kanban)' — barras de progresso por coluna Kanban com cores das colunas, exclui coluna 'Concluído'
- Feat: widget 'Atividade recente' — lista das últimas tarefas concluídas e criadas nos últimos 7 dias com links para as listas
- Fix: botão de configurações dos widgets do dashboard agora permanece visível mesmo com todos os widgets desativados
- Fix: espaçamento do conteúdo principal aumentado (pt-6 → pt-8) para não colar no header/topbar
- UI: seção 'Itens' do dashboard de pasta — cards compactos com efeito hover Aceternity (spotlight), grid 2 colunas, preview de metadados inline
- Fix: RemindersTimeline restaurada para sempre visível (o componente gerencia estado vazio internamente)
- Fix: scrollbar horizontal das abas de nota oculta via CSS
- Fix: dashboard de pasta — NoteViewer com min/max-h para scroll correto (h-full sem altura pai causava expansão infinita)
- Fix: dashboard de pasta — SubfoldersBar só renderiza quando há subpastas
- Fix: query otherItems no dashboard de pasta — sintaxe PostgREST corrigida; reminders/notes/todos não aparecem mais na seção 'Itens'
- Fix: grid da pasta — notas e lembretes agora empilham independentemente da altura das tarefas (removido row-span-2)
- Fix: chat da pasta — aba 'Chat' esconde quando o painel está aberto; conteúdo recua com margin-right animado para não ficar atrás do painel
Aceternity UI
Animações visuais na landing, auth e changelog com Aurora Background, FlipWords, Background Beams e Timeline.
- UI: micro-animações no sistema logado — dashboard com entrada escalonada, progress bars animadas, hover lift nos cards de stats
- UI: sidebar — collapse/expand animado dos favoritos com CSS grid trick + chevron com rotação suave
- UI: view mode toggle — sliding pill com framer-motion layoutId entre lista/board/calendário
- UI: items grid — hover lift sutil nos cards de pastas e listas
- UI: FAB mobile — ícone Plus rotaciona 90° no hover
- UI: todo items — transição suave ao completar/descompletar + scale no toggle
- UI: empty states — fade-in automático em todos os estados vazios do app
- UI: setas de navegação — translate-x sutil no hover dos links de pastas/listas recentes
- Docs: CLAUDE.md atualizado com seção de animações e diretrizes Aceternity/framer-motion
- Fix: tema light como padrão na landing page (removido enableSystem do ThemeProvider)
- Fix: texto 'inteligente' cortado no FlipWords — adicionado padding para descendentes
- UI: integração Aceternity UI — Aurora Background animado e FlipWords na landing page hero
- UI: Card Hover Effect com spotlight animado nos cards de features da landing
- UI: Background Beams animados no painel de auth (login/signup) substituindo dot pattern estático
- UI: Timeline visual com scroll reveal no changelog substituindo lista plana
- Deps: framer-motion adicionado para animações avançadas (otimizado via optimizePackageImports)
- Pasta Modelo: ícones na lista de importação agora diferenciam por tipo (Note, Todo, Flow, etc.) com cores distintas
- Editor: blocos de código agora têm botão de copiar no canto superior direito (modo edição e leitura)
- Editor: syntax highlighting mantido em blocos de código no modo somente leitura
- MCP remoto: endpoint /api/mcp-sse implementa o protocolo MCP JSON-RPC 2.0 diretamente no Next.js — sem instalação local
- MCP remoto: qualquer usuário do doFlow configura apenas URL + Bearer token no ~/.claude/settings.json
- MCP remoto: stateless por design, perfeito para Vercel serverless — cada request é independente
- Settings: snippet de configuração remota (recomendado) e local (avançado/colapsável) após gerar token MCP
MCP Server
Conecte o Claude Code ao doFlow via MCP. Gerencie tarefas e listas por linguagem natural diretamente no seu editor.
- MCP Server: servidor MCP para conectar o Claude Code ao doFlow (/mcp/index.ts com tools de pastas, tarefas e listas)
- MCP: autenticação por token pessoal (mcpflow_...) com SHA-256 hash para lookup O(1) sem descriptografia
- MCP: fluxo de setup — com o token, lista pastas disponíveis; após select_folder, habilita CRUD completo escopado à pasta
- MCP: ferramentas list_folders, select_folder, list_tasks, create_task, update_task, delete_task, list_lists, create_list, get_list
- MCP: endpoints /api/mcp/ — auth, folders, folders/select, tasks, tasks/[id], lists, lists/[id]
- Settings: nova seção 'Tokens MCP' com geração, visualização e revogação de tokens (múltiplos por usuário)
- Settings: após gerar token, exibe snippet de configuração para ~/.claude/settings.json
- DB: migration 034 — tabela mcp_tokens com token_hash, folder_id nullable, RLS e índices
- CLAUDE.md: regra para sempre verificar se /api/v1/ e /api/mcp/ precisam de atualização conjunta
- Tarefas no bento dashboard redesenhadas: novo TodoListViewer com múltiplas listas por pasta, navegação por abas, quick-add, progress bar e expansão para página completa (padrão NoteViewer)
Tarefas unificadas
O widget compacto de tarefas da pasta agora é a porta de entrada para uma lista completa com prioridades, kanban, calendário e muito mais.
- Tarefas: UnifiedTasksWidget — widget compacto da pasta agora usa lista 'todo' real como backend, com acesso a todos os recursos (prioridades, filtros, kanban, calendário, subtarefas, comentários) via botão 'Abrir'
- Tarefas: migração automática e transparente das tarefas JSONB antigas para a nova lista 'todo' associada na primeira interação
- Tarefas: botão 'Abrir' (ExternalLink) no header do widget navega para a página completa da lista (/lists/{id}) com TodoListView completo
- Tarefas: progress bar no widget mostrando X/Y tarefas concluídas e percentual
- Tarefas: badges de prioridade (ponto colorido) e data de vencimento no modo compacto
- DB: migration 033 — coluna tasks_list_id UUID em areas com FK para lists (ON DELETE SET NULL)
- DB: server action getOrCreateFolderTasksList — cria/recupera lista de tarefas da pasta e migra dados JSONB legados
- Pasta: lista de tarefas excluída de 'otherItems' para não aparecer duplicada na grade de itens
Comentários
Comente, responda e reaja a tarefas com emoji. Thread completo por tarefa.
Widgets do Dashboard
Widgets de tarefas por prioridade, hoje e atrasadas — configuráveis por usuário.
- Dashboard: widget 'Tarefas atrasadas' — lista tarefas com dueDate vencido agrupadas por data, link direto para a lista
- Dashboard: widget 'Tarefas para hoje' — tarefas com dueDate = hoje, mostra pendentes e concluídas
- Dashboard: widget 'Distribuição por prioridade' — barras CSS com contagem de pendentes por prioridade
- Dashboard: WidgetSettingsPopover — popover com toggles para ativar/desativar cada widget; persiste em user_settings.dashboard_widgets
- Dashboard: widget prefs carregadas server-side via getDashboardWidgetPreferences() com streaming via Suspense
- DB: migration 032 — coluna dashboard_widgets JSONB em user_settings com default habilitado para todayTasks, overdueTasks e byPriority
- Tarefas: comentários com thread — comentários por tarefa com replies inline, reações emoji, edição e exclusão pelo autor
- Tarefas: DB migration 031 — tabela task_comments com RLS para membros da lista
- Tarefas: server action getTaskComments, addTaskComment, updateTaskComment, deleteTaskComment (soft), toggleCommentReaction, getTaskCommentCounts
- Tarefas: TaskCommentDrawer — Sheet com thread de comentários, quick-reply, reações emoji via popover flutuante
- Tarefas: CommentCountBadge — badge azul com contagem por tarefa; badge carregado via getTaskCommentCounts no load
- Tarefas: prop currentUserId em TodoListView para habilitar comentários; passada da page.tsx
Campos Customizados
Adicione campos extras por lista (texto, número, seleção, data, URL) e preencha em cada tarefa.
- Tarefas: campos customizados simples — crie campos extras por lista (texto, número, seleção, data, URL) armazenados no JSONB
- Tarefas: editor de campos customizados via Sheet com CRUD completo (label, tipo, opções para select, obrigatório)
- Tarefas: painel de detalhes da tarefa (TodoItemDetail) exibe e edita todos os campos customizados
- Tarefas: botão 'Detalhes' (MoreHorizontal) aparece em cada tarefa quando há campos customizados definidos
- Tarefas: botão 'Campos' (SlidersHorizontal) no header da lista para gerenciar definições de campos
- Tarefas: customFieldDefs e customFields persistem no JSONB via updateListContent e sanitizeTodoItems
Prioridades
Defina prioridade (Urgente, Alta, Normal, Baixa) em cada tarefa com badge colorido e ordenação rápida.
- Tarefas: dependências entre tarefas — uma tarefa pode bloquear outra; badge 'Bloqueado' e aviso ao tentar concluir com dependência pendente
- Tarefas: DependencySelector — popover com checkboxes para selecionar dependências com detecção de ciclos
- Utilitário: lib/todo-utils.ts com hasCyclicDependency(), allDependenciesCompleted() e getPendingDependencyNames()
- Tarefas: Calendário view — terceira view da lista todo com grid mensal, tarefas agrupadas por dueDate e quick-add clicando num dia
- Tarefas: sidebar lateral 'Sem data' no calendário mostrando tarefas sem dueDate
- Tarefas: 8 templates pré-definidos para listas todo — Sprint Backlog, Daily Check-in, Revisão Semanal, Roadmap, Bug Tracker, Onboarding, Pauta de Reunião, Lista de Compras
- Tarefas: seletor de template no diálogo de criação de lista todo (igual ao fluxo e mapa mental)
- Tarefas: filtros avançados — filtrar por prioridade, status Kanban, situação (pendente/concluída) e vencimento (atrasada/hoje/semana/sem data)
- Tarefas: painel de filtros com badges de contagem de filtros ativos e botão 'Limpar' rápido
- Tarefas: filtro ativo desabilita drag-and-drop automaticamente
- Tarefas: campo de prioridade (Urgente, Alta, Normal, Baixa) no TodoItem com badge colorido
- Tarefas: seletor de prioridade via dropdown com ícone Flag por tarefa
- Tarefas: botão 'Ordenar por prioridade' no header da lista — desativa drag-and-drop ao ativar
- Tarefas: prioridade persiste no JSONB via sanitizeTodoItems e BaseTodoItemSchema
Pasta Modelo
Designe uma pasta como template e importe seus itens ao criar novas pastas.
- Feature: /v2/folders/[id] — visualização read-only de pasta no design dark v2 com subpastas, notas, lembretes e outros itens
- Feat: Pasta Modelo — designe uma pasta como template em Configurações > Pasta Modelo
- Feat: ao criar nova pasta, seção 'Importar da Pasta Modelo' com checkboxes para selecionar itens
- Feat: seção colapsável com contador de seleção e ações rápidas 'Selecionar todos' / 'Limpar'
- Feat: server actions getTemplateFolderItems(), setFolderAsTemplate(), removeTemplateFolderFlag()
- Feat: server action copyListToFolder() — clonagem de lista para outra pasta
- Feat: createFolder() aceita templateItemIds para copiar itens do template na criação
- DB: migration 031 — coluna is_template em areas + partial unique index por usuário
Landing V2
Nova landing page dark e editorial em /v2 — design completamente redesenhado com tipografia expressiva, bento grid e mockup interativo.
- Feature: nova landing page v2 em /v2 — design dark editorial com Fraunces + Plus Jakarta Sans
- UI: hero cinematic com app mockup Kanban, glow orbs e animações de entrada escalonadas
- UI: bento grid de features com 8 células assimétricas e ilustrações inline
- UI: navbar flutuante em pill com blur e menu mobile
- UI: seção de preços com cards dark e destaque Pro com glow laranja
- UI: seção CTA com tipografia grande e estatísticas do produto
- UI: footer minimalista escuro com 3 colunas de links
- Config: /v2 adicionado às rotas públicas do middleware (sem auth)
- Feature: /v2/login e /v2/signup com layout split escuro e branding lateral
- Feature: /v2/dashboard com topbar dark, stats em display font, pastas e listas recentes
- Feature: /v2/changelog com timeline vertical, highlight chips coloridos e badge de versão atual
- Fix: blocos de código consecutivos agora colapsa bordas e remove espaçamento entre eles (aspecto de bloco único)
- Fix: syntax highlighting aplicado também no modo de visualização — lowlight roda no renderizador HTML estático
- Feature: syntax highlighting em blocos de código nas notas — suporte a 20+ linguagens (JS, TS, JSON, Python, Bash, SQL etc.) com tema escuro Catppuccin Mocha
- Feature: toolbar contextual de bloco de código — seletor de linguagem, botão de copiar e sair do bloco
- UX: botão de bloco de código (ícone FileCode) movido para toolbar principal das notas; inline code renomeado para 'Código inline'
- Feature: edição inline de título de lista/nota na página completa (/lists/[id]) — aparece lápis ao hover para quem tem permissão
- Feature: edição inline de título de nota na edição rápida do dashboard — lápis ao lado do título ao entrar no modo de edição
- Fix: preview na edição rápida de notas agora exibe o conteúdo recém-salvo sem precisar recarregar a página
- Fix: página de pasta detecta compartilhamento herdado de ancestrais via CTE recursivo — isShared correto para pastas netas/bisnetas (chat e badges ativados)
- Fix: subpastas de todos os níveis agora herdam corretamente o compartilhamento da pasta pai (sem limite de profundidade)
- Fix: pastas compartilhadas cujo pai não está acessível ao usuário agora aparecem como raiz na sidebar em vez de serem descartadas
- Refactor: substituído loop manual de busca de descendentes por query única com RLS, eliminando limite arbitrário de 3 níveis
PIN de Senhas
Proteção extra para senhas salvas: configure um PIN de 4 dígitos e exija verificação antes de revelar qualquer credencial.
- Segurança: 'Esqueci meu PIN' — link de redefinição enviado por email (token SHA-256, expira em 1h, uso único)
- API: rota GET /api/reset-pin verifica token, remove PIN e redireciona para /settings com feedback
- UX: SecurityPinSettings lê parâmetro pin_reset da URL e exibe mensagem de sucesso/erro após redefinição
- Feature: chat em tempo real por pasta compartilhada — painel lateral direito com mensagens ao vivo via Supabase Realtime
- Feature: @menções no chat — autocomplete ao digitar '@' lista membros da pasta com nome e email
- Feature: edição e exclusão de mensagens próprias no chat (soft delete preserva histórico)
- Feature: badge de mensagens não lidas no botão Chat do header da pasta
- Database: tabelas folder_messages e folder_message_reads com RLS baseada em area_members
- Segurança: PIN de 4 dígitos para proteger acesso a senhas salvas (configurável em Configurações > Segurança de Senhas)
- Segurança: hash PBKDF2-SHA256 com 100k iterações — PIN nunca armazenado em texto simples
- UX: modal de boas-vindas exibido ao salvar a 1ª senha, explicando a opção de PIN
- UX: ícone de cadeado no botão revelar/copiar quando PIN está ativo
- UX: hint 'Configure um PIN nas configurações' visível ao revelar senha sem proteção
- UX: toggle para ativar/desativar exigência de PIN sem remover o PIN cadastrado
- UX: formulários de cadastro, alteração e remoção de PIN com caixas de 4 dígitos
- Docs: API Docs padronizada com uma Section por endpoint em todos os recursos
- UI: link do Changelog no sidebar abre em nova aba
- Fix: scroll da API Docs agora compensa o header fixo (scroll-mt-[85px])
- UI: divisores de seção da API Docs mais visíveis (border-t-2)
- UI: menu lateral da API Docs com toggles por seção e ícones Lucide
- Fix: normalização de handle IDs — conexões de flows criados via API agora renderizam corretamente no canvas
- Feat: IDs opcionais em FlowStep, FlowConnection e FlowChecklistItem — UUIDs auto-gerados pela API se omitidos
- Docs: menu lateral organizado na página de documentação da API
- Docs: nova seção Handles documentando valores de sourceHandle/targetHandle (top, bottom, left, right)
- Fix: nomes dinâmicos por tipo de item em todo o sistema — diálogos de exclusão, mover, criação, busca global, AI assistant, dashboard e API routes usam o nome correto do tipo (Fluxo, Nota, Checklist, etc.) ao invés de 'lista' genérico
- Feat: utilitário centralizado lib/list-type-utils.ts com getListTypeName(), getListTypeArticle(), getListTypeWithArticle() e getGenderSuffix() para todos os 11 tipos
- Fix: gênero gramatical correto no diálogo de criação — 'Nova despesa' ao invés de 'Novo despesa'
- Feat: endpoints API para tarefas — POST/GET/PUT/DELETE /api/v1/todos
- Feat: endpoints API para notas — POST/GET/PUT /api/v1/notes (formato Tiptap)
- Feat: endpoints API para lembretes — POST/GET/PUT /api/v1/reminders (com reminder_at)
- Feat: campo actor no FlowStep — persona/papel responsável pela etapa (max 100 chars)
- Feat: campo style no FlowStep — cor e ícone customizados por etapa
- Feat: campo metadata no FlowStep — dados livres (Record<string, unknown>, max 10KB)
- Feat: campo tags no FlowStep — categorização por tags (max 20, 50 chars cada)
- Docs: schema FlowChecklistItem documentado na API (id, text, completed)
- Docs: campos condition e label do FlowConnection detalhados com exemplos
API Pública
API REST para integração externa — crie flows e mapas mentais programaticamente com autenticação por token.
- Feat: API REST pública v1 para criação e gerenciamento de flows e mapas mentais
- Feat: autenticação por UUID + token de API (AES-256-GCM, timing-safe comparison)
- Feat: geração de token de API nas Configurações > Avançado (visível apenas na criação)
- Feat: exibição do UUID do usuário com botão copiar nas Configurações > Avançado
- Feat: endpoint GET /api/v1/folders — lista pastas em árvore com parent_id e root_id
- Feat: endpoints POST/GET/PUT para /api/v1/flows e /api/v1/mindmaps
- Feat: botões Exportar/Importar JSON nos views de Flow e Mapa Mental
- Feat: campo _meta em exports JSON — app, version, schema_version, exported_at
- Feat: página pública /api-docs com documentação completa da API (schemas, exemplos cURL, erros)
- Feat: validação Zod para payloads da API (reutiliza schemas existentes)
- Refactor: removida configuração de IA das Configurações
- Sidebar: pastas ordenadas alfabeticamente em todos os níveis da árvore
- Deploy: cron de lembretes ajustado para diário às 8h UTC (compatível com Vercel Hobby)
- UX: botão de copiar conteúdo nas notas (sem precisar selecionar texto)
- UX: input de tarefas mantém foco após adicionar com Enter — permite digitação contínua
Links Públicos
Compartilhe listas por link — qualquer pessoa pode visualizar sem precisar de conta.
- Feat: distinção admin/usuário normal — flag is_admin com funcionalidades diferenciadas na UI
- Feat: link Changelog no menu lateral visível apenas para admins
- Feat: badge Admin no menu do usuário
- Feat: painel de gerenciamento de links públicos nas Configurações
- Feat: revogação em lote de links públicos com seleção múltipla
- Feat: links públicos de visualização — compartilhe listas por link sem precisar de conta
- Feat: página pública /share/[token] com layout limpo e branding doFlow
- Feat: gerar, copiar e revogar link público no dialog de compartilhamento
- Feat: metadados OpenGraph para preview de links compartilhados
- Feat: listas de senhas bloqueadas para compartilhamento público (segurança)
Mapa Mental
Novo tipo de lista para organizar ideias visualmente em árvore, com canvas interativo, templates e vista outline.
- Feat: novo tipo de lista — Mapa Mental com canvas interativo usando React Flow
- Feat: layout automático em árvore horizontal (raiz à esquerda, filhos à direita)
- Feat: edição inline de nós com duplo clique, adicionar filhos com botão + ou Tab
- Feat: atalhos de teclado (Tab = filho, Enter = irmão, Delete = remover nó)
- Feat: collapse/expand de ramos com toggle visual
- Feat: cores automáticas por branch (8 cores diferentes)
- Feat: vista alternativa Outline — lista indentada com collapse/expand
- Feat: 4 templates pré-definidos (Brainstorm, Planejamento, SWOT, Branco)
- Feat: toolbar com Auto Layout, Expandir/Colapsar tudo
- Feat: auto-save debounced + save manual (Ctrl+S)
- Fix: subpastas de pastas compartilhadas agora aparecem no menu lateral com toggle funcional
- Feat: badge 'Compartilhada' no header da pasta para pastas compartilhadas com outros ou comigo
- Feat: contador de membros no botão Compartilhar, incluindo membros herdados de pasta-mãe
Auditoria de Segurança
Revisão completa de segurança: permissões, vazamento de dados, validações e proteções reforçadas em todo o sistema
- Segurança: removido endpoint de debug que expunha prefixos de chaves secretas
- Segurança: verificação de permissão adicionada em upload/delete de attachments (todo e folder)
- Segurança: syncMentions protegido com try/catch e logging de erros
- Segurança: removido vazamento de mensagens de erro internas em 9 server actions e 3 API routes
- Segurança: corrigida validação de email em addFolderMember (regex consistente)
- Segurança: verificação de ownership adicionada em getRemovalImpactInfo
- Robustez: corrigido bug do query builder fluente em createInvitation (filtro de convite duplicado não funcionava)
- Robustez: substituído check-then-act por upsert em saveUserSettings e saveKanbanColumns
- Robustez: erros de Storage agora são logados em vez de silenciados
- Qualidade: removidos console.error desnecessários em 10 componentes client-side
- Qualidade: removidas dependências não utilizadas (bcryptjs, openai, use-debounce)
- Qualidade: padronizado retorno de erro em getTags e getListTags
- Observabilidade: adicionado endpoint /api/health com verificação de conectividade ao banco
- Observabilidade: módulo audit.ts integrado em operações críticas (delete, archive, sharing)
- Observabilidade: adicionado logging em login success/failure e erros de IA
- Tarefas: cores do Kanban salvas no nível de usuário — mesma paleta em todas as pastas
- Tarefas: anexo de imagem não precisa mais passar 'columns' por pasta (limpeza de código)
- Pastas: botão ↑ no header da pasta para navegar para a pasta mãe
- Pastas: mobile — subpastas em lista compacta com 3 itens e 'Ver mais'
- Pastas: desktop — grid auto-fill responsivo (1 linha visível, 'Ver mais' para expandir)
- Pastas: seleção em massa na barra de subpastas — checkboxes + barra de ações Mover/Excluir
- Pastas: ao selecionar pastas, clique no chip não navega (evita acidente)
- Pastas: folder-content-sections.tsx removido (código morto substituído pelo bento dashboard)
- Flow: todos os 4 handles agora são bidirecionais — qualquer ponto aceita tanto enviar quanto receber conexões
- Flow: salvar manual — botão 'Salvar' aparece ao detectar mudanças estruturais; Ctrl+S; modal de aviso ao sair com pendências
- Flow: templates de modelo exibidos horizontalmente no canvas
- Flow: clicar em conexão exibe toolbar com botões de inverter direção e remover
- Flow: seta direcional nas conexões indicando sentido do fluxo (origem → destino)
- Flow: 4 pontos de conexão por nó (superior, inferior, esquerdo, direito) em todos os tipos
- Flow: título do card permite quebra de linha — altura do card expande automaticamente
- Pastas: menu de contexto '...' em subpastas — Mover, Editar e Excluir sem precisar de seleção em massa
- Pastas: menu de contexto na barra horizontal de subpastas (visão bento/dashboard da pasta)
- Pastas: upload de banner corrigido — validação de extensão dupla não bloqueia mais nomes normais (ex: minha.foto.jpg)
- Config: limite de body das Server Actions aumentado para 3MB (suporta banners de até 2MB)
- Pastas: botão '+' em tarefas da pasta agora é botão real (cinza vazio, laranja com texto)
- Auth: middleware corrigido — /forgot-password e /reset-password agora acessíveis sem login
- Tarefas: imagens coladas (Ctrl+V) fazem upload e ficam como anexos na tarefa
- Tarefas: ícone de clipe com contador de anexos e modal de visualização/download
- Tarefas: Kanban badge colorido na view lista indicando coluna do item
- Tarefas: editor de colunas Kanban (renomear nome e cor via botão de engrenagem)
- Tarefas: botão '+' fica laranja quando há texto e cinza quando vazio
- Auth: recuperação de senha — página /forgot-password com envio de email
- Auth: redefinição de senha — página /reset-password após clicar no link
- Auth: link 'Esqueceu sua senha?' no formulário de login
- Mobile: páginas de login/signup com logo completo, tagline e grid de features
- Mobile: zoom automático do iOS em campos de texto prevenido (font-size 16px)
- Layout: sidebar logo agora tem h-16 alinhado com a topbar + border-b conectado
- Layout: separadores da sidebar uniformizados (mx-4)
- Loading: PageLoader com logo e pontos animados para navegação entre rotas
- Loading: loading.tsx para /settings criado
- Sidebar: removido label 'MENU' desnecessário acima do Dashboard
- Sidebar: seção Favoritos movida para fora do scroll (fixo no topo)
- Sidebar: toggle recolher/expandir na seção Favoritos
Mobile First
FAB centralizado, favoritos, branding e touch-friendly
Segurança
Timeout de API, SQL injection prevention, upload hardening
Code Quality
Type guards, error handling padronizado, zero non-null assertions
- Mobile: seletor de tipo compacto com chips horizontais (flex-wrap) em vez de grid
- Mobile: dialog de criação scrollável (max-h-[90dvh]) e auto-detecta pasta atual da URL
- Mobile: busca movida para topbar (lupa) — bottom nav limpa com 2 itens + FAB
- Mobile: FAB '+' centralizado na bottom nav com design flutuante
- Mobile: favoritos visíveis no drawer com seção dedicada
- Mobile: estrela de favorito sempre visível em touch (sem hover)
- Mobile: branding 'doFlow' no topbar e no drawer
- Mobile: grid de criação com 2 colunas para touch targets maiores
- Mobile: altura do flow view corrigida com dvh (dynamic viewport)
- Auth: redesign das páginas de login/signup com branding split layout
- Auth: painel de branding com gradiente, features e tagline
- Segurança: timeout de 30s na API OpenAI com AbortController
- Segurança: escapamento de wildcards SQL na busca (%, _)
- Segurança: prevenção de ciclos ao mover pastas entre si
- Segurança: bloqueio de extensões duplas em upload de imagens
- Segurança: validação de email com regex (RFC 5322)
- Código: padronização de retorno de erros em todas server actions
- Código: remoção de non-null assertions perigosas
- Código: type guards para validação segura de conteúdo
- Código: substituição de console.error por logger estruturado
- Código: remoção de eslint-disable desnecessários
- Código: correção da lógica de meta key nos atalhos
- UI: ErrorBoundary global no layout do dashboard
- UI: transições com duração definida nas barras de progresso
- Utilitário: extractArea() para normalizar joins do Supabase
- Utilitário: extractFavorites() extraído para lib compartilhada
Mapa do App
Diretório com todas as páginas do projeto em um só lugar
- Changelog: rota renomeada de /version para /changelog
- Changelog: ícones representativos por versão com cards visuais coloridos
- Changelog: aba 'Mapa do App' com diretório de todas as páginas do projeto
Tabelas
Editor de texto rico com suporte completo a tabelas
- Notas: suporte a tabelas no editor de texto rico (Tiptap)
- Tabelas: inserir tabela 3x3 com cabeçalho via menu 'Mais'
- Tabelas: toolbar contextual com adicionar/remover linhas e colunas
- Tabelas: mesclar e dividir células
- Tabelas: cor de fundo da célula com paleta de 15 cores
- Tabelas: redimensionamento de colunas arrastando bordas
- Tabelas: alternar linha de cabeçalho
Favoritos
Marque pastas como favoritas para acesso rápido
Lembretes Concluídos
Visualize e gerencie lembretes já concluídos
- Favoritos: pastas podem ser marcadas como favoritas com ícone de estrela
- Favoritos: seção dedicada no topo da sidebar mostrando pastas favoritas
- Favoritos: estrela visível ao passar o mouse nas pastas da sidebar
- Favoritos: botão de favorito no header da pasta
- Lembretes concluídos: toggle para alternar entre ativos e concluídos
- Lembretes concluídos: lembretes arquivados agora visíveis com badge 'Concluído'
Drag & Drop
Arraste tarefas para reorganizar a ordem
- Lembretes: botão de excluir com confirmação no modal de detalhe do lembrete
- Tarefas pendentes: arrastar para reorganizar (drag-and-drop com @dnd-kit)
- Correção: seção de preços da landing page agora centralizada corretamente
- Correção: checkbox de tarefas pendentes com tamanho correto
- Tarefas: modal de confirmação ao excluir tarefa
- Tarefas: abas pendentes/concluídas com toggle discreto (sem texto)
- Tarefas: fade-out ao concluir, tarefa move para aba concluídas
- Tarefas: data de criação (pendentes) e conclusão (concluídas) exibida à direita
- Tarefas: removida barra de progresso e x/y, exibe apenas contagem
- Tarefas: espaçamento vertical reduzido entre itens
- Notas: campo de input ao adicionar tarefa oculto na aba concluídas
- Notas: reduzido espaço vazio no estado 'Nenhuma nota ainda'
- Sidebar simplificada: exibe apenas pastas, itens visíveis somente ao acessar a pasta
- Logo grande (doFlow completo) adicionado na seção hero da landing page
- Navbar revertida para ícone compacto + texto como antes
- Logo no footer mantido com versão completa (dark/light)
- Correção: botão 'Criar nota' no estado vazio agora cria nota diretamente sem mostrar seleção de tipo
- Novo botão '+' no NoteViewer para criar notas rapidamente quando já existem notas
- Logo completo (ícone + texto) adicionado na navbar e footer da landing page
- Suporte a tema claro/escuro com logo-dark e logo-light
- Correção: indicador 'Alterações não salvas' não aparece mais falsamente ao abrir uma nota
- Correção: indicador agora desaparece corretamente após salvar
- Correção: diálogo nativo do browser removido ao descartar alterações
- Correção: navegação entre listas não causa mais falso positivo de mudanças
- Otimização de layout: conteúdo agora preenche até 1600px (antes limitado a 1152px)
- Removido texto 'doFlow' redundante do topbar (já aparece na sidebar)
- Atalhos de teclado escondidos em mobile
- Lembretes movidos para a coluna lateral direita, alinhados com Nota
- Tarefas crescem verticalmente sem limite fixo (antes max 350px)
- Lembretes no layout lateral usam coluna única para melhor legibilidade
- Padding lateral reduzido para melhor aproveitamento de espaço
- Branding na página de changelog: logo doFlow com suporte a tema claro/escuro
- Badge de versão atual em destaque no header
- Footer com identidade da marca
- Redesign da página de changelog no estilo Easypanel
Canvas Infinito
Fluxos de processos em canvas estilo Miro com React Flow
- Canvas infinito estilo Miro para fluxos de processos (React Flow / @xyflow/react)
- Pan, zoom e navegação livre no canvas com fundo de pontos
- Nós posicionáveis livremente no espaço 2D com drag & drop
- Conexões bezier arrastáveis entre handles dos nós
- Toolbar flutuante para arrastar novos tipos de etapa para o canvas
- MiniMap e controles de zoom integrados
- Auto-layout automático para flows antigos sem posições
- Menu de contexto (right-click) nos nós com editar, status, duplicar, excluir
- Edges customizados com labels e botão de delete
- Viewport e posições dos nós persistidos no banco de dados
- Templates atualizados com posições pré-definidas
- Retrocompatibilidade total com views lista e checklist
Fluxo de Processos
Novo tipo de lista com 7 tipos de etapas e fluxograma visual
- Novo tipo de lista: Fluxo de Processos
- Visualização de fluxograma vertical interativo com conectores
- 7 tipos de etapas: ação, decisão, aprovação, espera, notificação, início, fim
- Ramificações visuais para etapas de decisão
- Checklist interno por etapa com barra de progresso
- Metadados por etapa: responsável, prazo, duração estimada, links
- 3 modos de visualização: fluxo, lista e checklist
- 5 templates pré-definidos: dev feature, code review, deploy, bug fix, onboarding
- Drag-and-drop para reordenar etapas
- Rastreamento de progresso em tempo real
Kanban
Quadro Kanban para organizar tarefas visualmente
Sistema de Pastas
Organize suas listas em pastas com compartilhamento
- Lançamento inicial do doFlow
- Sistema de pastas e listas (notas, tarefas, lembretes)
- Editor de texto rico com Tiptap
- Quadro Kanban para listas de tarefas
- Compartilhamento de pastas e convites por email
- Assistente de IA integrado
- Sistema de tags
- Sistema de menções
- Tema claro/escuro
doFlow — Gestão de tarefas inteligente