# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] ## [0.1.0] - 2026-04-30 ### Added - Initial release. - Cargo binary literally named `git` (via `[[bin]] name = "git"`) that shadows the real `git` on `PATH`. - Default-safe passthrough: outside a jj worktree, or with no intercept marker, every invocation is forwarded to the real `git` via `exec()` — preserving signals, exit code, and TTY ownership. - Intercept gate fires only when inside a `.jj` worktree (honoring `git -C `) **and** either `FUCKGIT_INTERCEPT=1` or an AI-agent marker env (currently `CLAUDECODE`) is set. - Redirect output: prints the matching `jj` subcommand plus live `jj help ` output to stderr; exits with status `2`. - Mapping table for 27 common git subcommands (`status`, `log`, `commit`, `add`, `checkout`, `switch`, `restore`, `branch`, `merge`, `rebase`, `pull`, `push`, `fetch`, `clone`, `init`, `diff`, `show`, `reset`, `revert`, `cherry-pick`, `stash`, `tag`, `blame`, `remote`, `bisect`, `config`, `reflog`). - Plumbing allowlist (`rev-parse`, `symbolic-ref`, `for-each-ref`, `cat-file`, `update-ref`, `hash-object`, `ls-files`, `ls-tree`, `merge-base`, `show-ref`, `name-rev`, `var`, `credential`, `check-ref-format`, `version`) for transparent passthrough so tooling keeps working. - Safety env passthroughs: `GIT_DIR`, `GIT_EXEC_PATH` (hook context); `CARGO` (cargo subprocess). - Top-level argv pre-pass handles `-C `, `-c `, `--git-dir[=]`, `--work-tree[=]`, `--namespace`, `--config-env`, `--exec-path`, `--paginate`/`--no-pager`, `--bare`, `--version`/`-v`, `--help`/`-h`. - Escape hatches: `FUCKGIT_PASSTHROUGH=1` env var, `--fucking-git` flag (stripped before exec). - Self-recursion guard via `FUCKGIT_DEPTH` env counter (aborts at depth ≥ 2). - Linux and macOS support. Zero runtime dependencies. [Unreleased]: https://git.swaits.com/swaits/fuckgit/compare/v0.1.0...main [0.1.0]: https://git.swaits.com/swaits/fuckgit/releases/tag/v0.1.0