Skip to content

COOL IDEAS™: compare two checkpoint bases through bounded causal diff #289

Description

@flyingrobots

Classification

COOL IDEA™ — read-only historical comparison over real causal rope evidence.

Observation

Existing roadmap work covers previewing one historical basis and comparing current state with a selected checkpoint/anchor. A more general primitive would compare checkpoint A directly with checkpoint B without moving the canonical head, materializing full snapshots as authority, or pretending every checkpoint is a CausalAnchor.

The idea

Given two opaque Jim checkpoint identities, ask the native Echo-backed host for a bounded causal comparison of their retained rope bases.

A result could include:

  • both resolved worldline and basis-head identities;
  • a bounded byte/line region or summary;
  • inserted/deleted/modified spans;
  • supporting rewrite, diff, receipt, and tick identities;
  • coverage and continuation posture;
  • an explicit retention obstruction when required history is unavailable.

The operation is observation only. Reconciliation, checkout, undo, export, and anchoring remain separate intents.

Why it is cool

This unlocks a truthful “what changed between these two meaningful moments?” surface for humans and agents:

  • compare autosave to manual save;
  • compare pre-refactor to post-refactor checkpoints;
  • inspect two retained experiment points without disturbing the live buffer;
  • feed bounded evidence into review or explanation tooling;
  • distinguish semantic checkpoint identity from its declaration occurrences.

Constraints

  • Do not move or mint a canonical RopeHead.
  • Do not compute an unbounded local full-string diff.
  • Do not treat CAS snapshots, Git, or TypeScript materializations as authority.
  • Resolve checkpoint identities and basis membership inside the native host.
  • Same-worldline comparison is the initial scope; cross-worldline reconciliation belongs to WF-0126: Braid and diff reconciliation UX #163 unless separately designed.
  • Missing, pruned, foreign, or incompatible history returns a typed obstruction.
  • A comparison does not imply or create a CausalAnchor.

Acceptance criteria

  • Accept two opaque checkpoint IDs and an explicit bounded comparison request.
  • Resolve both checkpoint facts and validate their bases/worldlines in native code.
  • Return bounded causal diff evidence with exact basis identities and continuation/coverage posture.
  • Support same-checkpoint comparison as an empty, fully evidenced result.
  • Define behavior when the same checkpoint proposition has multiple declaration occurrences.
  • Prove the observation is read-only: no head, rewrite, diff, checkpoint, anchor, or text mutation is minted.
  • Prove restart behavior from Echo history/WAL.
  • Prove typed obstructions for missing checkpoint, foreign worldline, retention gap, and unsupported operation.
  • Provide both human-readable and agent-readable consumers without duplicating authority in TypeScript.

Related, not duplicate

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