v1.0.2
·
1431 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
Patch release: per-project install routing, aelf doctor settings
linter, and CI guardrails for release docs. Closes the v1.0.1 gap
where one machine couldn't cleanly route per-project venv hooks
alongside a global pipx install, and the README roadmap drifted out
of sync minutes after the wheel was on PyPI.
Added
aelf doctor: scan user-scope and project-scope Claude Code
settings.jsonfor hook + statusline commands whose program token
doesn't resolve. Catches dangling absolute paths, bare names not on
$PATH, and missing scripts underbash /…interpreter wrappers.
Exits1on any broken finding so it can gate CI (#81).staging-gate.ymlrelease-docs-checkjob: when a PR bumps
pyproject.tomlversion, enforceCHANGELOG.mdhas a matching
## [X.Y.Z]section + compare-link footnote, and thatREADME.md
has no roadmap row marking the released version asnext/
planned. No-op on non-release PRs (#80).post-release-docs-issue.yml: onrelease.published, opens a
tracking issuedocs sweep for vX.Y.Zwith a per-doc checklist
for the second-order docs the gate can't verify automatically
(RELEASING.md test counts, ROADMAP.md narrative, etc.) (#80).
Changed
aelf setupno longer requires--scope. Default is auto-detect:
project(writes<cwd>/.claude/settings.json) whencwd/.venv
matches the active interpreter'ssys.prefix, elseuser(writes
~/.claude/settings.json). Explicit--scopestill wins (#81).aelf setup --commanddefaults to an absolute path: project scope
-> the active venv'saelf-hook; user scope -> the first
aelf-hookon$PATH(typically apipx-installed
~/.local/bin/aelf-hook). Lets one machine route per-project venvs
to their own hook AND fall back to a global pipx install outside
any project, without bare-name$PATHcollisions (#81).aelf setupnow silently removes legacy dangling
/usr/local/bin/aelf{,-hook}symlinks if their target no longer
exists. Real files and live symlinks are never touched (#81).aelf unsetupdefaults to basename-match cleanup (every entry
whose program basename isaelf-hook), so an install written with
the new auto-resolved absolute path can be torn down by bare
aelf unsetupwithout specifying the path (#81).