| name | aphrodite-upgrade-breakpoints |
| description | Cargo upgrade breakpoints for aphrodite + headroom - required by the standalone plugin repo and release workflow. |
| version | 1.0.1 |
Aphrodite Upgrade Breakpoints
Checklist of things that break silently when upgrading cargo deps or
refactoring.
Rebuild Path Resolution
_hooks/rebuild.py lives at plugins/aphrodite/_hooks/rebuild.py. Counting
os.path.dirname() calls is fragile. Use _find_cargo_toml() which walks up
the tree:
def _find_cargo_toml():
d = os.path.dirname(os.path.abspath(__file__))
for _ in range(6):
if os.path.isfile(os.path.join(d, "Cargo.toml")):
return d
parent = os.path.dirname(d)
if parent == d: break
d = parent
return None
--version Flag
Rust binary --version only works if handled BEFORE config loading. When
aphrodite.toml exists, clap's Cli::parse() (with #[command(version)]) is
never called. Add early check in main():
let args: Vec<String> = std::env::args().collect();
if args.iter().any(|a| a == "--version" || a == "-V") {
println!("aphrodite v{}", env!("CARGO_PKG_VERSION"));
return Ok(());
}
Standalone Plugin Repo
End users install from PlayForm/Aphrodite-Hermes - NO binary committed (74
files, 317KB). Binary auto-downloaded from GitHub Releases on first on_start()
via _ensure_binary(). The _rebuild_handler checks for Cargo.toml; if absent
it re-downloads from releases.
Previous Breakpoints
- axum 0.8 wildcards in route patterns
- tracing
DisplayValue<T> requiring fmt::Display - PathBuf uses
.display() not % format
_headroom_context import from .health NOT .env (silent plugin kill)