Skip to content

Generate Target-IR-bound Echo provider helpers#675

Merged
flyingrobots merged 11 commits into
mainfrom
provider/656-target-ir-helpers
Jul 17, 2026
Merged

Generate Target-IR-bound Echo provider helpers#675
flyingrobots merged 11 commits into
mainfrom
provider/656-target-ir-helpers

Conversation

@flyingrobots

@flyingrobots flyingrobots commented Jul 17, 2026

Copy link
Copy Markdown
Owner

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:

  • persists Echo's semantic operation-id law
    echo.semantic-operation-id.fnv1-32/v1 and the reviewed a.b@1.t
    mutation id 3_389_142_194;
  • emits a requested-only Rust helper bound to the exact Target IR, semantic and
    release bundle propositions, profiles, schemas, ABI/API versions, footprint
    obligation, obstruction mapping, codec, and operation identity;
  • implements distinct typed Id, Input, and Output values under the
    profile-owned le-binary-v1 codec;
  • packs typed input into canonical EINT v1 while retaining vars as opaque,
    codec-owned bytes;
  • exposes a borrowed, provider-generic ProviderRegistryV1, deliberately
    separate from the Wesley/GraphQL compatibility registry;
  • cross-binds one generated matcher and one explicit host mutation
    implementation to the complete operation proposition;
  • produces only an opaque, non-installing
    ProviderContractPackageProposalV1;
  • fails closed on ambiguous registry lookup, reserved or colliding operation
    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

  1. Provider generation derives a persisted operation id from the exact semantic
    coordinate and operation kind. It does not derive an Edict id from a GraphQL
    root field, salt collisions, or probe for a replacement.
  2. The generated-artifact profile owns that id law, exact persisted id,
    input/output types, and le-binary-v1 codec claim.
  3. The lowerer emits the Rust helper only when that output role is explicitly
    requested. The helper carries exact Target IR, profile, schema, ABI, helper
    API, obstruction, footprint, and operation constants.
  4. Semantic and release bundle identities are supplied after package assembly.
    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.
  5. After a successful pure binding, the descriptor encodes and decodes the
    exact input/output types and packs canonical EINT under the matched operation
    id. Echo does not reinterpret codec-owned vars bytes as canonical CBOR.
  6. The borrowed ProviderRegistryV1 retains 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.
  7. A trusted host supplies an explicitly identified mutation implementation.
    warp-core compares it with the generated registry and dispatch, binds the
    generated matcher and canonical rule name, and constructs an opaque proposal
    without invoking a callback.
  8. Echo unions the generated matcher's mandatory ingress-node and attachment
    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.
  9. The proposal remains non-installing evidence. A later trusted Echo runtime
    crossing must authenticate the occurrence and convert admitted material into
    the existing InstalledContractPackage path.
  10. This proposal is mutation-specific and refuses Query. Authored reads
    remain on the bounded observer/optic path; they are not synthetic mutations.

Exact checked occurrence

  • Target IR domain-framed digest:
    sha256:2244345f046448c7b519ade05a167137659361ed144b46315ea32dabfbad85fc
  • Lowerer component: 189,668 bytes,
    sha256:9b5ecf1c87a4a98ad3d7381d85e3625649a4f9d62f80f74b2aca6ace26be14af
  • Verifier component: 189,922 bytes,
    sha256:4f99c07f1c6d682405945fbb3e36e5537b94c4a01bd1a4ec7f02ef8e9911249a
  • Provider package:
    sha256:6d99fc4b4a56268b053226f17dfaa946bec6a3328219393c21fdb3398db6a925
  • Raw provider-manifest SHA-256:
    0256679771de98841e1594a4133b24a328a9924c765fe2545e182565494ea6c0
  • Exact generator source closure: 20 files
  • Package-local publication carrier: 38 files

Two 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:

cargo +1.90.0 test -p echo-registry-api --test semantic_operation_id_contract
cargo +1.90.0 test -p echo-registry-api --test provider_registry
cargo +1.90.0 test -p echo-edict-provider-lowerer --test lowerer_contract
cargo +1.90.0 test -p echo-wesley-gen --test provider_primary_artifacts
cargo +1.90.0 test -p echo-wesley-gen --test provider_package_assets
cargo +1.90.0 test -p warp-core --test provider_contract_package_proposal_tests
cargo +1.90.0 test -p warp-core --test contract_host_footprint_tests
cargo +1.90.0 test --manifest-path tests/edict-provider-host-v1/Cargo.toml \
  --locked --test generated_helper_contract

