Skip to content

v0.1.7

Choose a tag to compare

@github-actions github-actions released this 08 Aug 19:37
· 9 commits to main since this release
v0.1.7
cfc1837

Install

cargo install mandible

Or download a pre-compiled binary from the assets below. Verify with the accompanying .sha256.


This release introduces responsive table layouts for narrow terminals and completely eliminates sandbox path leakage in tool documentation, ensuring extracted defaults reflect expected environment variables rather than ephemeral test directories.

Sandbox Path Sanitization & Environment Isolation

  • Dynamic Path Masking: Tools outputting environment-derived defaults (e.g., docker --help printing its config path) will no longer leak Mandible's ephemeral sandbox paths (like /tmp/mandible-exec-L3saJ8/.docker). At the execution boundary, these scratch paths are now dynamically masked back to their source variables (e.g., $HOME/.docker). This keeps documentation readable and captured fixtures independent of the machine that generated them.
  • Symlink & Resolution Awareness: Paths are masked using both logical and canonicalized spellings. This ensures correct masking even when a probed tool resolves its own working directory (e.g., macOS $TMPDIR resolving from /var to /private/var).
  • Strict Variable Isolation: Each redirected variable (HOME, TMPDIR, XDG_*) now receives its own dedicated scratch subdirectory. Previously, they shared a single directory, creating an impossible filesystem state where writing to a cache directory and reading from a home directory resolved to the same file. This isolation also serves as the foundation enabling the dynamic path masking above.

Responsive UI & Table Layouts

  • Invariant Table Alignment: The flag description column is now strictly aligned across the entire list. Previously, exceptionally wide flags pushed the column boundary for themselves, creating ragged prose and causing spelling and value placeholders (e.g., --log-level string) to visually collapse into single tokens. Now, outlier wide flags simply hang their descriptions on the next line.
  • Narrow Terminal Stacking: Below a usable table width, parameter lists now automatically stack—placing the flag spelling on the first line with the description indented underneath. This mirrors standard CLI help behavior and prevents severe line-wrapping artifacts (such as a six-word description breaking across six lines).

Internal Tooling

  • PTY Rendering Tests: Restored scripts/pty_screenshot.py to render the TUI through a genuine pseudo-terminal. This debugging tool caught both of the UI layout defects addressed in this release, proving its value over the standard TestBackend suite which reported green throughout.