Aphrodite/v0.9.5
·
17 commits
to Current
since this release
Aphrodite v0.9.5 💋 Plugin v1.62.63
Summary
Critical bug fixes from Python→Rust migration audit — hooks were no-ops,
context engine was broken, download.sh used wrong version, test assertion failed.
Changes
- fix(hooks): Hook dispatch was no-op — all 5 hooks registered as
lambda: None.
Now dispatch to Rust dylib viaaphrodite_hermes_call_hookwith ctypes setup. - fix(context-engine):
context_engine_pre_llmdispatched to tool registry
but was missing fromtools.rs→ returned{"error": "unknown tool"}silently.
Added handler that callsaphrodite::hooks::pre_llm_call. - fix(download.sh): Auto-detected version from
plugin.yaml(1.62.62) but
GitHub releases use crate version (0.9.4) → download 404. Now reads from
crates/aphrodite/Cargo.tomlfirst. - fix(test):
test_version_is_semverfailed —aphrodite_hermes_version()
returns JSON{"version":"0.1.1"}but test checkedstarts_with("0.").
Now parses JSON before assertion. - docs: Restored comprehensive README (867→847 lines) — deduped Migration
section into Architecture.
Infrastructure
- Build: ✅ cargo build --release
- Tests: ✅ 6/6 aphrodite-hermes
- Audit methodology: 9-step systematic approach documented in
aphrodite-dev-workflow/references/codebase-audit-methodology.md
Methodology
Discovered via systematic 9-step audit:
- Git history scan (50 commits)
- Deleted file audit (git diff --diff-filter=D)
- Reference cross-check (rg for dangling refs)
- C ABI surface comparison (before/after extern fn list)
- Test execution (cargo test)
- Runtime code path analysis (trace hook→handler→dispatch)
- Cross-system version sync (Cargo.toml vs plugin.yaml vs badges)
- Script dry-run testing (bash download.sh)
- Dead code / orphan path detection (dispatch target existence)
Links
- Full Changelog: Aphrodite/v0.9.4...Aphrodite/v0.9.5