Skip to content

Executable-operation corridor: anchored-node creation from absence #685

Description

@flyingrobots

Claim

Echo's executable-operation corridor (ADR 0023) now has two semantically closed anchored-node program profiles:

  1. EchoOperationProgramV1::AnchoredNodeAttachmentCompareAndSet remains exactly update-only.
  2. EchoOperationProgramV1::AnchoredNodeAttachmentCreateIfAbsent asserts that both the anchored node and its alpha attachment are absent, then creates both atomically or refuses with PreconditionMismatch.

Creation has its own program kind, footprint contract, invocation/input/result/application-basis schemas, target profile, identity domains, budget minimum, and canonical recovery shape. It does not widen the meaning of the existing compare-and-set program or reuse Option<Hash> to encode a negative application condition.

Why this is a corridor gap, not a Jedit gap

The original compare-and-set program requires an existing exact attachment value. This was invisible to #684 because Jedit creates buffer nodes through CreateBufferWorldline, outside this corridor; ReplaceRange only edits an existing node.

The earned primitive here is intentionally narrower than "all creation-shaped callers": it creates one anchored node and its alpha attachment. That is the exact single-record creation consequence proven by this issue.

Delivered RED/GREEN

  • The legacy compare-and-set program's canonical program bytes, invocation bytes, schemas, target profile, and update result identity remain fixed.
  • Creation independently observes the node and attachment and covers the complete occupancy matrix:
    • absent + absent succeeds;
    • node only refuses;
    • attachment only refuses;
    • node + attachment refuses;
    • a wrong-typed occupied node still refuses as PreconditionMismatch.
  • Creation charges 64 + payload length; update retains 32 + payload length.
  • The step counter is documented as semantic evaluator stages rather than emitted WarpOp count.
  • Filesystem-WAL recovery reopens a committed creation on a fresh host and restores the installed package, node, attachment, result, and typed receipt.
  • Recovery selects the exact patch scope by the receipt-bound installed target profile and rejects malformed two-operation creation shapes.
  • All 24 executable-operation pipeline tests pass. The full feature-enabled warp-core suite passes with 689 library tests, all integration targets, and 33 doctests.

Scope

  • add the distinct AnchoredNodeAttachmentCreateIfAbsent program;
  • bind creation to a domain-separated total-absence proposition;
  • declare exact node + attachment writes and node + attachment outputs;
  • emit the ordered UpsertNode + SetAttachment patch;
  • preserve the legacy update program and identity domains unchanged;
  • add no application-specific intrinsic or application name to warp-core.

Explicit non-claims

This issue does not prove that Echo can execute Graft's canonical recordGitWarpImportBatch mutation. That operation declares two logical record creations:

  • GitWarpImportBatch;
  • StructuralBasis.

This issue also does not provide real Edict compiler output, a real application lawpack, or a structurally separate target verifier. Those crossings remain follow-on convergence work. The next Graft evidence should be a pinned external-consumer RED that loads the real structural-history schema and manifest, asks Edict for the executable-operation package form, hands the exact artifacts to Echo, and fails closed at the first unsupported boundary.

Evidence dependency

None outbound. This primitive is upstream of the pinned Graft RED and any later decision about whether Graft requires the smallest bounded atomic multi-record creation program.

See ADR 0024 (docs/adr/0024-anchored-node-creation-from-absence.md) for the complete decision record.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestfeatureFeature umbrella (epic)legend:testMethod legend test.runtimeRuntime corespecSpec/Design documenttype:enhancementMethod work type enhancement.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions