Releases: gf-labs/claude-toolbox
Releases · gf-labs/claude-toolbox
Release list
v0.8.0
[0.8.0] — 2026-07-28
Added
cli-capability-auditskill — derives a CLI's implemented command surface from its
dispatcher source (bashcasearms andif-guards, Python equality chains / argparse /
click, Go cobra), diffs it against--helpand the docs in both directions, and
publishes a capability map that records reality rather than intent. Ships two bundled
scripts (extract-surface.py,diff-surface.py), a failure-modes reference, and a map
template. No command is ever executed to introspect it;--helpis the only invocation.diff-surface.py --strict— exits 1 on findings so a trusted map can gate CI. The
default stays 0: findings are unverified candidates, not build failures.- Harness-sanity warnings in
diff-surface.py— an empty implemented set, an empty
advertised set, or zero overlap between them now warns loudly and invalidates the run.
Real drift is patchy; a total mismatch is a broken checker, not a broken codebase. tests/test_cli_capability_audit.py— 23 cases covering both parsers as units and both
CLIs end to end.
Fixed
- Dependabot now targets
develop(target-branch), not the default branch. It had been
opening action bumps againstmain, where Git Flow permits release and hotfix merges
only — merging one would leave an untagged commit onmain, putmainahead of
develop, and passcheck-manifest-tag.pyunnoticed because the manifest is untouched.
(Dependabot reads its config from the default branch, so this takes effect from this
release onward.) - Action pins bumped to
actions/checkout@v7.0.1andactions/setup-python@v7.0.0— the
bot's PRs had been open and unmerged since 2026-07-22. LIBRARY.mdregisterscli-capability-auditand counts two skills; the README points at
it as the complete-surface map, and it had been left listing one. README version badge
refreshed (it still read 0.5.1, two releases stale).
v0.7.0
[0.7.0] — 2026-07-28
Added
/tools:atlas— cross-project atlas with an adaptive render: ≤4 in-scope projects
get detail cards, more collapse to one aligned digest line each, grouped by domain.
Facets projects · sessions · memory · plans · specs · plugins · claude.md;--dir NAME|PATHanchors the lens at any subtree,--allspans every project,--project NAMEinspects one from anywhere,--full/--compactforce cards/digest,--stale
lists orphaned/unscoped keys. Built on a new_projects.pyenumeration layer./tools:pinnon-interactive flow —--yes-allruns the pin without prompts
(--savepersists proposed node upgrades + the MEMORY snapshot,--askoverrides),
and--yasis shorthand for--yes-all --save. Config-driven viaYES_ALL.scripts/stamp-git-policy.py— deterministic git-policy adoption transform: derives
per-repo CI values, renders thetemplates/git-policy/files, and dry-run-diffs
(default) or writes (--write) them into a target repo. Closes the audit's
"apply-manual" gap; thetest.ymltemplate gains an explicit Lint step.
Changed
- Project enumeration single-sourced onto
_projects.py(enumerate_projectsfor
repo-space,iter_session_dirsfor storage-space) — the hand-rolled enumeration
across collectors is gone; storage enumeration is namespace-split for orphan safety. - Current-session resolution now reads the
CLAUDE_CODE_SESSION_IDenvironment
variable instead of inferring the live session from transcript mtimes — the
freshest-file heuristic misidentified the session whenever two were open at once. - Repo is ruff-clean with a CI lint gate on
test.yml;release.ymlnow runs the
same lint+test bar before cutting a Release, and hard-fails when the pushed tag
has no matchingCHANGELOG.mdsection (previously it shipped placeholder notes). - git-policy docs clarified: the manifest↔tag sync compares versions, not commits.
Fixed
- Background jobs never claim fork titles in session naming.
_scope._reconstructcorrectly inverts the lossy project-key encoding.
v0.6.0
[0.6.0] — 2026-07-01
Added
git-guard.py— a fail-openPreToolUse(Bash) hook that denies only local, irreversible git operations (reset --hard,clean -f*,branch -D, andcheckout/restorediscards) when Claude runs them via the Bash tool. It never fires on the user's!gitcommands, which remain the unguarded escape hatch. Pairs with a new Git workflow prose rule inCLAUDE.md(branch offdevelop, ask-first) — interpretive habits stay prose, deterministic damage-prevention is the hook. This is the plugin's firstPreToolUsematcher and the layer-3 (client-side, pre-emptive) complement to the CI/CD and branch-protection layers.