v0.1.3
Install
cargo install mandible
Or download a pre-compiled binary from the assets below. Verify with the accompanying .sha256.
This release restores critical functionality for developers using version managers and formalizes Mandible's architectural specifications based on real-world edge cases.
Toolchain Resolution & Shim Support
- Version Manager Compatibility: Restored parsing for developer tools managed by
rustup,pyenv,nvm,asdf,sdkman, andvolta. Previously, Mandible's strict execution sandboxing—which redirects$HOMEto a scratch directory—prevented these tool shims from resolving their underlying binaries. - Targeted Sandbox Exemptions: Safely bypassed this limitation by explicitly passing through specific toolchain variables (such as
RUSTUP_HOME,PYENV_ROOT, andNVM_DIR) while keeping the core$HOMEredirect intact. - Restored Coverage: Essential developer tools are fully readable again. For example,
cargonow correctly parses 12 nodes and 13 flags instead of throwing a resolution error.
Architecture & Specification Updates
- Framework Detection Constraints (Spec §7): Documented the rationale behind the ~17% implemented detection rate versus the theoretical 71% recall rate. Mandible strictly optimizes for high-precision markers over broad recall; guessing the wrong framework silently applies the wrong grammar and corrupts output, while unidentified tools safely fall back to the general engine.
- Process Containment Limits (Spec §6): Detailed the root cause of hanging coverage-sweep shards. Background processes that call
setsid(likechromedriverorvimtutor) escape their process group and avoid timeout termination. Full containment requires OS-level sandboxing, as cheaper mitigations likePR_SET_PDEATHSIGrequirepre_exec, violating the project's strict#![forbid(unsafe_code)]guarantee.
General Updates
- Crate Metadata: The
authorsfield in the manifest now explicitly names the maintainer rather than using a placeholder.