Skip to content

Expose byte-compatible package artifact verification - #52

Merged
intel352 merged 1 commit into
mainfrom
feat/public-package-artifact-verifier-20261003
Oct 3, 2026
Merged

intel352 merged 1 commit into
mainfrom
feat/public-package-artifact-verifier-20261003

Conversation

@intel352

@intel352 intel352 commented Oct 3, 2026

Copy link
Copy Markdown
Contributor

Summary

Extract the existing reusable package-artifact tuple verifier into public compute-core protocol. Preserve exact ordered JSON/hash bytes, optional plugin ID, explicitly trusted key aliases and signature encoding. Bootstrap raw-JSON and legacy directive signatures remain separate domains.

Scope Manifest

Approved recovery ADR 0152: 25 tasks / 14 PRs, original outcomes retained.
This PR is only Task 24 / PR 13, branch feat/public-package-artifact-verifier-20261003.
Design/plan: GoCodeAlone/workspace docs/plans/2026-10-02-workflow-compute-recovery-design.md and docs/plans/2026-10-02-workflow-compute-recovery-0a.md.

Four files only: new public payload/verifier and external-package tests, shared vector consumer and append-only golden vector additions. No installer, provider, private app policy, key generation or signing fallback.

Verification

  • TDD: absent public API RED; runtime defect RED; production-only revert rejects exact tuple/signature/public-caller/shared-vector checks, restored focused race GREEN.
  • Fresh lead GOWORK=off go test ./... -race -count=1: 4 packages, 444 test events, zero failures/skips, including a separate Go-module caller of the real public API.
  • Fresh build/vet, descriptor-generation check, released wfctl contract validation and changed-code lint pass.
  • Full lint retains four unchanged baseline findings in untouched files (two errcheck, two staticcheck). Not an overall lint-clean claim.
  • One initial independent adversarial/security review: SHIP-IT, zero findings; exact old tuple/trust/domain behavior and all bug classes checked. No speculative review loop.
  • Scope lock strict 25/14 PASS; git diff --check clean.

Runtime Launch Transcript

go build -ldflags '-X github.com/GoCodeAlone/workflow-plugin-compute-core/internal.Version=0.9.1-review' \
  -o <temporary-path>/compute-core ./cmd/workflow-plugin-compute-core
exit 0
wfctl v0.86.0 plugin verify-capabilities --binary <temporary-path>/compute-core .
OK workflow-plugin-compute-core 0.9.1-review (plugin.json: 0.0.0)
exit 0

The first plain developer build correctly failed wfctl's dev-sentinel gate; explicit local candidate metadata then passed. This is supporting native launch evidence, not a stable release. Failure-signature scrape of the final launch is clean. Exact stable assets/public module/consumer proof and original installer/launcher adoption remain subsequent plan gates.

Rollback

Additive API; consumers remain pinned to prior core until the immutable successor and real consumers are verified. No deployment, enrollment, cloud mutation or root change.

Preserve the existing ordered tuple hash and trusted key aliases. Keep bootstrap and directive signing domains separate.
@intel352
intel352 merged commit 263fc3f into main Oct 3, 2026
4 checks passed
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