Skip to content

Slice: Route standard undo and redo through Echo causal history #273

Description

@flyingrobots

Goal

Make standard u and ctrl+r forward causal operations derived from Echo-retained history, with no process-local snapshot stack or request-to-receipt map acting as authority.

Acceptance criteria

  • Production undo does not use EditorState.undoStack snapshots to decide replacement bytes.
  • u selects an exact retained causal receipt from the buffer worldline and requests an installed-contract inverse from Echo.
  • The inverse is admitted as an ordinary forward intent whose receipt cites the inverted transition and the validated current-basis receipt set.
  • ctrl+r inverts the admitted undo receipt rather than restoring a process-local redo snapshot.
  • Terminating and reopening Jim reconstructs undo/redo availability and reversal provenance from Echo WAL/WSC history.
  • Process-local stacks and maps, if retained for navigation performance, are disposable projections rebuilt from retained causal evidence.
  • Missing receipts, retention gaps, stale bases, unmappable spans, and contract-version mismatches surface typed obstructions and never silently fall back to snapshot undo.
  • Restart witnesses prove edit -> undo -> redo and edit -> terminate -> reopen -> undo without process-owned authority.

Dependencies

Non-goals

  • Do not delete or rewrite prior transitions.
  • Do not use Git history as editor undo authority.
  • Do not treat cursor movement as a text mutation.
  • Do not retain full-buffer snapshots merely to implement undo.

Activity

  1. added
    work-in-progressCycle or PR is intentionally in progress and not ready to merge
    causal-ropeCausal rope text authority roadmap
    sliceImplementable roadmap slice
    text-authorityText authority and storage invariants
    on Jul 13, 2026
  2. coderabbitai commented on Jul 13, 2026

    @coderabbitai
    🔗 Related PRs

    #23 - feat(echo): add Echo release gate witness [closed]
    #120 - Feat: add Vim normal state machine [closed]
    #195 - Add honest why observation coordinates [merged]
    #205 - Document graph-backed rope runtime gate [merged]
    #268 - WF-0154 - E-Brake: Observed Absurdity Fixes (cycle) [merged]


    📝 Issue Planner

    Check the box below or use the @coderabbitai plan command to generate an implementation plan and prompts that you can use with your favorite coding assistant.

    • Create Plan

    🧪 Issue enrichment is currently in open beta.

    You can configure auto-planning by selecting labels in the issue_enrichment configuration.

    To disable automatic issue enrichment, add the following to your .coderabbit.yaml:

    issue_enrichment:
      auto_enrich:
        enabled: false

    💬 Have feedback or questions? Drop into our discord!

  3. flyingrobots commented on Aug 15, 2026

    @flyingrobots
    OwnerAuthor

    Priority reconciliation: add #295 as an authority-path prerequisite. Standard undo/redo must ultimately invoke generated Edict operations through Echo; the compatibility host cannot be retained as an inverse fallback. This existing issue remains the correct undo implementation home, so no separate undo-tree issue was opened from the Thinking in Vim review.

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

    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

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions