Adiciona min-w-0 e overflow-x-hidden no DialogContent para evitar
expansão indevida; corrige referência do ícone RiAttachment2.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Evita divergência no relatório de análise de parcelas ao impedir o
cadastro de lançamentos em períodos cujas faturas já foram quitadas.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Permite vincular arquivos (PDF, imagens) a lançamentos via upload direto
para storage compatível com S3, usando token assinado por arquivo e
validação de propriedade na leitura e remoção.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
O Companion envia hora local com 'Z' literal (nao converte para UTC),
entao o timestamp no DB ja carrega a data correta de Brasilia. Usava-se
+3h no frontend, que deslocava a virada de dia para as 21h locais e
fazia compras da tarde aparecerem como 'Ontem'.
- getItemDateKey: remove offset (data UTC ja e a data de Brasilia)
- getBrasiliaDateKey: usa UTC-3 apenas para calcular hoje/ontem
- Paraleliza insercoes no batch endpoint com Promise.allSettled
- Usa selectDistinct no fetchInboxSourceApps
- Envolve InboxCard em memo e callbacks em useCallback
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
O diretório db/ foi movido para src/db/ na v2.0.0.
O COPY no stage runner ainda apontava para o caminho antigo,
causando falha no build da action.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Inclui aba "Importação" após "Pré-lançamentos" no carrossel de
screenshots, com assets WebP (light/dark) e ícone RiFileDownloadLine.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Substitui terceiro pg_dump (data-only) por pg_restore sobre o .dump já
criado, eliminando uma conexão extra ao banco em ambos os modos
- Move timestamp para dentro de log() para refletir o horário real de
cada mensagem, não apenas o instante de início do script
- Escopa rclone copy por TIMESTAMP para não re-enviar backups anteriores
a cada execução
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Gera um dump adicional com dados puros de todas as tabelas públicas
(--data-only --schema=public) para ambos os modos remote e docker.
Remove --min-age do rclone para garantir upload imediato do arquivo.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Nuança o aviso de "sem Open Finance" mencionando importação OFX/XLS
- Atualiza linha de funcionalidades de transações
- Adiciona pnpm backup na seção de scripts
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Corrige formatação quebrada do item de importação (commit message colado cru)
- Enxuga o item do script de backup
- Adiciona os 3 fixes do dia (category-trends, dashboard cards, landing page)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Troca as setas de receita/despesa (estavam invertidas) e ajusta a
cor do card de saldo para cyan-600.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Corrige o cálculo da coluna Média para dividir apenas pelo número de
meses com valores > 0, evitando distorção causada por meses sem
movimentação. Adiciona ícone de informação com tooltip explicativo
no cabeçalho da coluna.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adiciona fluxo completo de importação de extratos bancários:
- Upload e parsing de arquivos OFX e XLS/XLSX
- Tela de revisão com virtualização (@tanstack/react-virtual)
- Detecção automática de categoria por histórico de uso
- Deduplicação por FITID (OFX) e importBatchId
- Tabela `import_category_mappings` para persistir mapeamentos
- Botão de acesso ao fluxo na tabela de transações
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>