Those REDs established, among other things, that:

  • the semantic operation-id law and generated profile claim did not exist;
  • the generated helper lacked its profile-owned codec, borrowed registry, and
    opaque proposal;
  • proposal construction could not cross-bind every generated and host identity;
  • ingress reads were incorrectly conditional for an absent scope or orphan
    attachment;
  • component-resource synchronization flags did not compose;
  • final owner symlinks were not refused at the single-open boundary;
  • the generated fixture's repository header was not owned by its template.

The completed GREEN branch gate is:

cargo +1.90.0 fmt --all -- --check
cargo +1.90.0 test -p echo-registry-api --all-targets
cargo +1.90.0 test -p echo-edict-provider-lowerer --all-targets
cargo +1.90.0 test -p echo-edict-provider-verifier --all-targets
cargo +1.90.0 test -p echo-wesley-gen --all-targets
cargo +1.90.0 test -p warp-core --all-targets
cargo +1.90.0 test -p xtask
cargo +1.90.0 clippy \
  -p echo-registry-api \
  -p echo-edict-provider-lowerer \
  -p echo-edict-provider-verifier \
  -p echo-wesley-gen \
  -p warp-core \
  --all-targets -- -D warnings -D missing-docs
scripts/verify-edict-provider-host-v1.sh
cargo +1.90.0 run --locked -p echo-wesley-gen \
  --bin echo-edict-provider-artifacts -- --check
cargo +1.90.0 run --locked -p echo-wesley-gen \
  --bin echo-edict-provider-package -- --check
cargo +1.90.0 run --locked -p echo-wesley-gen \
  --bin echo-edict-provider-assets -- \
  --check-package-list --sync-component-resources
git diff --check origin/main...HEAD
cargo +1.90.0 xtask pr-preflight --full

cargo xtask verify is not a command in this checkout.
cargo +1.90.0 xtask pr-preflight --full is the repository-defined final
branch gate and passed all seven checks.

Dependency rationale

This adds no new third-party runtime dependency.

  • Workspace crates use echo-registry-api for the shared provider/operation
    identity vocabulary and Echo-owned operation-id law.
  • The isolated host fixture adds workspace path dependencies on
    echo-registry-api, echo-wasm-abi, and warp-core so the exact
    generated helper is compiled against real Echo APIs.
  • The generator remains pinned to the published
    wesley-core = 0.3.0-alpha.1 release; there is no sibling-path or moving
    Wesley Git dependency.
  • Native provider preflight remains pinned to exact Edict revision
    c75c3f550d049485ba00eae0dc272c6dd6aca11f.
  • The exact 20-file source closure and 38-file carrier intentionally move
    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 separate Wesley compatibility and Edict provider registries;
  • semantic operation-id derivation and reserved protocol ids;
  • profile-owned typed codecs and canonical EINT packing;
  • the descriptor / registry / opaque proposal / installed-package distinction;
  • Echo-owned mandatory matcher footprints;
  • the mutation/query boundary and bounded observer path for reads;
  • the exact source/carrier inventories and component reproduction boundary.

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, and
docs/topics/GeneratedRules.md.

Compatibility notes

  • Public provider APIs are additive.
  • The Wesley/GraphQL RegistryProvider compatibility surface remains
    available and deliberately separate from ProviderRegistryV1.
  • The semantic operation id for a.b@1.t is persisted ABI. Future generators
    must reproduce the law and reject complete-set collisions.
  • Exact generated source, component, manifest, package, and release identities
    move. Consumers of exact pins must update to this checked occurrence.
  • The reviewed Target IR semantic proposition remains separately identified
    from source and release occurrences.
  • No provider package is installed and no runtime authority is granted.
  • Queries are intentionally rejected by the mutation proposal; reads remain
    bounded observers/optics.
  • EINT vars remain codec-owned opaque bytes.
  • No Jim-specific checkpoint, rope, causal-anchor, editor, or application
    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

    • Added provider-neutral contract registries with stable operation identifiers and fail-closed handling for ambiguous or reserved IDs.
    • Added generated artifact and review payload outputs alongside Target IR.
    • Added typed helper support for encoding, decoding, and packing contract intents.
    • Added host-side preflight validation and non-installing provider package proposals.
  • Bug Fixes

    • Strengthened output-role, digest, codec, identity, and footprint validation.
    • Improved read-footprint reporting for contract-host ingress.
  • Documentation

    • Clarified compiler boundaries, artifact verification, ownership, and installation responsibilities across guides and specifications.

