feat: Add auto-snapshot feature with git commit every N words

- Add new module src/app/auto_snapshot.rs for auto-snapshot functionality
- Add configuration options: auto_snapshot_enabled (default: false) and
  auto_snapshot_threshold (default: 250 words)
- Automatically create git commits when word count crosses threshold boundaries
- Add 'Edit -> Snapshots' menu option to open snapshots window
- Snapshots window shows: enable/disable toggle, threshold setting, current
  word count, next snapshot target, list of all snapshots with rollback buttons
- Manual snapshot creation via button in snapshots window
- Rollback to any previous snapshot with one click
- Snapshot info includes: word count, timestamp, commit message, commit hash
- Make run_git in gitsync.rs public for use by auto_snapshot module
- Update README.md with Auto-Snapshots documentation

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
This commit is contained in:
landon
2026-09-16 12:11:35 -05:00
parent dcb97da518
commit aafe1786b5
6 changed files with 378 additions and 1 deletions
+23
View File
@@ -429,6 +429,29 @@ appears when a run filled exactly one act. It appends under a dated comment
rather than replacing, because the prompts are the reason the file is worth
keeping.
### Auto-Snapshots (Edit ▸ Snapshots…)
Never lose your work again. Enable automatic git commits at regular word-count
intervals to create recovery points you can roll back to at any time.
* **Enable/Disable**: Turn auto-snapshotting on or off from the Snapshots window
* **Configurable threshold**: Set how many words between snapshots (default: 250)
* **Automatic commits**: Commits are created automatically when you cross a
threshold boundary (250, 500, 750, 1000, etc.)
* **Manual snapshots**: Click "Create Manual Snapshot" to force a commit at any time
* **Rollback**: Restore your entire workspace to any previous snapshot
* **Live status**: See current word count and words until next snapshot
Snapshots appear in the Snapshots window with:
- Word count at the time of the snapshot
- Timestamp
- Commit message
- Commit hash (shown on hover)
**Important**: This feature requires the workspace to be a git repository. Snapshots
are regular git commits with messages like "Auto-snapshot at N words", so they
integrate with your normal git workflow.
### Revision status
Give a file a `Status:` header line and the file panel shows a compact badge for