Releases: MonteYin/gitsift
Releases · MonteYin/gitsift
v0.2.0
What's New
Hunk-level checkout (selective discard)
gitsift checkout --hunk-ids <ids>— discard unstaged hunks (revert workdir → index)gitsift checkout --staged --hunk-ids <ids>— discard staged hunks (revert index → HEAD)gitsift checkout --from-stdin— JSON input support- Handles untracked files (deletion) and staged new files (index removal)
- Path traversal guard prevents deletion outside repository boundary
Staged diff
gitsift diff --staged— view staged changes (HEAD vs index)
Protocol extensions
- New
checkoutmethod withstagedparam diffmethod now supportsstagedparam
Full list of changes
- New file:
src/git/checkout.rs— reverse-patch reconstruction with atomic batch apply - New function:
diff_staged()insrc/git/diff.rs - New types:
CheckoutRequest,CheckoutResult,CheckoutParams - 27 new tests (125 total), all passing
What's Changed
Full Changelog: v0.1.3...v0.2.0
v0.1.3
What's Changed
Compact TOON-inspired output format — ~40% fewer tokens for agent consumption.
Highlights
- New default output format
toon: compact, token-efficient, inspired by TOON- Tabular rows for hunk lines:
{tag,content,old,new}:header + CSV-like rows - Context lines (unchanged) stripped — agents only need change lines for staging
- Redundant
file_pathremoved from hunks
- Tabular rows for hunk lines:
- JSON still available via
--format json - Removed
humanoutput format — gitsift is agent-only - Removed
similarcrate dependency - Zero new external dependencies (compact formatter is self-implemented)
Breaking Changes
- Default output is now
toon(wasjsonwhen piped,humanin terminal) --format humanand--format autoare removed- Agents relying on piped JSON must now use
--format jsonexplicitly
Full Changelog: v0.1.2...v0.1.3
What's Changed
- GTST-20 feat: add compact TOON-inspired output format for agent token efficiency by @MonteYin in #17
Full Changelog: v0.1.2...v0.1.3
v0.1.2
What's Changed
Coding style improvements — pedantic lints, shared helpers, test deduplication.
Highlights
- Enable
clippy::pedanticwith project-wide lint config inCargo.toml - Add
rustfmt.toml,clippy.toml,rust-toolchain.tomlfor consistent tooling - Extract shared git2 helpers into
git/mod.rs(diff_opts, delta_path, hunk_header, is_binary_delta) - Add
LineTag::from_origin(),PROTOCOL_VERSIONconstant,dispatch()helper - Deduplicate test setup into
tests/common/mod.rs - Net -290 lines (348 added, 638 removed)
Full Changelog: v0.1.1...v0.1.2
What's Changed
Full Changelog: v0.1.1...v0.1.2
v0.1.1
v0.1.0
What's Changed
- GTST-2 feat: project scaffolding and data models by @MonteYin in #1
- GTST-3 feat: implement git diff engine by @MonteYin in #2
- GTST-4 feat: implement hunk-level staging engine by @MonteYin in #3
- GTST-5 feat: implement line-level staging via patch reconstruction by @MonteYin in #4
- GTST-6 feat: wire up CLI subcommands end-to-end by @MonteYin in #5
- GTST-7 feat: implement JSON-lines protocol mode by @MonteYin in #6
- GTST-10 feat: integration tests and binary file fix by @MonteYin in #7
- chore: add CI, README, LICENSE, and fix clippy/fmt by @MonteYin in #8
- GTST-12 feat: add GitHub Actions release workflow by @MonteYin in #9
- GTST-12 feat: release workflow with aarch64-linux fix by @MonteYin in #10
- GTST-14 docs: add macOS Homebrew install instructions by @MonteYin in #11
- GTST-16 feat: switch Linux targets to musl for static linking by @MonteYin in #12
New Contributors
Full Changelog: https://github.com/MonteYin/gitsift/commits/v0.1.0