Skip to content

v1.0.1

Choose a tag to compare

@github-actions github-actions released this 04 Aug 15:30
· 11 commits to main since this release

Fixed

  • Agent selector corrupts after terminal wrapping: Long agent URLs could wrap on narrow terminals, while the interactive redraw assumed every option consumed one row. URLs are now truncated to the current terminal width so redraw height stays correct.
  • Agent selector corrupts on terminal events: The selector reused a fixed number of cursor-up operations between frames; terminal resize or focus events could leave stale frames on screen. It now renders in an alternate screen and clears each frame.
  • Agent selector columns drift in raw mode: Raw terminal mode disables automatic LF-to-CRLF conversion, so option rows began at the previous row's ending column. Selector rows now explicitly return to column zero.
  • UI progress bar splits multi-word agent names: Progress::stop split status messages on the first space, causing multi-word agent labels (Claude Code, GitHub Copilot, Devin / Cascade, Warp / Oz) to wrap after the progress bar (✔ Claude [████...] 100% Code). Added parse_label_and_tail in src/util/ui.rs which matches against known agent/tool labels (sorted longest-first) before splitting. Unit tests added. (@jondmarien in #23)
  • Doctor probe misreports managed hooks as missing: MANAGED_HOOKS in src/util/probe.rs did not list codex-perm-hook or context-mode-hook, causing toksave doctor to treat them as unmanaged external binaries and report "binary not found". Both now registered. (@jondmarien in #23)
  • Caveman version mismatch after update: installed_version() always returned the hardcoded embedded fallback 1.9.1, causing toksave doctor to perpetually report an upgrade available. Now writes the fetched release version to cache_dir()/caveman.version on install and reads it first. Bumped embedded CAVEMAN_SKILL_VERSION to 1.10.0. (@jondmarien in #23)
  • Legacy Bun binary paths persist across upgrades: Old /$bunfs/root/toksave virtual paths in ~/.claude/settings.json and ~/.codex/hooks.json persisted because rewiring logic was not stripping stale paths. Claude override_claude_rtk_hook now replaces any existing rtk-hook claude command (including legacy paths) with the active binary path. Codex RTK wiring uses merge_hook_group for deduplication. (@jondmarien in #23)
  • Codex unwire(Principles) leaves orphan PermissionRequest hook: wire(Principles) added a codex-perm-hook to PermissionRequest, but unwire(Principles) only called remove_owner without cleaning the hook. Now removes managed PermissionRequest entries and prunes empty hooks object.

Changed

  • Status coloring in doctor and update: all tools wired and up-to-date versions now print in green; not installed / not on PATH in red; outdated versions in yellow. Consistent across both commands. (@jondmarien in #23)
  • Generic merge_hook_group / remove_hook_group: Refactored merge_pretool_use and remove_pretool_use in src/util/json.rs to delegate to generic merge_hook_group / remove_hook_group that work with any hook key (PreToolUse, PermissionRequest, etc.). Backward-compatible — existing callers unchanged.
  • CI fail-fast: false: .github/workflows/ci.yml matrix strategy no longer cancels sibling OS jobs on single-job failures. (@jondmarien in #23)

Added

  • Wiring matrix heatmap: Added scripts/generate_wiring_heatmap.py (stdlib-only) that generates color-coded SVG heatmaps (assets/wiring-matrix-dark.svg, assets/wiring-matrix-light.svg) of the tool x agent wiring matrix. README updated with <picture> element for light/dark theme support. (@jondmarien in #23)

Contributors

Thanks to community contributor:

  • @jondmarien: Fix UI label splitting, doctor probe hooks, Caveman update detection, legacy path cleanup, status coloring, CI matrix, wiring heatmap (#23)