Changelog

All notable changes to grüt, following Keep a Changelog and Semantic Versioning.

Unreleased

Added

  • Inline editor mode — press e in the preview panel to edit files directly, Ctrl+S to save, Escape to discard
  • Branch diff filter — g cycles through three modes: all files → git changed → branch diff
  • Lazy-loading pagination for GitHub tabs (issues, PRs, Actions, releases)
  • Ctrl+C copies selected text in preview instead of quitting
  • Text selection in preview pane — click+drag, double-click, y to copy
  • Checkout with dirty-tree detection and automatic stash-and-switch
  • Worktree double-click opens the selected worktree directory
  • --reset-welcome flag to re-show the welcome screen on next launch
  • Right-click context menu with action picker for all panels
  • Configurable click actions with mouse support for all panels
  • Settings dialog overlay for preview position (comma key)
  • Mouse drag resize on split borders
  • Vertical resize keybindings (ctrl+up/ctrl+down)
  • Configurable preview position cycling (ctrl+b p)
  • Tab bar with canonical 1–5 preset ordering
  • Mage build system with preflight checks (mage install, mage preflight)
  • 22 security tests covering MCP tool injection, path traversal, and extension safety

Changed

  • Go toolchain upgraded from 1.26.1 to 1.26.3 (7 stdlib CVE fixes)
  • Bubble Tea v2.0.6, Lipgloss v2.0.3, x/net v0.54.0
  • Preflight gate expanded from 11 to 14 checks
  • Git preset simplified to 2-pane layout (filetree + preview)
  • Panel borders use NormalBorder (square corners, no title)

Fixed

  • Branch name in status bar no longer reverts after checkout
  • Double-click first-use flow survives async modal delay
  • Eliminate Windows clipboard command injection (CWE-78)
  • Input validation for OpenInEditor and OpenInBrowser
  • Modal mouse click and Tab cycling support
  • Bottom border rendering and clean footer layout
  • Preview panel content wrapping with truecolor ANSI codes
  • Folders no longer auto-expand on startup

Security

  • Block access to .git/, .env, *.pem, *.key via MCP and AI chat
  • Reject credential-embedded URLs in browser validation
  • Block Windows UNC paths and reserved device names in MCP PathJail
  • Cap diff line length at 10,000 characters
  • Propagate Close errors in MCP file tools

Performance

  • Bounded LRU caches, goroutine leak fix, agent auto-cleanup
  • Gitstatus render optimization with dirty flag and style cache
  • Struct field reordering eliminating 800+ bytes of padding across 70+ types
  • Gitdiff slice reuse: −39% sec/op (side-by-side), −16% B/op (inline)
  • Render loop: strings.Builder replaces string concat, ~196 fewer allocs/frame
  • Added --pprof, --cpu-profile, --mem-profile profiling flags

0.1.0

Added

  • Terminal file explorer with Bubble Tea v2
  • Git integration (status, diff, log, branches, stash, conflicts)
  • 5 preset layouts (Explorer, Git, Review, Agent, Full)
  • Syntax highlighting with Chroma
  • Nerd Font icon support
  • Mouse click navigation
  • Fuzzy finder for files and commands
  • Bookmarks panel
  • Help overlay
  • Split panel management (horizontal/vertical/close/zoom)
  • Tab management with presets
  • TOML-based keybinding configuration
  • Theme system with Dracula palette