Skip to content

Compile standalone Hello Echo through the provider boundary #169

Description

@flyingrobots

Goal

Compile one standalone, real Hello Echo program from Edict source into the exact Echo executable-operation package form, without GraphQL, native application callbacks, handwritten package fixtures, or Graft-specific semantics.

This is the compiler-side predecessor to the first real Echo-hosted application vertical. It exists to expose and implement only the first missing Edict crossing before Graft application code depends on it.

Product fixture

The example is examples.hello_echo@1.createGreeting and contains:

  • real .edict source;
  • one real digest-locked semantic lawpack;
  • bounded greeting key and message values;
  • one explicitly named create-if-absent effect, createGreeting;
  • one typed AlreadyExists obstruction;
  • an Echo target posture that does not expose nodes, attachments, patches, or storage nouns to the application;
  • no GraphQL dependency;
  • no fake transport;
  • no handwritten ExecutableOperationPackageV1 substitute.

Acceptance criteria

  • The imported lawpack manifest and export surface are loaded and validated rather than replaced by programmatic compiler context.
  • The exact lawpack digest in source binds the loaded lawpack bytes.
  • Edict compiles the source and its semantic closure into canonical Core and Echo Target IR.
  • The Echo-owned provider emits exact canonical ExecutableOperationPackageV1 bytes as a generated artifact.
  • A structurally separate verifier report corroborates the supported semantics and binds the generated package subject, or the pipeline fails closed at the precise missing verifier-ABI boundary.
  • Exact canonical source, Core, Target IR, package, and report fixtures are pinned with mutation/refusal witnesses.
  • The CLI or a stable compiler API exposes the generated artifact without requiring a handwritten Echo-side package builder.
  • The checked package is consumable by Echo without semantic reinterpretation.

RED discipline

The first test must load the exact Edict source and lawpack resources, request the Echo package output, and assert the first typed unsupported boundary. It must not construct the package directly in test code.

Non-goals

  • Executing the package through Echo's scheduler; that belongs to the dependent Echo issue.
  • Graft domain semantics or data modeling.
  • git-warp import or migration.
  • Portable Echo/git-warp conformance; issue Goalpost: Portable WARP semantics across Echo and git-warp #168 remains the later goalpost.
  • General adapter-chain resolution.
  • Renaming every existing lawpack surface before the example proves what the abstraction must carry.
  • Adding linked lists or a broad standard library in this slice.

Dependency

This unblocks the Echo runtime issue that replaces the existing native-callback hello-echo demo with the compiler-produced package.

Activity

  1. self-assigned this
    on Jul 26, 2026
  2. added
    release:lawpacksLawpack contract and authority source release work
    release:target-profilesTarget-profile contract and authority source release work
    domain: backendCompiler/backend implementation work
    on Jul 26, 2026
  3. coderabbitai commented on Jul 26, 2026

    @coderabbitai
    🔗 Related PRs

    #2 - docs: apply Phase 0 design review + nail five yellow-light joints [merged]
    #9 - feat(syntax): Phase 1 — Edict lexer + minimal-v1 parser [merged]
    #108 - Freeze canonical Target IR artifacts [merged]
    #132 - Lower obstruction requirements to Echo Target IR [merged]
    #162 - Publish canonical provider contract pack [merged]


    📝 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!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

domain: backendCompiler/backend implementation workrelease:lawpacksLawpack contract and authority source release workrelease:target-profilesTarget-profile contract and authority source release workroadmap-aRoadmap A: standalone Hello Echo delivery

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions