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

4.3 KiB

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. 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.