runsascoded/dffs#3 Add shell-integration, -C/--cached flag, fix exit codes, modernize CI
- Add
dffs-shell-integrationcommand for convenient shell aliases withc(back-compat) andn(no-color) variants - Add
-C/--cachedflag togit-diff-xfor comparing HEAD vs staged changes - Fix exit code propagation in
git-diff-xandcomm-x - Improve test assertions: replace vague
inchecks with precise line-by-line comparisons - Remove deprecated
Tupleimport, use built-intuple - Update CI workflow to match
ghpr/git-didipattern
New dffs-shell-integration command outputs aliases:
eval "$(dffs-shell-integration bash)" # All aliases
eval "$(dffs-shell-integration bash diff-x)" # Only diff-x aliases
eval "$(dffs-shell-integration bash comm-x)" # Only comm-x aliases
eval "$(dffs-shell-integration bash git-diff-x)" # Only git-diff-x aliasesAliases provided (color enabled by default):
diff-x:dx,dxc(back-compat),dxn(no-color),dxw,dxcw,dxwncomm-x:cx,cx1,cx2,cx3,cx12,cx13,cx23git-diff-x:gdx,gdxc(back-compat),gdxn(no-color), plus variants:gdxs/gdxcs/gdxsn= compare HEAD vs staged (--cached)gdxr/gdxcr/gdxrn= compare refspec (-r)gdxf/gdxcf/gdxfn= compare single ref (-R)gdxw/gdxcw/gdxwn= ignore whitespace (-w)- Combinations:
gdxsw,gdxcsw,gdxswn,gdxrw,gdxcrw,gdxrwn,gdxfw,gdxcfw,gdxfwn cvariants are vestigial (same as base) for backward compatibilitynvariants add--no-color
Compare HEAD vs staged changes (like git diff --cached):
git-diff-x --cached jq. file.json
# Or use alias:
gdxs jq. file.jsongit-diff-x and comm-x now properly exit non-zero when pipeline commands fail (e.g., when a file doesn't exist in HEAD).
- Separate jobs for build, TestPyPI, and PyPI publishing
- Trusted publishing with OIDC tokens
- RC tags publish to TestPyPI
- Include tag annotation in GitHub releases
- ✓ All 61 tests pass
- ✓ Shell integration works for bash/zsh
- ✓ Filtering by CLI works correctly
- ✓
-Cflag compares HEAD vs staged changes - ✓ Exit codes propagate from failed pipelines
🤖 Generated with Claude Code