Prove Edict provider conformance and semantic parity#677
Conversation
…-conformance # Conflicts: # CHANGELOG.md
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
Important Review skippedNo new commits to review since the last review. ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
📝 WalkthroughWalkthroughThe PR adds a twelve-case checked conformance corpus, canonical declaration validation, host/package execution coverage, refreshed provider resources and component digests, and documentation describing the corpus boundaries and ownership split. ChangesEcho provider conformance
Estimated code review effort: 4 (Complex) | ~60 minutes Possibly related issues
Possibly related PRs
Sequence Diagram(s)sequenceDiagram
participant ConformanceCorpus
participant HostContract
participant PackageContract
participant Lowerer
participant Verifier
ConformanceCorpus->>HostContract: Decode host-owned declarations
ConformanceCorpus->>PackageContract: Decode package-owned declarations
PackageContract->>Lowerer: Submit validated lowering request
Lowerer-->>PackageContract: Return canonical Target IR
PackageContract->>Verifier: Submit Target IR verification request
Verifier-->>PackageContract: Return semantic bundle and observation
HostContract-->>HostContract: Assert typed refusals and rejection contracts
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@crates/echo-edict-provider-lowerer/tests/fixtures/generated_echo_dpo.rs`:
- Line 59: Regenerate the target-profile digest and dependent attestations
together so the generated identity chain is consistent. Update
TARGET_PROFILE_DIGEST in generated_echo_dpo.rs and refresh the target-profile
references in authority-facts.echo-dpo.cbor under both provider-lowerer and
provider-verifier resources; make no isolated manual update that leaves these
artifacts out of sync.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
Run ID: 3051320b-328b-4e48-939b-eff12150c6ed
⛔ Files ignored due to path filters (31)
crates/echo-wesley-gen/assets/v1/edict-provider/package/v1/components/lowerer.echo-dpo.component.wasmis excluded by!**/*.wasmcrates/echo-wesley-gen/assets/v1/edict-provider/package/v1/components/verifier.echo-dpo.component.wasmis excluded by!**/*.wasmcrates/echo-wesley-gen/assets/v1/edict-provider/package/v1/generated/evidence/provenance.provider-generation.jsonis excluded by!**/generated/**crates/echo-wesley-gen/assets/v1/edict-provider/package/v1/generated/evidence/review.provider-generation.jsonis excluded by!**/generated/**crates/echo-wesley-gen/assets/v1/edict-provider/package/v1/generated/primary/authority-facts.echo-dpo.cboris excluded by!**/generated/**crates/echo-wesley-gen/assets/v1/edict-provider/package/v1/generated/primary/authority-facts.echo-lawpack.cboris excluded by!**/generated/**crates/echo-wesley-gen/assets/v1/edict-provider/package/v1/generated/primary/lawpack.echo-dpo.cboris excluded by!**/generated/**crates/echo-wesley-gen/assets/v1/edict-provider/package/v1/generated/primary/schema.echo-provider-artifacts.cddlis excluded by!**/generated/**crates/echo-wesley-gen/assets/v1/edict-provider/package/v1/generated/primary/target-profile.echo-dpo.cboris excluded by!**/generated/**crates/echo-wesley-gen/assets/v1/edict-provider/package/v1/generated/resources/resource.conformance-corpus.cboris excluded by!**/generated/**schemas/edict-provider/components/v1/lowerer.echo-dpo.component.wasmis excluded by!**/*.wasmschemas/edict-provider/components/v1/verifier.echo-dpo.component.wasmis excluded by!**/*.wasmschemas/edict-provider/generated/v1/evidence/provenance.provider-generation.jsonis excluded by!**/generated/**schemas/edict-provider/generated/v1/evidence/review.provider-generation.jsonis excluded by!**/generated/**schemas/edict-provider/generated/v1/primary/authority-facts.echo-dpo.cboris excluded by!**/generated/**schemas/edict-provider/generated/v1/primary/authority-facts.echo-lawpack.cboris excluded by!**/generated/**schemas/edict-provider/generated/v1/primary/lawpack.echo-dpo.cboris excluded by!**/generated/**schemas/edict-provider/generated/v1/primary/schema.echo-provider-artifacts.cddlis excluded by!**/generated/**schemas/edict-provider/generated/v1/primary/target-profile.echo-dpo.cboris excluded by!**/generated/**schemas/edict-provider/generated/v1/resources/resource.conformance-corpus.cboris excluded by!**/generated/**schemas/edict-provider/package/v1/components/lowerer.echo-dpo.component.wasmis excluded by!**/*.wasmschemas/edict-provider/package/v1/components/verifier.echo-dpo.component.wasmis excluded by!**/*.wasmschemas/edict-provider/package/v1/generated/evidence/provenance.provider-generation.jsonis excluded by!**/generated/**schemas/edict-provider/package/v1/generated/evidence/review.provider-generation.jsonis excluded by!**/generated/**schemas/edict-provider/package/v1/generated/primary/authority-facts.echo-dpo.cboris excluded by!**/generated/**schemas/edict-provider/package/v1/generated/primary/authority-facts.echo-lawpack.cboris excluded by!**/generated/**schemas/edict-provider/package/v1/generated/primary/lawpack.echo-dpo.cboris excluded by!**/generated/**schemas/edict-provider/package/v1/generated/primary/schema.echo-provider-artifacts.cddlis excluded by!**/generated/**schemas/edict-provider/package/v1/generated/primary/target-profile.echo-dpo.cboris excluded by!**/generated/**schemas/edict-provider/package/v1/generated/resources/resource.conformance-corpus.cboris excluded by!**/generated/**tests/edict-provider-host-v1/Cargo.lockis excluded by!**/*.lock
📒 Files selected for processing (35)
CHANGELOG.mdcrates/echo-edict-provider-lowerer/README.mdcrates/echo-edict-provider-lowerer/resources/authority-facts.echo-dpo.cborcrates/echo-edict-provider-lowerer/resources/authority-facts.echo-lawpack.cborcrates/echo-edict-provider-lowerer/resources/lawpack.echo-dpo.cborcrates/echo-edict-provider-lowerer/resources/target-profile.echo-dpo.cborcrates/echo-edict-provider-lowerer/src/lib.rscrates/echo-edict-provider-lowerer/tests/fixtures/generated_echo_dpo.rscrates/echo-edict-provider-lowerer/tests/lowerer_contract.rscrates/echo-edict-provider-verifier/README.mdcrates/echo-edict-provider-verifier/resources/authority-facts.echo-dpo.cborcrates/echo-edict-provider-verifier/resources/authority-facts.echo-lawpack.cborcrates/echo-edict-provider-verifier/resources/lawpack.echo-dpo.cborcrates/echo-edict-provider-verifier/resources/target-profile.echo-dpo.cborcrates/echo-edict-provider-verifier/src/semantic_resources.rscrates/echo-edict-provider-verifier/tests/verifier_contract.rscrates/echo-wesley-gen/assets/v1/edict-provider/package/v1/provider-manifest.echo.jsoncrates/echo-wesley-gen/src/provider_artifacts.rscrates/echo-wesley-gen/tests/provider_package_corpus.rscrates/echo-wesley-gen/tests/provider_primary_artifacts.rsdocs/architecture/application-contract-hosting.mdschemas/edict-provider/README.mdschemas/edict-provider/components/v1/README.mdschemas/edict-provider/package/v1/provider-manifest.echo.jsonscripts/verify-edict-provider-host-v1.shtests/edict-provider-host-v1/Cargo.tomltests/edict-provider-host-v1/fixtures/provider-conformance-v1/ORIGIN.tomltests/edict-provider-host-v1/fixtures/provider-conformance-v1/canonicalization-profile.jsontests/edict-provider-host-v1/fixtures/provider-conformance-v1/source.edicttests/edict-provider-host-v1/tests/conformance_contract.rstests/edict-provider-host-v1/tests/host_contract.rstests/edict-provider-host-v1/tests/package_contract.rstests/edict-provider-host-v1/tests/support/conformance.rstests/edict-provider-host-v1/tests/support/mod.rsxtask/src/provider_lowerer_component.rs
|
@coderabbitai review |
✅ Action performedReview finished.
|
Code Lawyer Activity SummaryAudited subject:
Closure evidence:
The bounded claim remains unchanged: this is provider-generation/lowering/verifying/package conformance evidence, not Echo installation, runtime authority, execution, observation, or a runtime receipt. |
|
✅ Addressed in commit 47d0d85 (verification-only disposition: the alleged missing digest update is already present in that commit; no follow-up code change was required). Acked review threads:
|
Closes #657
Outcome
This closes the Edict-to-Echo provider walking-skeleton handoff with one bounded,
reviewed conformance fixture.
The checked provider closure now proves that:
domain-framed digest as the built-in compatibility path;
while retaining distinct release identities;
bundle, schema, profile, codec, obstruction, and operation propositions;
ambient filesystem, environment, registry, process, clock, randomness, or
network authority;
typed executors;
refused; and
observations exactly.
The conformance corpus remains declarative. It states obligations; it is not its
own execution evidence, an Echo runtime receipt, or runtime authority.
Plain-English architecture walkthrough
canonicalization profile pinned to Edict revision
c75c3f550d049485ba00eae0dc272c6dd6aca11f.canonical lawpack, target profile, source-partitioned authority facts,
provider schema, generated-artifact profile, declared resources, provenance,
and non-authoritative review projection.
same canonical Core proposition. The external path is not permitted to
rediscover source meaning or consult ambient state.
echo.span-ir/v1. Its bytes anddomain-framed identity must equal the built-in path exactly.
and requested report roles. Unsupported semantics and unsupported output
claims remain typed refusals; disagreement with a supported proposition is a
rejection.
routes, and release identities. Equal semantics do not imply equal release
identity: the external component coordinates and digests intentionally move
the external release proposition.
identities. Stale helper pins, altered exact source occurrence, changed
artifact bytes, changed schemas, and changed component bytes all fail closed
at their owning crossing.
Aggregate host and package dispatch prove that every declared contract ran
exactly once and that no executor silently crossed ownership boundaries.
noncanonical output are denied. Semantic witnesses prove wrong intrinsics,
dropped obstruction arms, unsupported semantics, and output overclaim are
rejected or refused at the correct boundary.
schedules or executes an application intent, commits causal history, emits
an observation, or produces an Echo runtime receipt. Those are separate
Echo-owned crossings tracked by Echo 1.0: Edict Native Invocation in Echo #583, Gate C - Native Jedit-on-Edict Execution #589, and JS/WASM/Browser Client Release Surface #516.
Exact declarative corpus
Package-owned obligations:
package-parityartifact-tamperschema-tampercomponent-tamperhelper-identity-mismatchsource-occurrence-changeHost-owned obligations:
ambient-capability-denialnoncanonical-outputunsupported-semanticsoutput-overclaimwrong-intrinsicdropped-obstructionEvery case carries only its crossing, stimulus, and required disposition/contract.
Executor ownership and test results remain outside the canonical declaration.
Exact checked occurrence
47d0d8590bffe0180b987f6ee1d58e5a8611c65fc75c3f550d049485ba00eae0dc272c6dd6aca11fwesley-core = 0.3.0-alpha.177ca44ae03bac1966eaa6d7660621160f10d3e6979bac26f5929a25a3829c1f4280d3d7b1abbaf40dbf5663ab3c5c1d6e58abbedecho.edict-provider@1sha256:fc00dd73a26bbd6699668ddb3ba1e3db9beb9bd7655e270824019d1e6e33f712f45d5ea0f504045a4fa8ac4d8f1dcb5e7d6b4c5fca1b3ddd54dca994532ea7c8f1f29d990f83c5af33952a69b16e9c9bbb7c2feb1d3989860b74c9e6c2c19b08sha256:d4689abc5c2275ea9c7e1b743197a0d8b4625091632e8f5162eba9ff88d568adsha256:d3b9170373dc30369b1c7d3435f8c3d2183de063dc9e3b18d4b1f41eeac334c9sha256:b0d837087d35d131d780819f81c2f327e30987fa95d3c8c3991836b3f9d306e8sha256:c39449495281b51f978468d08c21e93bcfa423176063b41675da61e4674b0066sha256:f2063b66798fbb1c2b27c3af56e4b78184ffc22c9ed9c7a32c483d05b8c1d382sha256:632cc5134861c0b31ccc9ca77d4a09fe757094964369d057b62ca6ba6ad38ad7Two separately provisioned immutable
linux/amd64Rust 1.90.0 buildersreproduced each component byte-for-byte before the final promotion and package
publication.
The completed package observation is:
This is a deterministic bounded test observation, not a formal provider receipt
and not an Echo runtime receipt.
RED / GREEN evidence
Focused tests were introduced as RED witnesses before the smallest corresponding
GREEN implementation. Representative witnesses were:
Those REDs established the missing parity execution, semantic/release bundle
binding, generated-helper binding, independent-process replay, closed
declaration-to-executor registry, aggregate exact-set dispatch, typed hostile
host behavior, package material tamper laws, source-occurrence release movement,
and the complete twelve-case publication closure.
The completed GREEN branch gate included:
cargo xtask verifyis not a command in this checkout.cargo +1.90.0 xtask pr-preflight --fullis the repository-defined final branchgate and passed all seven checks. The provider wrapper now runs the exact
conformance_contractdeclaration/parser suite in CI as well as the host,helper, package, resource-sync, component-audit, formatting, and strict Clippy
witnesses.
Reproduction commands
From the repository root:
Exact component designated-build and two-candidate comparison commands are
checked in under
.github/workflows/det-gates.yml; local check/audit/promotioncommands and the immutable
linux/amd64builder identity are documented underschemas/edict-provider/components/v1/README.md.Dependency rationale
This adds no new production runtime dependency.
wesley-core = 0.3.0-alpha.1crate,rather than a sibling path or moving Git dependency. The lockfile pins its
crates.io checksum; the crate's published VCS metadata names the exact Wesley
release commit separately.
c75c3f550d049485ba00eae0dc272c6dd6aca11f.wat = 1.251.0solely to construct a deterministic hostile component for thenoncanonical-output denial case.
the package; no runtime dependency lookup or ambient discovery is introduced.
Documentation impact
Current documentation and release notes now describe:
runtime-authority separation;
The direct updates are in
CHANGELOG.md, the lowerer and verifier crate READMEs,docs/architecture/application-contract-hosting.md,schemas/edict-provider/README.md, andschemas/edict-provider/components/v1/README.md.The repository's pre-PR documentation accuracy gate was rerun immediately before
publication and found no stale current-state or ownership claims.
Compatibility notes
manifest, conformance corpus, semantic resources, and release identities move
to this exact checked occurrence. Consumers of exact pins must update.
release identity.
digests are intentionally distinct.
unsupported output roles do not become fabricated authoritative artifacts.
authority.
bounded observer/optic path and are not encoded as synthetic mutations.
semantics enter the provider waist.
Review
The complete committed diff received:
origin/main;No self-discovered issue remains open at publication. GitHub CI and review
feedback will be processed one finding at a time with focused RED/GREEN commits;
all threads will be resolved before the authorized merge.
Summary by CodeRabbit