Goal
Stop computing buffer dirtiness from Git or string snapshots.
Acceptance criteria
- Dirty state compares current RopeHead to latest relevant save/export anchor.
- Unsaved admitted causal edits mark the buffer dirty even without Git.
- Saving creates a new anchor and clears file-dirty status without erasing history.
Goal
Stop computing buffer dirtiness from Git or string snapshots.
Acceptance criteria