@coderabbitai

coderabbitai Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Warning

Review limit reached

@flyingrobots, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 35 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

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 configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 9bb4c3d6-6148-4451-bfc0-bd9cc24d527c

📥 Commits

Reviewing files that changed from the base of the PR and between d871933 and 0093094.

📒 Files selected for processing (7)
  • .ban-nondeterminism-allowlist
  • CHANGELOG.md
  • README.md
  • crates/echo-wesley-gen/README.md
  • crates/echo-wesley-gen/src/bin/echo-edict-provider-assets.rs
  • docs/case-studies/JimAndEcho.md
  • tests/docs/test_generated_rule_truth.sh
📝 Walkthrough

Walkthrough

This 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.

Changes

Edict provider flow

Layer / File(s) Summary
Registry contracts and operation identity
crates/echo-registry-api/*, crates/echo-edict-canonical/*, crates/echo-wasm-abi/*
Adds provider registry types, deterministic operation IDs, reserved-ID predicates, raw canonical digest bytes, and shared codec/reservation usage.
Lowerer outputs and generated helper
crates/echo-edict-provider-lowerer/*
Validates requested output roles and emits Target IR, generated-artifact, and review envelopes plus a typed helper with bundle binding, codecs, and intent packing.
Host-bound provider proposals
crates/warp-core/*, tests/edict-provider-host-v1/*
Adds pure identity preflight and non-installing mutation proposals, conservative handler materialization, footprint unioning, and host integration witnesses.
Generator and package synchronization
crates/echo-wesley-gen/*, scripts/verify-edict-provider-host-v1.sh
Uses shared registry laws, emits operation IDs and codecs, expands the checked source closure, and adds component-resource synchronization and validation.
Verifier resources and pins
crates/echo-edict-provider-verifier/*, schemas/edict-provider/*, xtask/*
Regenerates semantic resources and updates checked component, manifest, and digest identities.
Documentation and contributor guidance
AGENTS.md, README.md, docs/*, crates/*/README.md, CHANGELOG.md
Describes the Edict/Wesley boundaries, provider proposal lifecycle, current implementation status, artifact identities, and documentation accuracy checks.

Estimated code review effort: 5 (Critical) | ~120 minutes

Possibly related issues

Possibly related PRs

Suggested labels: tooling

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed Concise and specific; it matches the main change of generating Target-IR-bound provider helpers.
Linked Issues check ✅ Passed The changes satisfy #656: they add bound helper descriptors, opaque provider proposals, refusal paths, and tests against the pinned fixture.
Out of Scope Changes check ✅ Passed The changes stay focused on helper generation, identity binding, docs, assets, and tests for the same feature set.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch provider/656-target-ir-helpers

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot 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.

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

📥 Commits

Reviewing files that changed from the base of the PR and between 4b792db and d871933.

