Files
SGF/docs/MODULAR_NAVIGATION_COMPLETION.md
T

9.7 KiB

Navegação modular — regressão e perfis de desenvolvimento

Incremento local posterior: fila administrativa de conferência, com filtros/paginação, prévia obrigatória, decisão individual e provas sintéticas isoladas. Não altera os pendentes protegidos nem constitui aceitação visual ou implantação em 8039.

Fila aceite em 02/11/2026, com autorização de checkpoint local de código funcional/testes/documentação; ver aceitação. Revisão visual, carga de implantação, seis registos sem associação e cache bloqueada permanecem separados e preservados.

Aceitação técnica expressa em 02/11/2026, registada no relatório de entrega, com autorização de checkpoint exclusivamente local e limitado à entrega. Revisão visual, associações antigas pendentes e volume/paginação permanecem separados. Não autoriza publicação, direitos públicos novos ou activação de candidatas; Compras mantém-se em 0.1.1.

Actualização de 01/11/2026 à entrega inicial. Concluídas as duas frentes técnicas: regressão da suite existente e configuração de perfis sintéticos num ambiente de desenvolvimento separado. A revisão visual continua pendente e separada.

Conferência de 02/11/2026: resultados e hashes dos JUnit confirmados; 184 ficheiros relevantes sem diferenças em relação à cópia validada; perfis e instância isolada preservados, com resposta HTTP 200. Concessões, pertenças, auditoria, guarda original e apontador de Compras conservam as impressões digitais da conclusão. Compras permanece instalado em 0.1.1. Não se repetiram testes nem provisionamento, nem se modificaram associações ou permissões. Ver evidência da retoma.

Isolamento e preservação

Foi criado um cluster PostgreSQL próprio em loopback 55439, identificado como sgf_modular_regression_2576427d1939. A aplicação principal, a demonstração anterior e a sua guarda de base permanecem no destino original; não foram paradas nem migradas para este cluster.

Finalidade Aplicação/base/role
Regressão descartável Cópia da aplicação em C:/laragon/data/sgf-tempo/run/modular-regression-2576427d1939/app; base sgf_tempo_test; role sgf_test_runner.
Desenvolvimento persistente isolado Cópia em development-app, no mesmo directório de execução; base sgf_modules_dev_2576427d1939; role sgf_modules_qa_2576427d1939; HTTP http://127.0.0.1:8039.

As roles das aplicações não têm administração do cluster, criação de bases/roles ou bypass de RLS. A base de desenvolvimento tem proprietário e acesso distintos da regressão: recriar a base de regressão não apaga os perfis ou a demonstração de desenvolvimento.

As cópias recebem apenas adaptações explícitas da identidade física: porta da regressão e, na cópia de desenvolvimento, nome de base/role. As guardas PHP e SQL continuam a comparar identidades exactas; não foram removidas. Os ficheiros adaptados são enumerados nos manifestos locais port-adaptations.json e development-identity-adaptations.json. A guarda do repositório principal continua intacta.

As migrações existentes foram aplicadas apenas às bases novas deste cluster. Não há migração nova de produto nem aplicação de migração em instalação pública, dados reais ou demonstração anterior. Não foram activadas candidatas de Compras: a cópia preserva o apontador instalado, sem mudar a versão seleccionada no host original.

A conferência de preservação comparou contagem e impressão digital de permission_grants, company_memberships e identity_audit da instalação SGF, a guarda original e o apontador instalado de Compras. Os cinco resultados permaneceram iguais. Os registos e credenciais não foram exportados para o relatório.

Regressão

  • Suite histórica completa do checkout: 185 testes, 3 220 asserções, aprovada.
  • Inclui identidade, isolamento de empresas, catálogo, prestações/rascunhos, B1, preparação/pré-visualização, classificação contabilística, cálculo/perfis fiscais, facturas/PDF, recebimentos, oficinas, custos directos/industriais, orçamento e pacote de Compras instalado.
  • Os clientes de teste passaram a declarar o módulo da sua fixture e a enviar o token nas leituras. As asserções de negócio anteriores foram conservadas, incluindo recusas, versões, idempotência, rollback e bloqueios SQL.
  • UsesModuleFixture prepara associações explícitas apenas para os dados sintéticos novos da suite, no cluster descartável. Não é middleware nem mecanismo de migração de registos antigos. Não executa atribuições na instalação ou na demonstração anterior.
  • A preparação destrutiva dos testes exige agora um identificador de execução e confere o nome efectivo do cluster antes de RefreshDatabase. A execução directa da suite destrutiva na demonstração persistente é recusada.
  • A suite focada anterior não foi repetida por rotina. A alteração da configuração dos perfis e a nova guarda de descoberta afectaram esses testes; por isso foi feita a repetição delimitada, com mais um caso de protecção: 8 testes, 90 asserções, aprovados.
  • Não houve alterações de interface nesta continuação, pelo que não se repetiu o build nem os testes estáticos de navegação já aprovados. As verificações de sintaxe e de whitespace das alterações novas passaram.

