# CHANGELOG — rastreabilidade Registo de decisões e ficheiros alterados, por incremento. Referenciar a secção da SDD que justifica cada alteração. ## v0.3 — Containerização Docker (2026-06-12) — SDD - Novo requisito: encapsular o site em **Docker** para funcionamento independente e isolado. Criado [06-deployment.md](./06-deployment.md) (build multi-stage node→nginx, SPA fallback, compose, healthcheck). - Novos requisitos funcionais **RF-D1..RF-D6** em [05-acceptance.md](./05-acceptance.md). - Atualizados [00-overview.md](./00-overview.md), [02-architecture.md](./02-architecture.md) (stack + estrutura: `Dockerfile`, `.dockerignore`, `nginx.conf`, `docker-compose.yml`) e índice [README.md](./README.md). - Benefício direto: o build de TypeScript passa a ser verificável via `docker build` mesmo sem Node instalado no host (ver [[node-not-installed]]). - **Estado:** SDD de deployment **aprovada**. Ficheiros Docker criados: `Dockerfile` (multi-stage node:22-alpine → nginx:1.27-alpine; `npm ci || npm install`; healthcheck), `.dockerignore`, `nginx.conf` (SPA fallback + gzip + cache de assets), `docker-compose.yml` (porta `8080:80`, restart, healthcheck). - **Verificação pendente:** Docker **não está instalado** nesta máquina (`docker` não está no PATH). Não foi possível correr `docker build` para validar RF-D1..RF-D6 nem o gate de TS via imagem. Executar assim que houver Docker. ## v0.1 — SDD inicial (2026-06-11) - Criada estrutura `specs/` (00–05 + README + CHANGELOG) a partir de `boot.md`, `prompt.md` e `input_files/` (`Notas Site.docx`, `cronograma.png`). - Conteúdo canónico extraído para [03-content.md](./03-content.md). - **Estado:** SDD **aprovada** (2026-06-11). Início da implementação. ### Decisões (aprovadas pelo PM) 1. Logos dos parceiros → **placeholders** (cartões com sigla/nome) até receber ficheiros. 2. Paleta → usar a **proposta** (primary `#0B2A4A`, accent `#1E6FD9`); afinar depois. 3. Posições de milestones/reports no cronograma — estimadas da imagem; refinar no `Gantt`. ## v0.2 — Implementação (2026-06-11) Scaffold + implementação completa (SDD §02/§04). Ficheiros criados: **Config / raiz** - `package.json`, `vite.config.ts`, `tsconfig.json`, `tsconfig.app.json`, `tsconfig.node.json`, `components.json`, `index.html`, `.gitignore`, `README.md`, `public/favicon.svg` **Core** - `src/main.tsx`, `src/router.tsx` (tanstack-router, rota `/`), `src/index.css` (tokens do design system §01), `src/vite-env.d.ts`, `src/App.tsx` - `src/lib/utils.ts` (cn), `src/lib/scroll.ts` (scroll suave + navItems) - `src/data/project.ts` (conteúdo canónico §03, tipado) **UI (shadcn)** — `src/components/ui/`: `button`, `card`, `badge`, `dialog`, `sheet` **Layout** — `src/components/layout/`: `Header` (nav + sheet mobile), `Footer` (parceiros placeholder + financiamento), `Section` (wrapper âncora + in-view) **Sections** — `src/components/sections/`: `Hero`, `Goal`, `WorkPlan`, `WorkPlanCard`, `Gantt` (cronograma inspirado em `cronograma.png`), `Indicators`, `IndicatorCard` ### Verificação - **Pendente:** Node.js/npm não estão instalados nesta máquina (não há `node.exe` em C:). Não foi possível correr `npm install` / `npm run build` para validar o gate de TypeScript. Código revisto manualmente. Executar a verificação assim que o Node estiver disponível (ver `specs/05-acceptance.md`).