Releases: internetics-net/d4-snap
v0.1.3
Snapshot for dummies.
Release Notes
First Release 🎉
d4-snap is a lightweight, local-only Git snapshot manager for developers who want quick, safe progress saves without touching their main repo history. All snapshots are stored in a hidden bare repository under ~/.d4_snap/.
What's New
Snapshot Notes
Every snapshot now automatically gets a concise summary of what changed — categorized by code files, config files, docs, and tests. Notes are displayed in the snapshot listing alongside the hash, branch, and name.
Automatic Cleanup
d4-snap now silently cleans up old snapshots on every run (default: 90 days). Favorites are always preserved. Behavior is fully configurable via src/d4_snap/config/d4_snap.yaml:
auto_cleanup:
enabled: true
auto_cleanup_days: 90 # automatic, runs on every operation
manual_cleanup_days: 30 # used when triggering cleanup from the menuMetadata Schema
Internal snapshot metadata now stores a notes field (replaces the unused ai boolean flag). Existing snapshots without notes display cleanly.
Core Features
- Shadow snapshots — isolated from your main repo, stored in a bare git repo
- Auto-naming — timestamp-based (
YYYYMMDD-HHMMSSmmm) - Restore — full working directory or specific file/folder
- Diff viewer — compare any snapshot against your current state
- Favorites — pin snapshots to protect them from auto-deletion
- Rename & delete — full lifecycle management via interactive menu
- Auto-deletion on restore — cleans up the restored snapshot and all newer ones automatically
Installation
pip install d4-snap
# or
poetry add d4-snapRequires Python ≥ 3.10 and Git.
Usage
d4-snap # Quick snapshot and exit (auto-cleanup runs after)
d4-snap menu # Interactive menu
d4-snap --help # Help