Repository navigation
WF-0123: Unmaterialized file buffers and external edit frontier #159
Description
Activity
- addedbugSomething isn't workingSomething isn't workingdocumentationImprovements or additions to documentationImprovements or additions to documentationenhancementNew feature or requestNew feature or request
on Jun 26, 2026 coderabbitai commented
on Jun 26, 2026 coderabbitaiboton Jun 26, 2026 – with coderabbitaiMore actions🔗 Related PRs
#1 - Refine jedit pane shell [merged]
#23 - feat(echo): add Echo release gate witness [merged]
#115 - Define Vim target usability workflows [merged]
#135 - Docs: lock Jim causal roadmap [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!
Closed as the WF-0123 foundation slice landed through PR #160: #160
Landed scope:
- missing-path
:edit foo.txtopens an unmaterialized Echo-backed buffer instead of requiring a host file; - opening a missing path does not write the file on disk;
:writematerializes a missing-open buffer only when the host path remains compatible;- save/export preflights host fingerprints for existing files and missing-open paths;
- externally changed/deleted/path-kind-conflicted host paths block materialization instead of being overwritten;
- blocked materialization does not mark the buffer clean/materialized;
- blocked
:wqdoes not quit; - WSC settlement/recovery/export refuses bounded readings as materializable text;
- inactive and unmaterialized buffers survive file switching through the buffer registry;
- Graft drawer and docs now name projection/materialization posture honestly.
Remaining work was split into focused follow-up issues:
- WF-0124: Restart recovery UI for inactive and unmaterialized buffers #161 Restart recovery UI for inactive and unmaterialized buffers
- WF-0125: External Edit intake and canonical frontier events #162 External Edit intake and canonical frontier events
- WF-0126: Braid and diff reconciliation UX #163 Braid and diff reconciliation UX
- WF-0128: File watcher and external move detection #165 File watcher and external move detection
Related runtime doctrine follow-up:
- WF-0127: Native Echo speculative intent runtime #164 Native Echo speculative intent runtime
This issue was intentionally an umbrella. Keeping it open after #160 would make the roadmap ambiguous, so the remaining work now has separate issue boundaries.
- missing-path
Problem
:edit foo.txtcurrently obstructs whenfoo.txtdoes not exist on disk. That treats filesystem materialization as the precondition for a causal buffer, which conflicts with Jim/Echo semantics.Jim should be able to create a causal buffer and local strand for a missing path, let the user edit immediately, and only materialize
foo.txtonto disk when the user saves/exports.Design Direction
:edit foo.txtopens an unmaterialized causal buffer, not an error.foo.txt.foo.txt, Jim records that as anExternal Editintent on the canonical worldline.Scenario Cycles
External Editintents.Acceptance Sketch
:edit foo.txtsucceeds whenfoo.txtdoes not exist.foo.txtis not written to disk until:write,:wq, or an explicit export/materialization command.foo.txtcreation is not ignored and not treated as the user's local strand.Notes
This is a design/spec umbrella. Implementation should follow after the scenario matrix is explicit enough to avoid unsafe save/open behavior.