Skip to content

Releases: internetics-net/d4-snap

v0.1.3

04 Mar 20:22

Choose a tag to compare

ci: rename EXE with version, OS, and arch in filename

Snapshot for dummies.

04 Mar 19:32

Choose a tag to compare

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 menu

Metadata 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-snap

Requires 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