Skip to content

test(baseline): fixar fontes históricas e qualificar F01/F02 - #454

Merged
gmhelmold merged 3 commits into
mainfrom
work/hug-003-f01-static
Sep 18, 2026
Merged

gmhelmold merged 3 commits into
mainfrom
work/hug-003-f01-static

Conversation

@gmhelmold

@gmhelmold gmhelmold commented Sep 18, 2026

Copy link
Copy Markdown
Owner

Refs #382. Incremento do HUG-003; não fecha o WP e não corrige o runtime de HUG-012/HUG-014.

Candidato e escopo

  • Base: ce2fcf1b8243eea2bd1be5aff25dfb3f6571ead4.
  • Candidato: e100ac86396f7a6f98361d06233c0c41b160fe77.
  • Árvore: 5b5f7479b3755ceef90c2936dce7b4ff714c7dbd.
  • Três arquivos: scripts/acceptance/baseline_oracles.py, docs/audit/baseline-results.json e o passo existente de .github/workflows/standalone-plan-validation.yml.
  • Nenhum Rust, plano normativo ou runtime alterado. Não removemos checks anteriores.

F01 e F02

F01 — limit_justified: hardening bounded-local não torna shell arbitrário hermético ou elegível para reuso. A limitação permanece; HUG-012/HUG-013 precisam implementar suas garantias.

F02 — static_defect_observed: bisect_failure retorna o primeiro locus vermelho; evaluate_union constrói o restante sem reavaliá-lo; outcomes_for_landing marca os não excluídos como Green. O exemplo A+B / C+D é uma contraprova analítica claramente rotulada, não um trace executado nem uma promoção Git observada. HUG-014/HUG-043 continuam responsáveis pela correção.

As cinco observações runtime F03/F04/F06/F09/F10 permanecem integralmente preservadas (commands, persisted_files, findings, origin, subject e binário comparados com o candidato inicial). Restam 12 findings pendentes: F05/F07/F08/F11–F19. product_accepted=false, whole_wp_ready=false, --product-gate exit 1.

Defeitos encontrados na revisão e corrigidos neste PR

  1. O candidato anterior aceitava enfraquecer as âncoras de checks/run.rs para apenas ['fn']. Agora fontes, hashes, âncoras, classes e escopos de evidência são vinculados ao contrato do verificador; o relatório não escolhe os arquivos a ler.
  2. As fontes históricas eram lidas do checkout corrente, congelando correções futuras do produto. A CI agora extrai apenas seis arquivos do commit histórico fixado ce2fcf1 e passa esse snapshot explicitamente ao checker. Uma alteração em um checkout temporário não invalidou a verificação histórica; seus bytes foram restaurados depois do ensaio.
  3. Leituras limitadas por arquivo, recusa de arquivos especiais/links e contagens/statuses coerentes. Não é isolamento de host malicioso same-user; esse limite está declarado.

O checker não executa comandos do relatório, hooks, subprocessos ou reducers do Hugit. O modo self-test cria e remove somente fixtures privadas próprias.

Evidências do candidato

35 controles locais e na CI: 31 recusas e quatro controles positivos/recuperação. Duas execuções locais produziram bytes idênticos. O relatório da CI também coincide byte a byte com o local.

  • Standalone plan validation: run 35305425233, success.
  • DCO: run 35305425327, success.
  • Artefato 10531218917, digest sha256:0df01643bbab371220eb53baafd99a38babbb9ac052ef40997296f7608185d74.
  • SHA-256 do relatório verificado: 353a27411e52b5a6a0f04f353b4a889d987afb0132b802df44901c3ab6e90e67.
  • Reproducible Evidence: run 35305425231, success, incluindo produce e verify-on-fresh-host.

A CI completa do main anterior já passou, incluindo Windows, na tentativa 1 (35297469428).

Integração e pendências

Revisão pelo executor conforme orientação do proprietário; não alegar independência. Merge somente com checks finais verdes e SHA esperado, depois comparar árvore/arquivos e conferir higiene. HUG-003 permanece aberto: faltam os 12 findings, positivo de captura Git/adulteração parcial e aceitação/recuperação completas do WP. Não usar Closes.

Integração e pós-verificação concluídos

Merge ac14dd97ba51c8640d5b8df17382b4ee4a9e1237, mesma árvore do candidato revisado. Readback dos três arquivos conferido. Review final do executor 5244139858. CI completa 35305630942, Standalone plan validation 35305630964 e Reproducible Evidence 35305630933 passaram no main, todos na tentativa 1, incluindo check/test/build/smoke Windows. Relatório pós-merge (artefato 10531558550) é byte a byte igual ao relatório do candidato/local. Branch de trabalho removida, nenhum PR aberto; três checkouts descartáveis próprios removidos após conferência. HUG-003 permanece aberto, com o estado completo em #382.

Signed-off-by: Gustavo Schneiter <gustavomalleths@gmail.com>

@gmhelmold gmhelmold left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Revisão do executor sobre o candidato acd5c37cf2026261024fbaf57157d1688a59f715.

Parecer

Aprovo esta classificação de F01 para HUG-003, não a correção de HUG-012/HUG-013.

O diff faz a distinção correta entre:

  • regressões históricas realmente reproduzidas;
  • hardening bounded-local posteriormente entregue;
  • limite ainda não qualificável como reuso genérico de shell arbitrário.