As primeiras tentativas da regressão identificaram que os destinos físicos estavam também fixados em ficheiros SQL. O runner passou a adaptar esses ficheiros na cópia isolada, mantendo as condições de recusa. Os resultados de aprovação correspondem à execução com a identidade isolada coerente, sem desligar guardas.

Perfis configurados e conferidos por HTTP

São três contas novas, sintéticas, da empresa/unidade criadas na base própria. Nenhuma conta de cliente foi seleccionada ou recebeu perfil.

Perfil Descoberta Autoridade exemplificada
Preparador Seis módulos Preparação de custos e rascunhos; sem validação dos seus custos. Administração explícita apenas nesta empresa sintética.
Revisor Seis módulos Validação de custos e revisão comercial; sem preparação correspondente ou administração de acessos.
Consulta Seis módulos Consulta concedida; sem preparação, validação ou administração.

SGF_DEVELOPMENT_PROFILES permite configurar os identificadores exactos user:tenant:company no ficheiro de ambiente privado da instância. A configuração predefinida do produto continua vazia. A descoberta exige ambiente de desenvolvimento e a guarda da base isolada; copiar um perfil para configuração de base de cliente não o activa. Em produção o desvio de descoberta continua indisponível.

As verificações HTTP autenticaram separadamente as três contas, seleccionaram os seis módulos e conferiram a separação de autoridade. Confirmaram também recusas de escrita para revisão/consulta, recusa da administração a esses perfis e manutenção das guardas dos adaptadores de fornecedores. Não houve navegador, capturas, pagamento ou associação automática.

Stock continua em preparação. A descoberta de Compras não instala configuração operacional, fontes históricas ou capacidades candidatas: os adaptadores que exigem a sua composição/base QA própria continuam a recusar execução nesta base. As funções disponíveis conservam as condições e limitações anteriores.

O exemplo de cadastro pendente continua sem qualquer associação de módulo, visível apenas na consulta administrativa autorizada e sinalizado como pendente. As listagens operacionais não o incorporam. Nenhum registo anterior foi atribuído por defeito a Comercial, Compras ou outro módulo.

As credenciais novas estão exclusivamente em C:/laragon/data/sgf-tempo/run/modular-regression-2576427d1939/private/development.json, fora do Git e da raiz web. Não usar nem substituir o ficheiro de entrada manual da oficina ou as credenciais anteriores.

Operação e recuperação locais

Os scripts de preparação são modular-regression-run.mjs e modular-development-host.mjs. O primeiro copia o checkout e prepara/testa o cluster descartável; o segundo prepara uma aplicação, base e role diferentes para os perfis persistentes. Os testes focados podem ser seleccionados separadamente pelo modo focused. As verificações HTTP estão em modular-development-http-proof.mjs.

Não repetir o provisionamento sobre uma demonstração existente: o script recusa um host de desenvolvimento já configurado. Para suspender a instância, usar o PID local de development-web.pid e o pg_ctl com o directório exacto do cluster acima, depois de conferir a identidade. Não usar serviços, bases ou credenciais da instalação principal para recuperar este ambiente. Não apagar associações, dados antigos ou apontadores de Compras como procedimento de recuperação.

O directório local conserva os relatórios JUnit, saídas completas, manifestos das adaptações e provas HTTP. A prova resumida contém apenas resultados técnicos, sem credenciais.

Continuam separados: revisão visual/aceitação da equipa, comportamento visual de recarga das páginas autónomas, atribuição humana das associações antigas, avaliação de volume/paginação e qualquer implantação/uso real. A suite automatizada completa não declara executadas verificações manuais ou provas externas que não pertençam a ela.

Sem publicação, push, checkpoint de aceitação, alterações dos direitos públicos ou activação de candidatas de Compras.