Files
openmonetis/CHANGELOG.md
Felipe Coutinho 6f5c41a4cf perf: otimizar dashboard com indexes, cache e consolidação de queries (v1.3.0)
- Adicionar indexes compostos em lancamentos para queries frequentes
- Eliminar ~20 JOINs com pagadores via helper cacheado getAdminPagadorId()
- Consolidar queries: income-expense-balance (12→1), payment-status (2→1), categories (4→2)
- Adicionar cache cross-request via unstable_cache com tag-based invalidation
- Limitar scan de métricas a 24 meses
- Deduplicar auth session por request via React.cache()

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 12:24:15 +00:00

2.8 KiB

Changelog

Todas as mudanças notáveis deste projeto serão documentadas neste arquivo.

O formato é baseado em Keep a Changelog, e este projeto adere ao Versionamento Semântico.

[1.3.0] - 2026-02-06

Adicionado

  • Indexes compostos em lancamentos: (userId, period, transactionType) e (pagadorId, period)
  • Cache cross-request no dashboard via unstable_cache com tag "dashboard" e TTL de 120s
  • Invalidação automática do cache do dashboard via revalidateTag("dashboard") em mutations financeiras
  • Helper getAdminPagadorId() com React.cache() para lookup cacheado do admin pagador

Alterado

  • Eliminados ~20 JOINs com tabela pagadores nos fetchers do dashboard (substituídos por filtro direto com pagadorId)
  • Consolidadas queries de income-expense-balance: 12 queries → 1 (GROUP BY period + transactionType)
  • Consolidadas queries de payment-status: 2 queries → 1 (GROUP BY transactionType)
  • Consolidadas queries de expenses/income-by-category: 4 queries → 2 (GROUP BY categoriaId + period)
  • Scan de métricas limitado a 24 meses ao invés de histórico completo
  • Auth session deduplicada por request via React.cache()
  • Widgets de dashboard ajustados para aceitar Date | string (compatibilidade com serialização do unstable_cache)
  • CLAUDE.md otimizado de ~1339 linhas para ~140 linhas

[1.2.6] - 2025-02-04

Alterado

  • Refatoração para otimização do React 19 compiler
  • Removidos useCallback e useMemo desnecessários (~60 instâncias)
  • Removidos React.memo wrappers desnecessários
  • Simplificados padrões de hidratação com useSyncExternalStore

Arquivos modificados

  • hooks/use-calculator-state.ts
  • hooks/use-form-state.ts
  • hooks/use-month-period.ts
  • components/auth/signup-form.tsx
  • components/contas/accounts-page.tsx
  • components/contas/transfer-dialog.tsx
  • components/lancamentos/table/lancamentos-filters.tsx
  • components/sidebar/nav-main.tsx
  • components/month-picker/nav-button.tsx
  • components/month-picker/return-button.tsx
  • components/privacy-provider.tsx
  • components/dashboard/category-history-widget.tsx
  • components/anotacoes/note-dialog.tsx
  • components/categorias/category-dialog.tsx
  • components/confirm-action-dialog.tsx
  • components/orcamentos/budget-dialog.tsx

[1.2.5] - 2025-02-01

Adicionado

  • Widget de pagadores no dashboard
  • Avatares atualizados para pagadores

[1.2.4] - 2025-01-22

Corrigido

  • Preservar formatação nas anotações
  • Layout do card de anotações

[1.2.3] - 2025-01-22

Adicionado

  • Versão exibida na sidebar
  • Documentação atualizada

[1.2.2] - 2025-01-22

Alterado

  • Atualização de dependências
  • Aplicada formatação no código