feat: enforce cross-repository conformance evidence - #74
Open
BunsDev wants to merge 36 commits into
Open
Conversation
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>
Contributor
There was a problem hiding this comment.
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.
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>
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>
This was referenced Aug 30, 2026
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>
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>
This was referenced Aug 30, 2026
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Current state
This PR does not fabricate evidence or enable publication.
publishingEnabledremains false, public packages remain private, andaggregateRecordremains null until Chat emits compatible schema-v2 records on darwin-arm64, linux-x64, and win32-x64.Validation
publication-candidate,npm-release, andnpm-publishAdvances #38, #40, and #41.