Skip to content

Generate Target-IR-bound Echo registration and invocation helpers #656

Description

@flyingrobots

Purpose

Generate the first Echo-owned Rust/API helpers carried as provider output roles, bound to the exact Target IR and contract bundle identities rather than to mutable application names.

Acceptance criteria

  • Generated registration and invocation descriptors name exact Target IR and bundle digests plus required Echo ABI/schema versions.
  • The helper constructs an opaque provider-generic package/registry proposal whose private mutation handler uses Echo's existing scheduler-owned contract-handler shape, without exposing raw rule mutation, scheduler tick, WAL, recovery, or package-install authority to application code.
  • The minimal Target IR operation maps to one explicit host-supplied executor or observer.
  • Wrong Target IR, bundle, codec, schema, operation, footprint, or profile identity refuses before registration or mutation.
  • Output is deterministic, namespaced, schema-validated, and emitted only when requested.
  • Review projection and generated source are release artifacts; neither becomes a new semantic source of truth.
  • Consumer tests compile and exercise the generated API against the pinned minimal fixture.

Runtime installation boundary

This goalpost ends at a pure, opaque provider proposal. The proposal is not an InstalledContractPackage, does not implement the legacy GraphQL/Wesley RegistryProvider facade, and grants no artifact admission, installation, scheduling, execution, durability, receipt, or observation authority.

A trusted Echo runtime must independently authenticate/select the callback implementation and consume the proposal during native provider admission. Equality between generated and host-claimed implementation identities proves cross-binding only; it does not prove arbitrary callback semantics. Native admission/invocation remains tracked by #583, with the end-to-end Jedit execution gate in #589.

Prerequisites #652 and #653 are complete.
Parent: #650
Downstream app-safe delivery remains tracked by #516.

Activity

  1. added this to the Echo 1.0 milestone on Jul 13, 2026
  2. added
    featureFeature umbrella (epic)
    toolingTooling/CI/CLI
    blockedBlocked; cannot proceed without external input or dependency.
    release:echo-1.0Echo 1.0 release convergence scope
    on Jul 13, 2026
  3. coderabbitai commented on Jul 13, 2026

    @coderabbitai
    Contributor
    🔗 Related PRs

    #365 - feat(wesley): emit query observer host helpers [merged]
    #671 - feat(echo-wesley-gen): generate canonical Edict provider artifacts [merged]
    #672 - Implement Echo Edict provider lowerer [merged]
    #673 - Implement the Echo Target IR semantic verifier [merged]
    #674 - Assemble digest-locked Edict provider package [open]


    📝 Issue Planner

    Check the box below or use the @coderabbitai plan command to generate an implementation plan and prompts that you can use with your favorite coding assistant.

    • Create Plan

    🧪 Issue enrichment is currently in open beta.

    You can configure auto-planning by selecting labels in the issue_enrichment configuration.

    To disable automatic issue enrichment, add the following to your .coderabbit.yaml:

    issue_enrichment:
      auto_enrich:
        enabled: false

    💬 Have feedback or questions? Drop into our discord!

  4. removed
    blockedBlocked; cannot proceed without external input or dependency.
    on Jul 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions