Skip to content

feat: canonicalize provider contracts#4

Merged
intel352 merged 1 commit into
mainfrom
feat/canonical-provider-contract
May 24, 2026
Merged

feat: canonicalize provider contracts#4
intel352 merged 1 commit into
mainfrom
feat/canonical-provider-contract

Conversation

@intel352
Copy link
Copy Markdown
Contributor

Summary

  • expand compute-core provider catalog contracts with org/pool access policy, operations, artifact specs, upstream evidence, and conformance evidence
  • align validation with workflow-compute's provider contract boundary for richer security/proof tiers while rejecting runtime-only trusted-native/receipt-only declarations
  • document compute-core as the portable provider-facing base contract rather than an application/runtime owner

TDD evidence

With implementation absent:

$ GOWORK=off go test ./protocol -run 'AccessScoped|PoolWithoutOrg|ProviderWorkload|DuplicateArtifact|RealClient|RequiresUpstream|RuntimeOnly|ConformanceEvidence' -count=1
FAIL — compute-core lacked OrgID/PoolID/AccessPolicy/Operations/ProviderConformanceEvidence fields and richer constants

Adversarial follow-up found version drift in SupportsProduct:

$ GOWORK=off go test ./protocol -run MismatchedProductVersion -count=1
FAIL — mismatched product provider_config.version was accepted

With fixes restored:

$ GOWORK=off go test ./protocol -run 'AccessScoped|PoolWithoutOrg|ProviderWorkload|DuplicateArtifact|RealClient|RequiresUpstream|RuntimeOnly|ConformanceEvidence|MismatchedProductVersion' -count=1
PASS

Verification

  • GOWORK=off go test ./... -v -race -count=1
  • GOWORK=off go build ./...
  • GOWORK=off go vet ./...
  • git diff --check
  • GOWORK=off go run ./cmd/wfctl plugin validate-contract /Users/jon/workspace/workflow-plugin-compute-core from /Users/jon/workspace/workflow

@intel352 intel352 merged commit d0045a8 into main May 24, 2026
4 checks passed
@intel352 intel352 deleted the feat/canonical-provider-contract branch May 24, 2026 09:08
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