Por isso limit_justified é a disposição correta para F01 aqui. Eu reprovaria satisfied, fixed ou uma nova alegação de runtime repro sem execução contemporânea.

O checker ancora a conclusão em quatro arquivos com SHA-256 e substrings obrigatórias, e os novos controles negativos rejeitam perda de F01, falsa declaração de correção e digest adulterado. Os cinco regressions runtime F03/F04/F06/F09/F10 continuam vermelhos; --product-gate continua exit 1; 13 findings continuam pending.

Limites

Esta entrega não muda Rust, não altera HUG-012/HUG-013, não reexecuta os rounds históricos e não torna shell arbitrário hermético. Ela somente fecha o requisito de HUG-003 de dar disposição verificável a F01.

DCO, Standalone plan validation e Reproducible Evidence passaram no candidato. Ainda aguardo a CI completa pós-merge do PR #452 antes de autorizar integração, para não empilhar sobre um main possivelmente vermelho.

Copy link
Copy Markdown
Owner Author

Revisão final — correções necessárias antes do merge

A CI completa do main ce2fcf1 terminou success, tentativa 1, incluindo Windows (run 35297469428). O bloqueio de CI terminou.

A revisão adicional do candidato acd5c37 encontrou dois bloqueadores neste incremento:

  1. verify_static aceita que o próprio relatório enfraqueça suas âncoras: trocar as condições de checks/run.rs por apenas ['fn'] passou no verificador anterior. Foi conferido com uma cópia em memória, sem modificar fonte ou relatório.
  2. A CI lê as fontes históricas no checkout atual. Corrigir checks/run.rs depois faria falhar a caracterização histórica por hash, apesar de sua evidência continuar válida. A qualificação deve ler um snapshot fixado, sem obrigar a reescrever a observação histórica a cada correção do produto.

Vou fixar o conjunto autorizado de fontes/âncoras, limitar essas leituras e fazer a CI materializar a revisão histórica explícita antes da verificação. O consumidor permanecerá somente leitura, sem subprocessos ou execução do conteúdo do relatório. O ajuste da CI fica incorporado a este mesmo PR como responsabilidade do integrador; não será aberto um PR paralelo nem dispensado qualquer controle anterior.

A aprovação anterior do executor não basta para integrar este candidato sem essas correções. A nova revisão e os checks serão vinculados ao SHA corrigido.

Signed-off-by: Gustavo Schneiter <gustavomalleths@gmail.com>
… F02

Signed-off-by: Gustavo Schneiter <gustavomalleths@gmail.com>
@gmhelmold gmhelmold changed the title test(baseline): classificar F01 com evidência estática fixada test(baseline): fixar fontes históricas e qualificar F01/F02 Sep 18, 2026

@gmhelmold gmhelmold left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Revisão final do executor sobre e100ac86396f7a6f98361d06233c0c41b160fe77 (substitui o parecer anterior sobre acd5c37).

Aprovo a integração deste incremento de HUG-003, não a conclusão do WP nem a correção do produto.

  • Corrigida a aceitação de âncoras enfraquecidas: a mutação requires=['fn'], antes aceita, agora é recusada. Fontes, hashes, âncoras, classes e escopos são controlados pelo checker, não pelo relatório.
  • A verificação histórica usa snapshot explícito de ce2fcf1 com seis fontes. Alterar o código no checkout descartável não mudou a verificação desse snapshot, e o arquivo foi restaurado. Futuras correções do runtime não precisam reescrever o histórico.
  • Leituras têm limite de bytes e controles para arquivos especiais/links; self-test manipula somente temporários próprios. Não há execução de subprocessos, hooks ou reducers pelo checker nem promessa de isolamento contra escritor hostil same-user.
  • F01 é limitação justificada; F02 é defeito identificado por inspeção da fonte. A contraprova A+B/C+D está rotulada como análise, não trace executado. HUG-012/013/014/043 continuam responsáveis pelas correções.
  • As observações runtime anteriores foram preservadas integralmente. Resultado: cinco regressões reproduzidas, uma limitação justificada, um defeito estático, zero satisfeitos e 12 findings pendentes. Product gate continua exit 1.

35 controles (31 recusas e quatro positivos/recuperação) passaram localmente e na CI. O artefato 10531218917 foi baixado; relatório SHA-256 353a27411e52b5a6a0f04f353b4a889d987afb0132b802df44901c3ab6e90e67 coincide byte a byte com o local. Snapshot fornecido permaneceu intacto e fixtures do self-test foram removidas.

DCO 35305425327, Standalone plan validation 35305425233 e Reproducible Evidence 35305425231 concluíram com sucesso; o último inclui produce e verify-on-fresh-host. A CI completa do main base também passou. Não houve dispensa de check, alteração do Rust ou reclassificação de bug como corrigido.

Revisão realizada por mim conforme direção do proprietário, sem alegar independência. Manter #382 aberta e preservar as pendências já registradas.

@gmhelmold
gmhelmold marked this pull request as ready for review September 18, 2026 04:05
@gmhelmold
gmhelmold merged commit ac14dd9 into main Sep 18, 2026
4 checks passed
@gmhelmold
gmhelmold deleted the work/hug-003-f01-static branch September 18, 2026 04:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant