Files
SGF/docs/COMMON_FINANCE_BUNDLE_DELIVERY.md
2026-11-04 09:37:20 +02:00

24 lines
4.3 KiB
Markdown

# Artefacto financeiro autónomo — composição QA
Continuação funcional do ciclo aprovado, sem novos efeitos financeiros. **Demo própria SGC: http://127.0.0.1:8052/qa/ledger-demo**. Mantém as três funções, uma obrigação60 e nenhum pagamento/lançamento inicial. SGF8050, SGC8051 e demos anteriores permanecem preservados.
Foi acrescentado um artefacto versionado por conteúdo com **25 ficheiros** de runtime de Payables/GeneralLedger e verificador, extraídos da fonte canónica, sem credenciais, bases, fixtures ou suites. Manifesto SHA-256 desta prova: `6a507ea7d708a12a8e526e4c610696d8db84079d18aede470237b65505630e7e`. O pacote foi criado em pasta QA privada; não foi instalado no destino, publicado ou activado no SGC existente.
O host nativo tem agora um ponto de composição explícito em `FinanceBundle::configure`, antes de carregar Payables. Sem configuração de artefacto mantém exactamente o caminho anterior. Com configuração exige ambiente de teste, base/role própria não elevada no cluster55439, manifesto cujo hash está fixado na configuração e hash do carregador. Só depois carrega o verificador e confere todos os ficheiros, caminhos permitidos, duplicações, ausências, alterações, extras e links simbólicos. Falha recusa o arranque; não regressa silenciosamente à pasta antiga. O manifesto é lido/conferido pelos mesmos bytes usados na descodificação.
As chaves novas `common-finance-bundle.root/manifest_sha256` seleccionam fonte de código, **não concedem direitos nem activam contabilidade**. Flags sintéticas continuamfalse nos defaults; ausência de root é o comportamento normal. Configuração real, migrações, cache e pacote instalado continuam intactos. Hashes fixam integridade do conteúdo; não são certificação fiscal ou validação de distribuição comercial.
Provas novas, sem repetir o ciclo inteiro já válido:
- **9 verificações** numa base nativa nova: cinco classes financeiras, incluindo o verificador, carregadas exclusivamente do artefacto; preparação/revisão/aplicação de reconhecimento60 e replay com uma só gravação; duas linhas; totais e fingerprint original de factura/stock/orçamento preservados.
- **6 verificações** do contrato de artefacto: conteúdo válido aceite; ficheiro alterado, ausente, extra, caminho de travessia e hash fixado errado recusados.
- **4 recusas efectivas no arranque do host**: ficheiro alterado, extra, hash errado e carregador alterado. O carregador alterado continha um marcador de execução; o marcador nunca foi produzido. Sem fallback, efeitos de negócio ou alterações à prova original.
- **28 verificações** de preparação do demo8052: três funções, cookies separados, estados iniciais vazios e ligações financeiras/contabilísticas. Sem comandos de negócio na base da equipa.
- PHPStan nível7 nos dois ficheiros nativos novos: zero erros; formatação e sintaxe dirigidas. A cache de análise é privada; não se usou a suite Composer que limpa configuração/cache.
[Manifesto e hashes](proofs/common-finance-bundle-20261103.json). O primeiro construtor encontrou um README opcional ausente em Payables; a cópia incompleta foi retida como diagnóstico, sem arranque ou uso. A construção final exclui ficheiros opcionais inexistentes e exige os bootstraps. Nenhuma prova aprovada foi sobrescrita.
Reprodução: `scripts/finance-bundle-build.mjs` constrói novo artefacto QA; `scripts/finance-bundle-check.mjs` verifica integridade/recusas; `scripts/ledger-cycle-native-run.mjs new-bundle` cria outra base configurada com o hash fixado; fase PHP `native-cycle-bundle` prova o writer do artefacto; `scripts/finance-bundle-boot-check.mjs <tag>` prova as recusas do host. Demo exige outra fixture, `ledger-cycle-native-demo.mjs` e `ledger-cycle-demo-check.mjs native <tag>`. Preservar as fixtures consumidas pelas provas.
O artefacto contém apenas estes dois núcleos; não empacota todo o Laravel, dependências, orçamento, Compras ou instalação comercial. Não se ensaiaram outras plataformas, implantação, actualização de base instalada, carga sustentada, ACLs ou revisão visual. Não é uma passagem operacional de dados entre SGF/SGC. Seis associações, cache, dados/acessos reais, candidatas, demos e trabalho paralelo preservados. Sem publicação, aceitação ou checkpoint presumidos.