Skip to content

feat: enforce cross-repository conformance evidence - #74

Open
BunsDev wants to merge 36 commits into
mainfrom
buns/build-conformance-contract
Open

feat: enforce cross-repository conformance evidence#74
BunsDev wants to merge 36 commits into
mainfrom
buns/build-conformance-contract

Conversation

@BunsDev

@BunsDev BunsDev commented Aug 30, 2026

Copy link
Copy Markdown
Member

Summary

  • freeze the complete SDK 0.1 cross-repository assertion, schema, platform, source, and artifact contract
  • authenticate exact protected GitHub platform evidence and bind release readiness to one named passing aggregate
  • separate conformance artifacts from exact-byte publication candidates and [SDK 0.1.0][P0] Complete the first-release security review and ship/block disposition #40 authorization
  • lock protected workflow graphs, environment approvals, toolchain identities, and sterile npm publication

Current state

This PR does not fabricate evidence or enable publication. publishingEnabled remains false, public packages remain private, and aggregateRecord remains null until Chat emits compatible schema-v2 records on darwin-arm64, linux-x64, and win32-x64.

Validation

  • 1,448 SDK tests
  • 321 focused security/conformance checks
  • typecheck and lint
  • exact package/release artifact verification
  • live GitHub environment policy receipt verified for publication-candidate, npm-release, and npm-publish
  • independent final adversarial approval

Advances #38, #40, and #41.

