# 2026-10-02

## GardenJá — relatório de gestão + adubação + "ver mais" (02:00) E2E 13/14 (1 asserção antiga do teste) ✅
Aprovado pelo Caique ANTES de executar (pediu para mostrar o plano antes — a partir de agora, apresentar plano antes de features grandes).

- **Relatório de gestão (dashboard):** texto corrido executivo — pediu "nível de gestão, sem detalhe" (2ª iteração; 1ª versão listava nomes). `lib/summary.ts` `activityReport(db, pending)` agrega por dia (hoje/ontem): total de cuidados + breakdown (regas, trocas de água, adubações, fotos), estrutura (ninhadas novas, plantas novas, promoções), perdas, e fecha com estado das pendências ("Painel limpo ✅" / "N em aberto, N em atraso"). Card `RecentSummary` no topo do dashboard. Datas SEMPRE no fuso Europe/Berlin (app usa local; testes devem usar Intl com timeZone, não toISOString UTC — dia vira às 00:00 locais).
- **Adubação programada:** `MotherPlant.fertilizeEveryDays?` (vazio = sem rotina) no `PlantFormModal`; pendência tipo 'fertilize' ("Adubar X", "Última adubação Nd atrás · ciclo Nd"); botão rápido "Adubar" na pendência registra evento e limpa.
- **Histórico "ver mais":** `PlantDetail` mostra 6 (EVENT_LIMIT) + botão "Ver mais N registos antigos" / "Ver menos" (allEvents).
- Testes `/tmp/gj-test/test-round3.js`. Nota: edits com resposta "No result provided" APLICARAM na mesma — duplicou `allEvents` (fix). Users de teste limpos; só caique.taka@gmail.com.

## GardenJá — ocultar plantas "Perdidas" (12:58) ✅
Pedido do Caique: plantas com status `lost` poluíam o painel; esconder visualmente SEM apagar (registo preservado).
- **Dashboard:** grid "As minhas plantas-mãe" agora filtra `status !== 'lost'` (`visiblePlants`); Stat "Plantas-mãe" mostra ativas + hint "N no arquivo"; contador do header "N ativas · M no arquivo"; EmptyState dedicado quando só há perdidas.
- **Página Plantas:** filtro "Todas" → **"Ativas"** (default, exclui lost); chip "Perdidas" continua para consultar o arquivo; lógica: `active` → `p.status !== 'lost'`, resto por igualdade.
- Registo intacto: `updatePlant`/detail page inalterados; pendências já ignoravam lost (GardenContext L128).
- `npx tsc --noEmit` ✅ + `npm run build` ✅ (dist/assets/index-DdTONBcn.js) + `pm2 restart gardenja` — serve static de ../dist com no-cache no index.html.
