Pular para conteúdo

AUR-544: o aceite do AUR-439 volta a compilar no ambiente isolado

Causa medida

bash tests/acceptance/AUR-439.sh all (go-shared, main em 4650f774) morria em AUR-439/AC-001/build_failed. O sintoma registrado no card (module lookup disabled by GOPROXY=off) esconde um pacote interno ausente da copia isolada, o mesmo disfarce medido no AUR-547. A saida real do build:

internal/analyzer/language.go:12:2: cannot find module providing package github.com/Mpaape/AurumCode/internal/grammar: module lookup disabled by GOPROXY=off
cmd/aurumcode/aur533.go:20:2: cannot find module providing package github.com/Mpaape/AurumCode/internal/artifacts: module lookup disabled by GOPROXY=off
internal/config/dtrack.go:7:2: cannot find module providing package github.com/Mpaape/AurumCode/internal/dtrack: module lookup disabled by GOPROXY=off
cmd/aurumcode/main.go:157:2: cannot find module providing package github.com/Mpaape/AurumCode/internal/gate: module lookup disabled by GOPROXY=off
cmd/aurumcode/profiles.go:36:2: cannot find module providing package github.com/Mpaape/AurumCode/internal/reviewprofile: module lookup disabled by GOPROXY=off
cmd/aurumcode/aur549.go:43:2: cannot find module providing package github.com/Mpaape/AurumCode/internal/sbom: module lookup disabled by GOPROXY=off
cmd/aurumcode/aur551.go:35:2: cannot find module providing package github.com/Mpaape/AurumCode/internal/supplychain: module lookup disabled by GOPROXY=off
cmd/aurumcode/aur552.go:25:2: cannot find module providing package github.com/Mpaape/AurumCode/internal/xbom: module lookup disabled by GOPROXY=off

stage_source() copiava uma lista enumerada de subpacotes: faltavam internal/artifacts, internal/dtrack, internal/gate, internal/grammar, internal/reviewprofile, internal/sbom, internal/supplychain e internal/xbom, adicionados ao produto depois da lista. Sem eles, o Go tenta resolve-los como modulo e o GOPROXY=off recusa. Nao ha modulo externo faltando; go.mod/go.sum nao mudam.

Corrigido o build, IntegrationAUR439 mostrou uma segunda camada de defasagem, so em tests/integration/AUR-439.go (o e2e ja estava alinhado):

  • O fake respondia o DIFF em GET /repos/dono/projeto/pulls/42 para qualquer Accept. Desde o AUR-504, --check ancora o status no head.sha dos metadados JSON desse endpoint; sem ele o produto falha fechado (decoding pull request metadata, 0 status POST).
  • As respostas de modelo sinteticas nao traziam impact, evidence e verification; o gate de escopo e evidencia descarta o achado (grave virava sucesso).
  • O contrato de zero achados no --pr e a linha 0 comentario(s) publicado(s) mais o status; No issues found. e do --base (AUR-490), e o comentario-resumo sempre e postado (1 status + 1 resumo).

Correcao

tests/acceptance/AUR-439.sh: copy "$root" cmd internal pkg (inteiros, nunca lista enumerada) e GOCACHE respeitado quando ja exportado. Nenhuma asserção, mutação, selector ou exit code mudou.

tests/integration/AUR-439.go: o fake devolve o diff quando o Accept pede diff e, senao, {"number":42,"title":"t","body":"b","head":{"sha":...}} com o head definido por subteste (o mesmo valor do GITHUB_SHA que o teste ja afirmava no caminho do status); fixtures com impact/evidence/verification; o subteste sem SHA espera a recusa head SHA (AUR-504, igual ao e2e); zero achados espera a linha de resumo e 2 POSTs. As mesmas propriedades continuam afirmadas (grave nunca sai 0, estado failure/success, um unico status, token somente-leitura sem POST, determinismo).

Prova

tests/acceptance/AUR-544.sh: AC-001 roda AUR-439.sh all e exige exit 0; AC-002 confere esta spec; AC-001-MUT-001 reverte a copia inteira para a lista antiga numa copia de trabalho e exige exit 1 com build_failed e cannot find module providing package. Selector desconhecido sai com 64.