Repository navigation
Interpret compiler-produced bounded Edict graph programs #684
Description
Activity
- addedfeatureFeature umbrella (epic)Feature umbrella (epic)lane:up-nextMethod lane up-next.Method lane up-next.legend:testMethod legend test.Method legend test.priority:highMethod priority high.Method priority high.runtimeRuntime coreRuntime corespecSpec/Design documentSpec/Design documenttoolingTooling/CI/CLITooling/CI/CLItype:enhancementMethod work type enhancement.Method work type enhancement.
on Jul 19, 2026 - changed the title
[-]Execute Jedit ReplaceRange as a bounded declarative graph operation[/-][+]Interpret compiler-produced bounded Edict graph programs[/+]on Aug 18, 2026 Pushed
d28a416aand 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
906ae8cnow 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.The ordered-publication boundary now has an external compiler witness in Echo PR #735, commit
1ba8fd74. It executes the authored Jim read/guard body from19edb6fthrough Edict2405a55. 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 toProviderLowererRefused: UnsupportedSemanticsatcore.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.
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, commitb1aeaaa, underedict/replace-range-probes/basis-identity/.Both public builds use the unchanged Edict
3f81f759e921a69b04fe8cf8e62e62f8f3dc7b7eand provider49e9efb68001dfd78563d18bac9359a87671e431. They emit separately accepted reports and byte-identical packages on repetition. The original evaluator fails both compiled cases withUnsupportedProgram. 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.
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.edictby Edict's public application-buildboundary. It fails because the verified generic Target IR requires a capability
the current
EchoOperationProgramV1profile 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:
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:
ReplaceRangeor any other Jedit operation variant;Buffer, orTextWindowsemantics;MutationPlan, caller-authored patch, or opaque hostfunction;
budget reinterpretation.
Application coordinates may appear opaquely in packages, receipts, fixtures,
and integration tests. Production Echo code may not interpret that vocabulary.
Acceptance criteria
report from a checked-in Jedit application source revision.
never executable semantic input.
profile.
one atomic Tick or typed obstruction.
recovery corroborate.
reconstructing it.
callback.
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.