Generate Target-IR-bound Echo provider helpers#675
Conversation
|
Warning Review limit reached
Next review available in: 35 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (7)
📝 WalkthroughWalkthroughThis PR adds provider-neutral registry identities and operation-ID laws, expands Edict lowering to generate typed and review projections, introduces host-bound non-installing provider proposals, synchronizes checked component resources, updates verifier and generator fixtures, and revises documentation and pinned artifact identities. ChangesEdict provider flow
Estimated code review effort: 5 (Critical) | ~120 minutes Possibly related issues
Possibly related PRs
Suggested labels: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 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: 3
🤖 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-wesley-gen/src/bin/echo-edict-provider-assets.rs`:
- Around line 475-489: Update the owner-file validation around the post-read
metadata check to rewind the opened file and read it again, then require the
second byte sequence to equal the original bytes alongside the existing type and
length checks. Add an executable test or witness covering an in-place
same-length concurrent rewrite and verify it is rejected, preserving
deterministic asset generation.
In `@docs/case-studies/JimAndEcho.md`:
- Around line 151-157: The current proposal boundary is incorrectly described as
including runtime verification, registration, and installation. In
docs/case-studies/JimAndEcho.md lines 151-157, describe Edict’s output as an
opaque, non-installing provider proposal and defer runtime installation to the
later trusted-host admission boundary; in lines 740-748, replace “register the
package” with passing the verified proposal into the separately tracked
installation flow.
In `@README.md`:
- Around line 114-120: Update the Edict provider capability description in
README.md to acknowledge that the generated helper supports typed, codec-bound
invocation packing and preflight, including canonical EINT packing. Retain the
limitation that it does not construct an InstalledContractPackage, register
packages, or mint runtime authority, and distinguish those absent
installation/runtime-execution crossings from the available codec functionality.
🪄 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: 1f9a0489-4ceb-48bc-aaff-9631b9f519ae
⛔ Files ignored due to path filters (32)
Cargo.lockis excluded by!**/*.lockcrates/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/generated-artifact-profile.echo-dpo-registration.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/**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/generated-artifact-profile.echo-dpo-registration.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/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/generated-artifact-profile.echo-dpo-registration.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/**tests/edict-provider-host-v1/Cargo.lockis excluded by!**/*.lock
📒 Files selected for processing (69)
AGENTS.mdCHANGELOG.mdREADME.mdcrates/echo-edict-canonical/src/lib.rscrates/echo-edict-canonical/tests/canonical_contract.rscrates/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/generated-artifact-profile.echo-dpo-registration.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-registry-api/README.mdcrates/echo-registry-api/src/lib.rscrates/echo-registry-api/src/provider.rscrates/echo-registry-api/tests/provider_registry.rscrates/echo-registry-api/tests/semantic_operation_id_contract.rscrates/echo-wasm-abi/Cargo.tomlcrates/echo-wasm-abi/src/lib.rscrates/echo-wesley-gen/Cargo.tomlcrates/echo-wesley-gen/README.mdcrates/echo-wesley-gen/assets/v1/edict-provider/package/v1/provider-manifest.echo.jsoncrates/echo-wesley-gen/assets/v1/repository/Cargo.lock.sourcecrates/echo-wesley-gen/assets/v1/repository/crates/echo-edict-canonical/src/lib.rs.sourcecrates/echo-wesley-gen/assets/v1/repository/crates/echo-registry-api/Cargo.toml.sourcecrates/echo-wesley-gen/assets/v1/repository/crates/echo-registry-api/src/lib.rs.sourcecrates/echo-wesley-gen/assets/v1/repository/crates/echo-registry-api/src/provider.rs.sourcecrates/echo-wesley-gen/assets/v1/repository/crates/echo-wesley-gen/Cargo.toml.sourcecrates/echo-wesley-gen/src/bin/echo-edict-provider-assets.rscrates/echo-wesley-gen/src/main.rscrates/echo-wesley-gen/src/provider_artifacts.rscrates/echo-wesley-gen/src/provider_corpus.rscrates/echo-wesley-gen/tests/generation.rscrates/echo-wesley-gen/tests/provider_artifact_corpus.rscrates/echo-wesley-gen/tests/provider_package_assets.rscrates/echo-wesley-gen/tests/provider_package_corpus.rscrates/echo-wesley-gen/tests/provider_primary_artifacts.rscrates/warp-core/README.mdcrates/warp-core/src/contract_host.rscrates/warp-core/src/footprint.rscrates/warp-core/src/lib.rscrates/warp-core/src/provider_contract.rscrates/warp-core/tests/contract_host_footprint_tests.rscrates/warp-core/tests/generated_provider_helper_msrv_tests.rscrates/warp-core/tests/provider_contract_package_proposal_tests.rsdocs/NORTHSTAR.mddocs/architecture/application-contract-hosting.mddocs/architecture/echo-optics-adapter-notes.mddocs/case-studies/JimAndEcho.mddocs/invariants/DECLARATIVE-RULE-AUTHORSHIP.mddocs/topics/GeneratedRules.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/tests/generated_helper_contract.rstests/edict-provider-host-v1/tests/host_contract.rstests/edict-provider-host-v1/tests/verifier_resource_sync.rsxtask/src/provider_lowerer_component.rs
Closes #656
Outcome
This completes the first generated, Target-IR-bound Echo registration and
invocation-helper goalpost for the Edict provider campaign.
The provider closure now:
echo.semantic-operation-id.fnv1-32/v1and the revieweda.b@1.tmutation id
3_389_142_194;release bundle propositions, profiles, schemas, ABI/API versions, footprint
obligation, obstruction mapping, codec, and operation identity;
Id,Input, andOutputvalues under theprofile-owned
le-binary-v1codec;varsas opaque,codec-owned bytes;
ProviderRegistryV1, deliberatelyseparate from the Wesley/GraphQL compatibility registry;
implementation to the complete operation proposition;
ProviderContractPackageProposalV1;ids, mismatched identities, malformed codec bytes, queries presented to the
mutation proposal, and incomplete runtime matcher footprints.
This does not install, register, schedule, execute, persist, observe, or issue
receipts for the provider package. Native runtime admission and invocation
remain tracked by #583; the Jedit end-to-end execution gate remains #589.
Plain-English architecture walkthrough
coordinate and operation kind. It does not derive an Edict id from a GraphQL
root field, salt collisions, or probe for a replacement.
input/output types, and
le-binary-v1codec claim.requested. The helper carries exact Target IR, profile, schema, ABI, helper
API, obstruction, footprint, and operation constants.
The helper compares an independently expected pin with untrusted bundle
claims. This avoids a self-referential package digest while failing closed
on every identity mismatch.
exact input/output types and packs canonical EINT under the matched operation
id. Echo does not reinterpret codec-owned
varsbytes as canonical CBOR.ProviderRegistryV1retains the complete semantic, Target IR,bundle, schema, profile, codec, obstruction, ABI, helper API, and footprint
proposition. Duplicate id lookup returns no operation instead of selecting a
winner.
warp-corecompares it with the generated registry and dispatch, binds thegenerated matcher and canonical rule name, and constructs an opaque proposal
without invoking a callback.
reads with the host effect footprint. Negative observations are still reads:
absent scopes and orphan attachments cannot make the declared footprint
conditional. The conservative factor mask prevents omission of Echo-owned
matcher effects.
crossing must authenticate the occurrence and convert admitted material into
the existing
InstalledContractPackagepath.Query. Authored readsremain on the bounded observer/optic path; they are not synthetic mutations.
Exact checked occurrence
sha256:2244345f046448c7b519ade05a167137659361ed144b46315ea32dabfbad85fcsha256:9b5ecf1c87a4a98ad3d7381d85e3625649a4f9d62f80f74b2aca6ace26be14afsha256:4f99c07f1c6d682405945fbb3e36e5537b94c4a01bd1a4ec7f02ef8e9911249asha256:6d99fc4b4a56268b053226f17dfaa946bec6a3328219393c21fdb3398db6a9250256679771de98841e1594a4133b24a328a9924c765fe2545e182565494ea6c0Two fresh pinned Linux/amd64 Rust 1.90.0 builds reproduced each checked
component byte-for-byte before the final build-and-compare gate.
RED / GREEN evidence
Focused RED witnesses were introduced before their implementations:
Those REDs established, among other things, that:
opaque proposal;
attachment;
The completed GREEN branch gate is:
cargo xtask verifyis not a command in this checkout.cargo +1.90.0 xtask pr-preflight --fullis the repository-defined finalbranch gate and passed all seven checks.
Dependency rationale
This adds no new third-party runtime dependency.
echo-registry-apifor the shared provider/operationidentity vocabulary and Echo-owned operation-id law.
echo-registry-api,echo-wasm-abi, andwarp-coreso the exactgenerated helper is compiled against real Echo APIs.
wesley-core = 0.3.0-alpha.1release; there is no sibling-path or movingWesley Git dependency.
c75c3f550d049485ba00eae0dc272c6dd6aca11f.release provenance whenever the helper contract changes.
Generated helpers perform no hidden filesystem, environment, registry, process,
clock, randomness, or network discovery.
Documentation impact
Current docs and release notes now describe:
The main updates are in
CHANGELOG.md, the affected crate and schema READMEs,docs/architecture/application-contract-hosting.md,docs/architecture/echo-optics-adapter-notes.md, anddocs/topics/GeneratedRules.md.Compatibility notes
RegistryProvidercompatibility surface remainsavailable and deliberately separate from
ProviderRegistryV1.a.b@1.tis persisted ABI. Future generatorsmust reproduce the law and reject complete-set collisions.
move. Consumers of exact pins must update to this checked occurrence.
from source and release occurrences.
bounded observers/optics.
varsremain codec-owned opaque bytes.semantics enter the generic provider waist.
Review
The complete six-commit branch received a full-change self-review, an
independent code review, and a clean committed-diff Code Lawyer pass. Review
covered operation-id collision/refusal behavior, complete identity
cross-binding, typed codec bounds, canonical EINT packing, duplicate registry
ids, proposal non-authority, query refusal, negative-read footprint
completeness, no callback execution during proposal construction, single-open
no-follow owner reads, component/resource synchronization, Rust 1.90 helper
compilation, exact designated-builder reproduction, package drift checks, and
documentation accuracy.
Summary by CodeRabbit
New Features
Bug Fixes
Documentation