Skip to content

v0.47.0

Latest

Choose a tag to compare

@rtk-release-bot rtk-release-bot released this 02 Sep 07:32
34fe255

0.47.0 (2026-09-01)

Features

  • ctest: add compact output filter (c75522e)
  • ls: cap listing with tee tail hint and standard dotfile semantics (aa40853)
  • mvn: add rtk mvnd support for Maven Daemon (774465e)
  • phpt: add PHP .phpt filter for php-src run-tests.php (-99%) (e8541d1)

Bug Fixes

  • bom: degrade gracefully on unparseable Gemini settings, strip BOM on claude/gemini hook stdin and rtk json fallback (b6f354c)
  • diff: keep +/- markers at column 0 in condense_unified_diff (cf6d99d)
  • diff: measure savings against the classic diff, not a dump of both files (8495176)
  • diff: remove misleading overflow indicator from condense_unified_diff (947467e)
  • emit classic hunk headers in the diff fallback (1246ce3)
  • filters: tighten overly broad spring-boot/liquibase/ssh matching (0de9610)
  • git-diff: count one truncated line as singular (75dda6c)
  • git-diff: decode quoted paths, and read the header kind before splitting (7409cb5)
  • git-diff: emit hunk lines at column 0 so ^- anchors again (b166396)
  • git-diff: end hunks at their declared length, keep context adjacent (844d6fa)
  • git-diff: pass word diffs through, and stop guessing at path pairs (e59276e)
  • git-diff: reset hunk state on combined diffs, exempt leading context (5d4b549)
  • git-diff: slice markers as bytes, and bound a combined hunk by every parent (eac9b99)
  • git-diff: stop dropping hunk content that starts with ++ or -- (60ec79f)
  • grep: free -m for GNU --max-count instead of rtk --max (d9a5893)
  • grep: stop -l and -t shadowing native grep flags (16228b7)
  • grep: stop -l/-t shadowing native grep flags (4ea0555)
  • hooks,json: hermetic gemini BOM test, restore serde diagnostics, honest init summary, zero-copy fallback (ed8b0eb)
  • hooks: honor CLAUDE_CONFIG_DIR when loading permission rules (196780d)
  • hooks: honour exclude_commands for head and tail (7dc503d)
  • hooks: keep exclude_commands honoured under routable wrappers (2eed6de)
  • hooks: match exclude_commands against the peeled command form (e533c40)
  • hooks: strip the BOM on Mistral Vibe hook stdin too (ac3389a)
  • init,utils: propagate Gemini settings parse errors, add from_json_str wrapper (dd867b2)
  • json,deps: tolerate UTF-8 BOM at the remaining JSON parse sites (7e7be16)
  • json,deps: tolerate UTF-8 BOM at the three remaining JSON parse sites (a39a872)
  • ls: avoid underflow in verbose reduction stat (2f75c7a)
  • ls: record dot noise dirs under -A and track real args (a7e7329)
  • render a real diff instead of dumping both files for modified lines (e4b9705)
  • tsc: count global diagnostics and keep the failure head (6232c37)
  • tsc: handle pretty diagnostics (a93d63b)
  • tsc: strip escapes before the blank filter and bound the failure dump (1906cb2)
  • grep: rtk grep --file-type and its -t short are removed. The option never reached the engine, so it was a silent no-op; -t now flows through, which means rtk rg -t rust filters by type while rtk grep -t rust returns grep's own invalid option -- 't'. -l and -m under rtk grep are likewise the native grep flags now rather than rtk's --max-len and --max.

Performance Improvements

  • hook: avoid Pi package barrel import (322db4d)

Miscellaneous Chores

Code Refactoring

  • grep: trim comments and align the siblings of the flag change (eb3f814)