⛔ Files ignored due to path filters (32)
  • Cargo.lock is excluded by !**/*.lock
  • crates/echo-wesley-gen/assets/v1/edict-provider/package/v1/components/lowerer.echo-dpo.component.wasm is excluded by !**/*.wasm
  • crates/echo-wesley-gen/assets/v1/edict-provider/package/v1/components/verifier.echo-dpo.component.wasm is excluded by !**/*.wasm
  • crates/echo-wesley-gen/assets/v1/edict-provider/package/v1/generated/evidence/provenance.provider-generation.json is excluded by !**/generated/**
  • crates/echo-wesley-gen/assets/v1/edict-provider/package/v1/generated/evidence/review.provider-generation.json is excluded by !**/generated/**
  • crates/echo-wesley-gen/assets/v1/edict-provider/package/v1/generated/primary/authority-facts.echo-dpo.cbor is excluded by !**/generated/**
  • crates/echo-wesley-gen/assets/v1/edict-provider/package/v1/generated/primary/authority-facts.echo-lawpack.cbor is excluded by !**/generated/**
  • crates/echo-wesley-gen/assets/v1/edict-provider/package/v1/generated/primary/generated-artifact-profile.echo-dpo-registration.cbor is excluded by !**/generated/**
  • crates/echo-wesley-gen/assets/v1/edict-provider/package/v1/generated/primary/lawpack.echo-dpo.cbor is excluded by !**/generated/**
  • crates/echo-wesley-gen/assets/v1/edict-provider/package/v1/generated/primary/schema.echo-provider-artifacts.cddl is excluded by !**/generated/**
  • crates/echo-wesley-gen/assets/v1/edict-provider/package/v1/generated/primary/target-profile.echo-dpo.cbor is excluded by !**/generated/**
  • schemas/edict-provider/components/v1/lowerer.echo-dpo.component.wasm is excluded by !**/*.wasm
  • schemas/edict-provider/components/v1/verifier.echo-dpo.component.wasm is excluded by !**/*.wasm
  • schemas/edict-provider/generated/v1/evidence/provenance.provider-generation.json is excluded by !**/generated/**
  • schemas/edict-provider/generated/v1/evidence/review.provider-generation.json is excluded by !**/generated/**
  • schemas/edict-provider/generated/v1/primary/authority-facts.echo-dpo.cbor is excluded by !**/generated/**
  • schemas/edict-provider/generated/v1/primary/authority-facts.echo-lawpack.cbor is excluded by !**/generated/**
  • schemas/edict-provider/generated/v1/primary/generated-artifact-profile.echo-dpo-registration.cbor is excluded by !**/generated/**
  • schemas/edict-provider/generated/v1/primary/lawpack.echo-dpo.cbor is excluded by !**/generated/**
  • schemas/edict-provider/generated/v1/primary/schema.echo-provider-artifacts.cddl is excluded by !**/generated/**
  • schemas/edict-provider/generated/v1/primary/target-profile.echo-dpo.cbor is excluded by !**/generated/**
  • schemas/edict-provider/package/v1/components/lowerer.echo-dpo.component.wasm is excluded by !**/*.wasm
  • schemas/edict-provider/package/v1/components/verifier.echo-dpo.component.wasm is excluded by !**/*.wasm
  • schemas/edict-provider/package/v1/generated/evidence/provenance.provider-generation.json is excluded by !**/generated/**
  • schemas/edict-provider/package/v1/generated/evidence/review.provider-generation.json is excluded by !**/generated/**
  • schemas/edict-provider/package/v1/generated/primary/authority-facts.echo-dpo.cbor is excluded by !**/generated/**
  • schemas/edict-provider/package/v1/generated/primary/authority-facts.echo-lawpack.cbor is excluded by !**/generated/**
  • schemas/edict-provider/package/v1/generated/primary/generated-artifact-profile.echo-dpo-registration.cbor is excluded by !**/generated/**
  • schemas/edict-provider/package/v1/generated/primary/lawpack.echo-dpo.cbor is excluded by !**/generated/**
  • schemas/edict-provider/package/v1/generated/primary/schema.echo-provider-artifacts.cddl is excluded by !**/generated/**
  • schemas/edict-provider/package/v1/generated/primary/target-profile.echo-dpo.cbor is excluded by !**/generated/**
  • tests/edict-provider-host-v1/Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (69)
  • AGENTS.md
  • CHANGELOG.md
  • README.md
  • crates/echo-edict-canonical/src/lib.rs
  • crates/echo-edict-canonical/tests/canonical_contract.rs
  • crates/echo-edict-provider-lowerer/README.md
  • crates/echo-edict-provider-lowerer/resources/authority-facts.echo-dpo.cbor
  • crates/echo-edict-provider-lowerer/resources/authority-facts.echo-lawpack.cbor
  • crates/echo-edict-provider-lowerer/resources/lawpack.echo-dpo.cbor
  • crates/echo-edict-provider-lowerer/resources/target-profile.echo-dpo.cbor
  • crates/echo-edict-provider-lowerer/src/lib.rs
  • crates/echo-edict-provider-lowerer/tests/fixtures/generated_echo_dpo.rs
  • crates/echo-edict-provider-lowerer/tests/lowerer_contract.rs
  • crates/echo-edict-provider-verifier/README.md
  • crates/echo-edict-provider-verifier/resources/authority-facts.echo-dpo.cbor
  • crates/echo-edict-provider-verifier/resources/authority-facts.echo-lawpack.cbor
  • crates/echo-edict-provider-verifier/resources/generated-artifact-profile.echo-dpo-registration.cbor
  • crates/echo-edict-provider-verifier/resources/lawpack.echo-dpo.cbor
  • crates/echo-edict-provider-verifier/resources/target-profile.echo-dpo.cbor
  • crates/echo-edict-provider-verifier/src/semantic_resources.rs
  • crates/echo-edict-provider-verifier/tests/verifier_contract.rs
  • crates/echo-registry-api/README.md
  • crates/echo-registry-api/src/lib.rs
  • crates/echo-registry-api/src/provider.rs
  • crates/echo-registry-api/tests/provider_registry.rs
  • crates/echo-registry-api/tests/semantic_operation_id_contract.rs
  • crates/echo-wasm-abi/Cargo.toml
  • crates/echo-wasm-abi/src/lib.rs
  • crates/echo-wesley-gen/Cargo.toml
  • crates/echo-wesley-gen/README.md
  • crates/echo-wesley-gen/assets/v1/edict-provider/package/v1/provider-manifest.echo.json
  • crates/echo-wesley-gen/assets/v1/repository/Cargo.lock.source
  • crates/echo-wesley-gen/assets/v1/repository/crates/echo-edict-canonical/src/lib.rs.source
  • crates/echo-wesley-gen/assets/v1/repository/crates/echo-registry-api/Cargo.toml.source
  • crates/echo-wesley-gen/assets/v1/repository/crates/echo-registry-api/src/lib.rs.source
  • crates/echo-wesley-gen/assets/v1/repository/crates/echo-registry-api/src/provider.rs.source
  • crates/echo-wesley-gen/assets/v1/repository/crates/echo-wesley-gen/Cargo.toml.source
  • crates/echo-wesley-gen/src/bin/echo-edict-provider-assets.rs
  • crates/echo-wesley-gen/src/main.rs
  • crates/echo-wesley-gen/src/provider_artifacts.rs
  • crates/echo-wesley-gen/src/provider_corpus.rs
  • crates/echo-wesley-gen/tests/generation.rs
  • crates/echo-wesley-gen/tests/provider_artifact_corpus.rs
  • crates/echo-wesley-gen/tests/provider_package_assets.rs
  • crates/echo-wesley-gen/tests/provider_package_corpus.rs
  • crates/echo-wesley-gen/tests/provider_primary_artifacts.rs
  • crates/warp-core/README.md
  • crates/warp-core/src/contract_host.rs
  • crates/warp-core/src/footprint.rs
  • crates/warp-core/src/lib.rs
  • crates/warp-core/src/provider_contract.rs
  • crates/warp-core/tests/contract_host_footprint_tests.rs
  • crates/warp-core/tests/generated_provider_helper_msrv_tests.rs
  • crates/warp-core/tests/provider_contract_package_proposal_tests.rs
  • docs/NORTHSTAR.md
  • docs/architecture/application-contract-hosting.md
  • docs/architecture/echo-optics-adapter-notes.md
  • docs/case-studies/JimAndEcho.md
  • docs/invariants/DECLARATIVE-RULE-AUTHORSHIP.md
  • docs/topics/GeneratedRules.md
  • schemas/edict-provider/README.md
  • schemas/edict-provider/components/v1/README.md
  • schemas/edict-provider/package/v1/provider-manifest.echo.json
  • scripts/verify-edict-provider-host-v1.sh
  • tests/edict-provider-host-v1/Cargo.toml
  • tests/edict-provider-host-v1/tests/generated_helper_contract.rs
  • tests/edict-provider-host-v1/tests/host_contract.rs
  • tests/edict-provider-host-v1/tests/verifier_resource_sync.rs
  • xtask/src/provider_lowerer_component.rs

Comment thread crates/echo-wesley-gen/src/bin/echo-edict-provider-assets.rs
Comment thread docs/case-studies/JimAndEcho.md Outdated
Comment thread README.md Outdated
@flyingrobots
flyingrobots merged commit d8b5e4a into main Jul 17, 2026
40 checks passed
@flyingrobots
flyingrobots deleted the provider/656-target-ir-helpers branch July 17, 2026 07:11
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.

Generate Target-IR-bound Echo registration and invocation helpers

1 participant