From 3e80d5995b90d1f17166ba0d2792b2d865bf5ed2 Mon Sep 17 00:00:00 2001 From: Felipe Coutinho Date: Thu, 16 Apr 2026 21:16:44 +0000 Subject: [PATCH] chore(release): v2.4.1 Co-Authored-By: Claude Opus 4.7 --- CHANGELOG.md | 20 ++++++++++++++++++++ README.md | 39 ++++++++++++++++++++++++++++++++++++++- package.json | 2 +- 3 files changed, 59 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b5f91e0..fdedc64 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,26 @@ e este projeto adere ao [Versionamento Semântico](https://semver.org/lang/pt-BR ## [Unreleased] +## [2.4.1] - 2026-04-16 + +### Adicionado + +- UI/Auth: layout animado nas páginas de login e signup com efeito blob (3 círculos coloridos em movimento) e card com glassmorphism; layout compartilhado extraído para `app/(auth)/layout.tsx` eliminando duplicação (PR #42) +- DB: 17 índices em foreign keys — evita sequential scans em deletes nas tabelas pai. Impacto maior nas FKs de `lancamentos` (conta_id, categoria_id, antecipacao_id), onde deletes em `categorias` antes provocavam full scan na tabela de lançamentos + +### Alterado + +- UI/Navbar: labels capitalizados (Lançamentos, Categorias, Contas) em vez de caixa baixa — melhora legibilidade (PR #42) + +### Removido + +- DB: 7 índices sem uso — `tokens_api_user_id_idx`, `cartoes_user_id_status_idx`, `contas_user_id_status_idx`, `pagadores_user_id_status_idx`, `pagadores_user_id_role_idx`, `dashboard_notification_states_user_id_archived_idx`, `antecipacoes_parcelas_series_id_idx` (0 scans em 187 dias de estatísticas) +- UI/Settings: tab de Integrações órfã removida (não tinha `TabsContent` correspondente) + +### Corrigido + +- Docker: container do PostgreSQL falhava ao iniciar em instalações existentes após atualização da imagem `postgres:18-alpine` — entrypoint passou a recusar dados no caminho legado `/var/lib/postgresql/data`. Adicionada variável `PGDATA` no `docker-compose.yml` para fixar o caminho e preservar dados de quem já tinha o volume populado (resolve #41) + ## [2.4.0] - 2026-04-13 ### Adicionado diff --git a/README.md b/README.md index 66f8099..6fc4f0a 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ > **⚠️ Não há versão online hospedada.** Você precisa clonar o repositório e rodar localmente ou no seu próprio servidor. -[![Version](https://img.shields.io/badge/version-2.4.0-blue?style=flat-square)](CHANGELOG.md) +[![Version](https://img.shields.io/badge/version-2.4.1-blue?style=flat-square)](CHANGELOG.md) [![Next.js](https://img.shields.io/badge/Next.js-black?style=flat-square&logo=next.js)](https://nextjs.org/) [![TypeScript](https://img.shields.io/badge/TypeScript-blue?style=flat-square&logo=typescript)](https://www.typescriptlang.org/) [![PostgreSQL](https://img.shields.io/badge/PostgreSQL-blue?style=flat-square&logo=postgresql)](https://www.postgresql.org/) @@ -390,6 +390,38 @@ S3_BUCKET= --- +## 🏷️ Logos de Estabelecimentos (Logo.dev) + +O app exibe logos automáticos de marcas na coluna de estabelecimentos nos lançamentos. A integração usa a [Logo.dev](https://www.logo.dev) e é opcional — sem ela, o app exibe as iniciais coloridas normalmente. + +### Variáveis + +```env +NEXT_PUBLIC_LOGO_DEV_TOKEN=pk_... # token público (obrigatório para exibir logos) +LOGO_DEV_SECRET_KEY=sk_... # chave secreta (obrigatório para o picker de busca) +``` + +### Como configurar + +**Self-hosted via Docker Hub (Coolify, Railway, etc.):** + +O `NEXT_PUBLIC_LOGO_DEV_TOKEN` é inlinado pelo Next.js **em build time** — ele não pode ser injetado como variável de ambiente em runtime. Por isso o processo é diferente do usual: + +1. Cadastre o secret `NEXT_PUBLIC_LOGO_DEV_TOKEN` no repositório GitHub Fork (Settings → Secrets → Actions) +2. O workflow de CI já está configurado para passar o valor como `--build-arg` no `docker build` +3. Faça um novo build (push ou Run workflow manual) — a imagem gerada já terá o token embutido +4. No Coolify (ou outro host), adicione apenas `LOGO_DEV_SECRET_KEY` como variável de ambiente runtime + +**Desenvolvimento local:** + +Adicione as duas variáveis no `.env` normalmente — o Next.js as lê em `pnpm dev` sem nenhuma etapa extra. + +### Como usar + +Após configurado, passe o mouse sobre o avatar de qualquer estabelecimento nos lançamentos — um ícone de lápis aparece. Clique para abrir o picker, busque pelo nome da marca e selecione o logo desejado. O mapeamento fica salvo por usuário no banco. + +--- + ## 🔐 Variáveis de Ambiente **Perfil 2 (dev):** copie `.env.example` para `.env` — o `DATABASE_URL` já vem com `localhost`, pronto para uso com `pnpm dev`. @@ -437,6 +469,11 @@ ANTHROPIC_API_KEY= OPENAI_API_KEY= GOOGLE_GENERATIVE_AI_API_KEY= OPENROUTER_API_KEY= + +# Logo.dev (opcional, necessário para logos automáticos de estabelecimentos) +# NEXT_PUBLIC_LOGO_DEV_TOKEN deve ser passado como build arg no CI — veja seção Logo.dev +NEXT_PUBLIC_LOGO_DEV_TOKEN= +LOGO_DEV_SECRET_KEY= ``` --- diff --git a/package.json b/package.json index d0de252..1768a61 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "openmonetis", - "version": "2.4.0", + "version": "2.4.1", "private": true, "packageManager": "pnpm@10.33.0", "scripts": {