# Registo de alterações Todas as alterações materiais são registadas neste ficheiro. O formato segue Keep a Changelog sem exigir versionamento formal durante o desenvolvimento inicial. ## Não publicado ### Adicionado - Fundação Laravel 13 com React 19, Inertia 3, TypeScript, Tailwind 4 e Fortify. - Infraestrutura Docker Compose para Nginx, PHP-FPM, PostgreSQL, Redis, Vite, filas, scheduler e Mailpit. - Modelos e migrations de identidades, perfis, permissões, ativos, reservas, aprovações, bloqueios, entregas, sincronizações e auditoria. - Restrição PostgreSQL para impedir reservas bloqueantes sobrepostas. - Serviços transacionais de disponibilidade e criação de pré-reserva. - Dashboard, catálogo filtrável, formulário de requisição multi-equipamento e histórico pessoal. - Seeders com perfis, ativos fictícios e contas de demonstração. - Documentação de arquitetura, requisitos, decisões, operação, estado e handoff. - Cliente de leitura Snipe-IT com autenticação Bearer, paginação, timeout, retries seletivos, DTOs e mapper defensivo. - Sincronização horária e manual de equipamentos, job único, lock distribuído, histórico de execuções e desativação segura de ausentes. - Área administrativa de diagnóstico Snipe-IT com teste de conectividade, métricas do cache e histórico de sincronizações. - Autorização administrativa através de Gate e navegação condicional por perfil. ### Alterado - Nome, identidade visual e idioma orientados ao Portal de Reservas. - Configuração padrão alterada para PostgreSQL, Redis, SMTP/Mailpit e Europa/Lisboa. - Configuração de desenvolvimento Vite passa a publicar módulos e HMR em `localhost:5173` e a aceitar explicitamente a origem do portal em `localhost:8000`, corrigindo a página em branco em Docker. - As mensagens flash globais recebem agora as propriedades diretamente de `withApp`, evitando o uso de `usePage()` fora do contexto Inertia que interrompia o arranque do React. - SSR de desenvolvimento ligado internamente de PHP para o serviço `node`, com o hostname Docker autorizado no Vite. ### Segurança - Registo público desativado. - Variáveis para tokens Snipe-IT separados e credenciais Entra ID documentadas sem valores. ### Verificado - Migrations e seeders executados em PostgreSQL 17 real. - Suite backend: Pint, PHPStan nível 7 e 53 testes Pest (201 asserções). - Frontend: TypeScript, ESLint, Prettier e build Vite de produção. - Stack Docker operacional e endpoint de login acessível através do Nginx. - Renderização SSR real do login validada, incluindo o conteúdo “Entrar no Portal de Reservas”. - API Snipe-IT simulada em testes: paginação, headers, retry, erro em HTTP 200, falha parcial, idempotência e desativação de ausentes. - Migration `last_seen_sync_run_id` aplicada em PostgreSQL 17.