Skip to content

v1.7.0

Choose a tag to compare

@github-actions github-actions released this 30 Jun 21:45
0394fb6

herdr-file-viewer v1.7.0

The audit-driven Optimisations release: accessibility, UX papercuts, test-suite hardening, and a
large internal refactor — all behavior-compatible with v1.6.0.

Added

  • Keyboard tree horizontal scroll — H / L (Shift+h/l): scroll the tree pane sideways for
    long or deeply-nested rows, mirroring the content pane's /. Closes the last mouse-only gap
    (AC-18, keyboard-first). Lowercase h/l still collapse/expand.
  • A ? help hint on the content pane's bottom border, so the help overlay is discoverable
    without guessing.
  • Empty-state guidance for blank panes (Directory — select a file to view, No files) instead
    of a blank void.

Changed

  • Non-color accessibility cues alongside color-only signals (survive a colorblind palette or a
    non-default theme): a glyph on dirty directories, a marker on the active help tab, a
    (current) label on the current worktree, and a REVERSED|BOLD current-search-match.
  • Cleaner failure messages: renderer-fallback notices name the missing tool and point to
    docs/renderers.md instead of leaking a raw OS error; editor hand-off now distinguishes a launch
    failure from a non-zero editor exit.
  • Docs: git documented as a runtime requirement; docs/renderers.md corrected (bundled glow
    palette; only delta/bat are cargo-installable); ARCHITECTURE.md updated for the new proc
    module and the controller/ package layout.
  • Internal: shared proc::wait_bounded subprocess reaper; controller.rs split from one
    3,256-line god-module into a controller/ package
    (core + mouse/help/finder/picker/
    infile/git_apply submodules), with the open overlay collapsed into a single Modal enum so
    "at most one modal open" is type-enforced. Behavior-preserving.

Fixed

  • No stale content under a new title while an off-thread render is in flight — the pane shows a
    Rendering… placeholder and the title + body switch to the new file together.

Test/CI hardening

  • Perf-budget stopwatch tests gated behind a perf cargo feature; search_perf/index_perf
    rewritten as relative-scaling asserts that catch O(n²) without flaking on a loaded runner; pty e2e
    tests switched to wait-for-content. A real read-only-invariant test routing every intent through
    the handler, a modal×intent guard matrix, table-driven git-parser tests, and an OSC-52 ingestion
    test.

Full changelog: see CHANGELOG.md.
No breaking changes; same install path.