BunsDev and others added 14 commits August 28, 2026 18:56
Reuse Cave's authoritative Client v1 assertion engine and record renderer while enforcing deterministic three-platform SDK and Chat evidence aggregation.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Bind aggregation to committed registry and Cave Git blobs, atomically publish immutable evidence, and replace prose coverage inference with structured scope proofs.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Materialize and load the exact tracked Git blob in an owned temporary module, fsync evidence before atomic publication, and cover concurrent writers.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Resolve tracked blobs from captured commits and fsync the evidence parent directory after atomic publication.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Fail closed before publication on win32 while preserving required win32-x64 record ingestion and three-platform validation.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Require committed attested evidence across release paths, pin immutable validator and producer contracts, harden atomic publication and scanning, and keep release blocked on real platform records.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Freeze the release workflow structure, bind publication candidates to exact job and deployment provenance, and restrict OIDC publication to the reviewed sterile publisher path.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI lite review requested due to automatic review settings August 30, 2026 00:37

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR strengthens the SDK’s release-readiness and supply-chain gates by formalizing cross-repository conformance inputs (#38) and protected GitHub environment evidence (#40), and wiring those checks into CI and artifact generation/verification so release progression depends on authenticated, pinned evidence.

Changes:

  • Introduces a frozen cross-repository conformance contract (schema/lock/registry/docs) and new focused test suites that validate parsing, aggregation constraints, and CLI security boundaries.
  • Hardens release workflows and tooling: stricter permissions, checkout credential persistence disabled, OIDC/attestation isolation, environment policy verification, and authenticated toolchain/runtime checks.
  • Splits conformance artifacts from publication-candidate artifacts and updates verification scripts and tests to enforce the separation and gating rules.

Reviewed changes

Copilot reviewed 46 out of 60 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
tests/workflow-pins.spec.ts Updates workflow pin/permission expectations and adds new workflow invariants.
tests/release-runtime-integrity.spec.ts Adds tests for sterile env + authenticated Node/Corepack/npm integrity.
tests/release-policy.spec.ts Expands policy assertions for new evidence/attestation requirements.
tests/release-oidc-isolation.spec.ts Ensures OIDC-bearing jobs are isolated and action-only where required.
tests/release-environment-policy.spec.ts Adds tests for live GitHub environment policy receipts and gating.
tests/release-artifacts.spec.ts Splits and verifies conformance vs publication artifact schemas and rules.
tests/publication-source-identity.spec.ts Adds tests ensuring publication metadata transforms don’t alter reviewed source.
tests/packed-package.spec.ts Adds tests for authenticated build invocation and hook-free packing behavior.
tests/package-manifests.spec.ts Adjusts script contract so verify:compat excludes release identity checks.
tests/environment-approval.spec.ts Adds protected environment approval evidence/receipt tests.
tests/conformance-contract.spec.ts Adds contract entrypoint tests for #38 lock/schema/registry behavior.
tests/conformance-cli-security.spec.ts Adds CLI security boundary tests for aggregation coordinator behavior.
scripts/verify-release-readiness.mjs Tightens CLI defaults/flags for release-readiness verification.
scripts/verify-package.mjs Switches to conformance artifacts verification terminology/paths.
scripts/verify-github-environment-policies.mjs New CLI to verify and optionally persist environment policy receipts.
scripts/verify-committed-conformance-evidence.mjs New verifier for committed lock/schema/registry + GitHub evidence binding.
scripts/repository-metadata.mjs Uses absolute tar path and allows passing env for deterministic unpacking.
scripts/repository-metadata.d.mts Updates typing for new readPackedPackageManifest options.
scripts/release-runtime-integrity.mjs Adds authenticated runtime/toolchain integrity utilities and constants.
scripts/release-runtime-integrity.d.mts Types for release runtime integrity module exports.
scripts/release-readiness.d.mts Extends release config/schema typing and readiness option surface.
scripts/publish-release-artifacts.d.mts Updates types to reflect publication artifacts + approval evidence inputs.
scripts/publication-source-identity.d.mts Adds types for publication source identity manifest/transform/verification.
scripts/package-artifacts.mjs Hardens pnpm execution and packing/build logic for release contexts.
scripts/package-artifacts.d.mts Updates typings for new packing/build helper APIs and options.
scripts/github-release-authorization.d.mts Adds types for publication security review/authorization records.
scripts/github-environment-policy.d.mts Adds types for environment policy receipts and verification functions.
scripts/github-environment-approval.d.mts Adds types for pending approval evidence and protected approval receipts.
scripts/github-environment-approval-evidence.d.mts Adds types for capturing/verifying approval evidence artifacts.
scripts/github-conformance-evidence.d.mts Adds types for GitHub conformance verification and workflow checks.
scripts/create-release-artifacts.d.mts Updates manifest types for conformance vs publication artifact sets.
scripts/conformance-contract.d.mts Adds comprehensive types for #38 lock/schema/records/aggregation.
scripts/aggregate-client-v1-conformance.d.mts Adds types for conformance aggregation and checkout inspection helpers.
release.config.json Bumps schema and adds conformance evidence + protected approval configuration.
README.md Updates validation instructions to use pnpm verify:release and GH env vars.
package.json Adds/updates conformance scripts and refactors verify script topology.
docs/workflows/client-v1-cross-repository-conformance.md New detailed contract/workflow documentation for #38 evidence.
docs/client-v1-cross-repository-results/README.md New results directory semantics and fail-closed explanation.
conformance/release-artifact-manifest.schema.json New schema separating conformance vs publication-candidate manifests.
conformance/client-v1-cross-repository-lock.json New frozen lock defining #38 candidate/sources/toolchain/scanners.
conformance/client-v1-cross-repository-assertions.json New frozen assertion registry defining required IDs and exclusions.
.github/workflows/ci.yml Tightens permissions and adds authoritative release gate verification step.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread scripts/verify-release-readiness.mjs Outdated
Comment thread scripts/package-artifacts.mjs Outdated
Comment thread scripts/package-artifacts.mjs Outdated
Comment thread scripts/verify-committed-conformance-evidence.mjs
BunsDev and others added 13 commits August 29, 2026 20:32
Preserve the approved deterministic conformance and release contract while incorporating current main documentation and design tests.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Accept the protected validator input and Linux Secret Service setup while freezing the exact compatible Chat producer and environment.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Update the compatible producer identity to the final reviewed Chat commit and tree.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Freeze the final Chat commit after the bounded operator-state snapshot correction.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Freeze the final Chat commit after the large operator-home snapshot correction.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Freeze the final Chat commit after non-following operator symlink snapshot support.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Freeze the final Chat commit after bounded deep operator-state traversal support.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Freeze the final Chat commit after bounded special-file and large-tree snapshot support.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Freeze the final Chat harness and workflow after isolating Unix observation test sockets.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Freeze the Chat commit aligned with the authoritative passing Cave source.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
BunsDev and others added 3 commits August 30, 2026 02:57
Freeze the Chat harness after private in-memory causes and exact vendor metadata comparison.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Freeze the Chat producer that verifies packed artifacts from its committed canary lock.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Freeze the Chat producer after managed credential cleanup and restored discovery handling.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Freeze the Chat producer after moving macOS Keychain state into the process-owned evidence home.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
BunsDev and others added 3 commits August 30, 2026 04:55
Freeze the owner-only macOS Keychain producer revision without changing its reviewed harness or workflow bytes.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Freeze the Chat producer whose runtime observation map exactly matches the schema-v2 adapter input.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Freeze the Chat revision that builds Cave's finite compatibility controls and observes the full SDK assertion inputs.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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.

2 participants