Repository navigation
Roadmap: causal rope everywhere and only causal rope #255
Description
Activity
- addedcausal-ropeCausal rope text authority roadmapCausal rope text authority roadmapgoalpostRoadmap milestone trackerRoadmap milestone trackertext-authorityText authority and storage invariantsText authority and storage invariants
on Jul 6, 2026 🔗 Related PRs
#23 - feat(echo): add Echo release gate witness [closed]
#27 - feat(echo): wire trusted runtime lifecycle into jedit [closed]
#135 - Docs: lock Jim causal roadmap [closed]
#205 - Document graph-backed rope runtime gate [merged]
#261 - Complete CR-00 snapshot escape hatch guard [merged]
📝 Issue Planner
Check the box below or use the
@coderabbitai plancommand 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!
- addedenhancementNew feature or requestNew feature or requestwork-in-progressCycle or PR is intentionally in progress and not ready to mergeCycle or PR is intentionally in progress and not ready to merge
on Jul 6, 2026 Architecture correction for this roadmap: the causal rope remains Jim-owned
application law, but the final production editor isJim.edictrunning as an
Echo-realized active observer. TypeScript command handlers, edit planners,
operation sequencers, and coordinate-derivedreplaceRangeAsTickrequests are
compatibility migration debt, not target authority.Roadmap slices must converge on #295/#301:
- Jedit/Bijou/native code decodes canonical events, transports artifacts, owns
raw file/process adapters, and renders disposable projections. Jim.edictowns modes, cursor, selection, registers, pending operators,
command interpretation, observation requests, operation intents, outcomes,
and state advancement.- Jim-owned Edict lawpacks own rope facts,
ReplaceRange,TextWindow, buffer
creation, checkpoints, results, and typed obstructions. - Echo remains generic and must never acquire rope/editor nouns, verbs,
callbacks, or intrinsics.
Any checklist item that says "route commands through replaceRangeAsTick" should
be read as compatibility work unless it explicitly ends with canonical event
delivery toJim.edict. Direct generated-client operation conformance is useful
scaffolding but does not satisfy the final production cutover.- Jedit/Bijou/native code decodes canonical events, transports artifacts, owns
Target
All product text truth in Jim flows through graph-backed causal rope authority. Full strings may exist only as imports, exports, render windows, tests, or caches. They must never be authority.
Definition of done
Goalposts and slices
CR-00 - Seal snapshot escape hatches
Goalpost: make the full-snapshot runtime visibly test-only and prevent product code from using any non-causal text authority.
CR-01 - Echo CausalAnchor integration
Goalpost: use application-requested, Echo-admitted causal anchors as the generic durability primitive behind Jim rope checkpoints.
CR-02 - Installed graph rope authority
Goalpost: make installed Jim create, read, replace, and checkpoint through graph-backed rope authority by default.
CR-03 - Coordinates and materialization discipline
Goalpost: make UTF-8 byte ranges authoritative and require every materialized string to name its rope head and byte range basis.
CR-04 - Durability semantics in save, dirty, and footer
Goalpost: express queued intent, admitted causal history, saved file projection, local Git, and remote Git durability as separate states.
CR-05 - Causal gutter and modified line markers
Goalpost: compute gutter modified/deleted markers from rope rewrite and diff evidence, never from Git diff.
CR-06 - Runtime-backed why evidence
Goalpost: make :why cite rope head, leaf, blob, rewrite, diff, tick, checkpoint, and anchor evidence from the runtime.
CR-07 - Retention, balance, and performance witnesses
Goalpost: prove causal rope is not full-snapshot cosplay with retained-byte, subtree-identity, balance, and materialization-budget witnesses.
CR-08 - Delete transitional text authority APIs
Goalpost: delete or quarantine all transitional full-root/snapshot authority APIs so only causal rope remains in product code.
CR-09 - Dogfood cutover and regression net
Goalpost: daily-drive Jim on causal rope, remove the snapshot escape hatch from dev startup, and lock the architecture with tests and docs.
Hard no list