Skip to content

v0.1.6

Choose a tag to compare

@github-actions github-actions released this 08 Aug 03:05
· 11 commits to main since this release
v0.1.6
6352172

Install

cargo install mandible

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


This release fundamentally overhauls the re-extraction (r) workflow, addressing critical concurrency defects reported in [#6](#6) and ensuring the UI retains your exact context across refreshes.

Stateful Re-extraction

  • Context Retention: Pressing r to re-extract no longer rebuilds the application state from scratch. Your expanded nodes, selection, scroll position, search filter, and view mode are all preserved. The selection is intelligently restored by path rather than row index, accommodating changes in the underlying tree structure.
  • Root Fill Restoration: Fixed a bug where a refresh left the detail pane entirely empty. The root fill is now properly re-queued to start the tree walk immediately, removing the need to manually trigger an expansion to force an update.

Concurrency & Performance Fixes

A series of shared architectural defects were resolved surrounding how the event loop handles a refreshed state:

  • Input Buffer Clearing: Holding r on a slow tool no longer queues up multiple synchronous re-extractions. Because extraction runs on the UI thread, key auto-repeat previously filled the input buffer with blind events that continuously re-froze the screen. Input arriving during this blocking operation is now explicitly discarded.
  • Non-Blocking Cascade Abandonment: Refreshing the tree now safely orphans previous background warming cascades using generation counters via Warmer::reset. Previously, dropping the rayon::ThreadPool forced the UI to wait for running jobs to finish, freezing the screen for the exact duration of the abandoned work.
  • Warming Budget Reset: The MAX_WARMED_NODES bounding counter now correctly resets per generation. Previously, this counter was monotonic across refreshes, meaning each r consumed a non-replenishing budget until background warming silently stopped working for the rest of the session.

UI Discoverability

  • Footer Visibility: The r (re-extract) key binding is now explicitly displayed in the status footer.
  • Help Pinning: The ? help hint is now permanently pinned alongside ^C quit. On narrow terminals, this guarantees the most critical discoverability hint is never pushed off-screen by other status text.