Skip to content

Separate generic graph writes from text MutationPlan evidence #287

Description

@flyingrobots

Classification

Native design debt and misleading authority vocabulary.

Problem

CheckpointPlan currently contains a member named mutation: MutationPlan, even though checkpoint declaration is explicitly required not to mutate text.

MutationPlan also bundles two different concerns:

  1. generic Echo graph read/write footprint plus delta emission; and
  2. text-result evidence such as buffer ID, head ID, byte length, line count, and version.

A checkpoint uses the first concern to write one Jim proposition, but fills the second with a retained basis head and a current buffer version. The name and shape imply a text mutation where none exists and make mixed-coordinate responses easier to construct.

Evidence

Why it matters

Names are part of the authority boundary. Calling every admitted fact write a text mutation weakens the invariant that checkpoint declaration cannot mint a head, rewrite, diff, or text change. The combined structure also encourages unrelated coordinate evidence to travel together.

Constraints

  • This is a structural refactor, not permission to deepen a handwritten inverse or mutation protocol.
  • Preserve generated operation identity, footprints, deltas, receipts, ticks, and WAL behavior.
  • Preserve exact content-addressed fact identities.
  • Keep checkpoint planning visibly non-text-mutating.
  • Prefer a small split over a generalized framework.

Acceptance criteria

  • Extract a neutrally named graph footprint/delta plan containing only graph reads and pending writes.
  • Keep text-mutation result evidence in a type used only by operations that actually create/replace text state.
  • Make CheckpointPlan contain explicit checkpoint-basis evidence and the neutral graph plan.
  • No checkpoint field, method, or test describes the operation as a text mutation.
  • Existing create/replace/checkpoint native and integration witnesses remain green.
  • Add or retain a negative witness proving checkpoint emission contains no RopeHead, RopeRewrite, RopeDiff, or text-node write.
  • No protocol or wire-shape expansion is introduced merely to complete this refactor.

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    causal-ropeCausal rope text authority roadmapenhancementNew feature or requestsliceImplementable roadmap slicetext-authorityText authority and storage invariantswork-in-progressCycle or PR is intentionally in progress and not ready to merge

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions