Skip to content

Interpret compiler-produced bounded Edict graph programs #684

Description

@flyingrobots

Claim

Echo can independently verify and interpret compiler-produced bounded Edict
graph programs using a generic, deterministic, metered target profile. Jedit is
the first external conformance consumer, not part of Echo's runtime ontology.

Required input and RED

The first RED consumes an exact package and verification report produced from
real Jim-owned ReplaceRange.edict by Edict's public application-build
boundary. It fails because the verified generic Target IR requires a capability
the current EchoOperationProgramV1 profile does not support.

The RED must not construct a package from Jedit's schema or oracle, work
backward from expected outcomes, use a handwritten fixture builder, or link a
native Jedit planner. The Jedit oracle is test expectation only.

Generic scope

Add only capabilities proven necessary by the compiler-produced program, such
as:

  • typed records and tagged unions;
  • checked integer arithmetic;
  • deterministic byte and UTF-8 operations;
  • canonical encoding and hashing;
  • generic graph reads and staged node/attachment writes;
  • bounded control flow or metered worklists;
  • declared and actual footprints;
  • typed result and obstruction projection;
  • private evaluation followed by one atomic TickPatch;
  • WAL, receipt, recovery, and structurally separate verifier evidence.

Preserve existing program bytes and compatibility unless the compiler evidence
requires an explicitly versioned profile change.

Runtime ontology prohibition

Echo production code and public runtime APIs must not acquire:

  • ReplaceRange or any other Jedit operation variant;
  • rope, leaf, branch, split, join, balance, Buffer, or TextWindow semantics;
  • a Jedit planner callback, MutationPlan, caller-authored patch, or opaque host
    function;
  • an unrestricted VM, durable child lane, wormhole, or application-specific
    budget reinterpretation.

Application coordinates may appear opaquely in packages, receipts, fixtures,
and integration tests. Production Echo code may not interpret that vocabulary.

Acceptance criteria

  • The fixture is the exact Edict-produced package and accepted verification
    report from a checked-in Jedit application source revision.
  • The Jedit schema and oracle are retained only as ABI/conformance evidence,
    never executable semantic input.
  • Echo admits and interprets the program through a versioned generic target
    profile.
  • Evaluation is deterministic, budgeted, private before commit, and produces
    one atomic Tick or typed obstruction.
  • Declared and actual footprints, results, receipts, WAL evidence, and
    recovery corroborate.
  • A structurally separate verifier accepts the exact target program without
    reconstructing it.
  • Production source contains no application-specific branch, intrinsic, or
    callback.
  • Integration outcomes agree with the independent Jedit oracle without
    sharing the native planner or algorithm path.

Dependency

Blocked first on flyingrobots/edict#192 lowering bounded control flow and
digest-bound pure lawpack helpers into Core, then on flyingrobots/jedit#296
producing the exact Jim-owned compiler output. The compiler failure is the
routing table; do not implement speculative runtime capability before that
evidence exists.

Activity

  1. changed the title [-]Execute Jedit ReplaceRange as a bounded declarative graph operation[/-] [+]Interpret compiler-produced bounded Edict graph programs[/+] on Aug 18, 2026
  2. flyingrobots commented on Oct 4, 2026

    @flyingrobots
    OwnerAuthor

    Pushed d28a416a and opened Echo #735, stacked on the pure-evaluation branch #726.

    The next prerequisite is implemented: callers can explicitly authenticate Edict's exact ordered-instruction contract publication while the original API keeps its original publication pins and size ceiling. The Docker baseline rejected the new manifest at that ceiling; the explicit path now passes crossed-pair, tampering, size, identity, and structural-schema checks. All 106 directly affected tests passed, along with strict Clippy, formatting, generated-artifact checks, and Cargo archive checks.

    This is schema admission, not ordered effect execution. Edict #219 must pass review and land before its dependent publication is merge-ready. Echo #684 still owns the opt-in provider path, independent semantic verification, bounded reads/writes, and settlement evidence. Jedit #296 retains the authored rope algorithm and end-to-end acceptance. Jedit's original producer pins and historical WIP branches are unchanged.

    Jedit #302 head 906ae8c now has all hosted checks green, including the repaired package-chain gate. New-head CI for Echo #735 is pending; no independent approval or merge is claimed.

  3. flyingrobots commented on Oct 4, 2026

    @flyingrobots
    OwnerAuthor

    The ordered-publication boundary now has an external compiler witness in Echo PR #735, commit 1ba8fd74. It executes the authored Jim read/guard body from 19edb6f through Edict 2405a55. The original v1 adapter refuses the ordering; an experimental v2 lawpack selection reaches the old provider schema refusal; an explicitly selected ordered-publication candidate advances to ProviderLowererRefused: UnsupportedSemantics at core.echo-pure-operation. All refusals leave application output empty. Substituting the old provider in the final crossing makes the witness fail, so this is not a vacuous refusal check.

    Docker validation passed, including generator digest admission, the paired public-build witness, strict Clippy, formatting, and Dockerfile checks. The portable recipe is documented under schemas/edict-provider/contracts/ordered/README.md; local execution reused the already built pinned compiler in copied-source images. The standalone recipe was not rebuilt from an empty toolchain cache.

    The focused WAL lease repair is Echo #737, whose hosted CI is green at 00fd1e6c. Echo #735 now stacks on it; the prior #735 head was green, and the new witness head is running CI. No historical WIP branch was merged and no Jedit producer pin changed.

    The next substantive boundary remains generic stateful lowering and execution. The placeholder read is not a production intrinsic: Jim's canonical head is a field within a compact JSON Buffer fact, not a raw 32-byte attachment. Application-owned decoding and field selection must accompany generic bounded attachment reading; Echo must not learn Buffer or Head semantics. Full rope behavior, independent oracle agreement, admitted execution, Tick/WAL/receipt/reading/recovery remain open under Jedit #296 / #302.

  4. flyingrobots commented on Oct 4, 2026

    @flyingrobots
    OwnerAuthor

    The byte-equality prerequisite is implemented in Echo #739, commit 84ccbcec. Its exact externally compiled fixtures come from the new Jim-owned source in Jedit #302, commit b1aeaaa, under edict/replace-range-probes/basis-identity/.

    Both public builds use the unchanged Edict 3f81f759e921a69b04fe8cf8e62e62f8f3dc7b7e and provider 49e9efb68001dfd78563d18bac9359a87671e431. They emit separately accepted reports and byte-identical packages on repetition. The original evaluator fails both compiled cases with UnsupportedProgram. The fix supports byte equality and meters the full larger operand before comparison; integer behavior is preserved, byte ordering and mixed operands refuse.

    Docker evidence: all 5 new tests plus 7 prior pure-evaluator tests pass, including mismatches at every ID byte, shorter/longer/empty payloads, exact budget thresholds, invalid inputs, pin substitution, and unsupported forged predicates. Strict Clippy and formatting pass. The checked-in Jim build script passed using the already built pinned compiler in a copied-source container; its portable Dockerfile passed build checks, without repeating a cold compiler build. Hosted checks for both new heads are running.

    This is value comparison, not a graph read. Supplied observed IDs are not current-state authority. The complete operation still needs generic bounded reads, Jim-owned fact decoding and rope semantics, admitted execution, oracle agreement, Tick/WAL/receipt/reading/recovery. No historical WIP branch was merged and the frozen application/runtime pins remain unchanged.

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

    enhancementNew feature or requestfeatureFeature umbrella (epic)lane:up-nextMethod lane up-next.legend:testMethod legend test.priority:highMethod priority high.runtimeRuntime corespecSpec/Design documenttoolingTooling/CI/CLItype:enhancementMethod work type enhancement.

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions