Release Notes
Overview
The underlying view system has gone through an almost complete rewrite (#473). This major overhaul enabled us to implement various features that weren't possible before and made most of the UI clickable.
What's new:
- Mouse-clickable UI: details panel, evolog, git remotes, bookmark remotes, and more
- Mouse wheel scrolling support across all views
- Foundation for new interactive features like target picker and revset completion box
Highlights
🎉 Which-Key Style Status Bar (#503)
The status bar now works like which-key in Emacs/Vim:
- Dynamically adjusts to window width - shows
?/morewhen space is limited - Press
?to expand and see all available keybindings - Works with stacked menus (git, bookmarks) to show context-specific help
- Press
escto collapse - Replaces the old help menu
🎯 Target Picker for Operations (#490)
Operations like rebase, new, edit, and squash now support an interactive target picker:
- Press
tto open the target picker - Select a revision or type a custom target (bookmark name, change ID, etc.)
- Press enter to execute the command
target-picker.mp4
✨ Enhanced Revset Completion (#510)
Multi-line revset completion with comprehensive function support:
- Added 16 missing revset functions:
bisect,divergent,none,subject,connected,heads,roots,reachable,tracked,untracked,conflict,file,diff,author_date,committer_date,working_copies - Fixed function signatures and renamed
diff_containstodiff_lines - Shows full completion list when history is empty
- Better visual styling and source-based completion
🔍 Backward Quick Search Navigation (#509)
Quick search now supports cycling in both directions:
- Added
quick_search_cycle_backkeybinding (default:"which isShift+')
Improvements
- Split/Restore interactive mode (#500)
- Quit now works from any view without needing to press
ESCfirst
Bug Fixes
- Preview window now updates after squash operations (#518)
- Fixed "Change ID prefix is ambiguous" error when abandoning revisions (#517)
- Preview resets to top when switching revisions (#477)
- Confirmation dialog closes immediately after restore (#508)
- Description editing works with single-line log templates (#496)
- Fixed elided revision markers rendering (#486)
- Fixed highlight rendering when inline describe is open (#485)
- Fixed search highlighting (#481)
- Prevent clicking outside window boundaries
- Cursor position only enforced with keyboard navigation, not mouse wheel
- Fixed remotes dialog height
- Fixed divergent change ID parsing
- Fixed bookmark remote filtering
- Fixed curved graph lines
- Removed extra gap above status line (#513)
- Fixed preview split border z-index (#478)
- Fixed details view rendering position (#476)
- Added left/right arrow key support (#501, #502)
jj describe -mnow handles messages starting with-(#475)- Fixed footer to show revset keybindings when active (#489)
- Preview updates when jumping through search results (#498)
What's Changed
- Introduce immediate view mode by @idursun in #473
- feat: add treefmt formatters by @doprz in #436
- revisions: fix displaycontext_renderer to render details before elided marker by @baggiiiie in #476
- preview: reset preview offset after revision change by @baggiiiie in #477
- fix preview split border and stacked menu indexes by @baggiiiie in #478
- refactor: intents by @idursun in #480
- hotfix(nix): add jjui build check and update vendor-hash by @doprz in #482
- displaycontext_renderer: fix overlay rendering over description lines by @baggiiiie in #485
- fix: set description from stdin to allow messages starting with minus by @kankri in #475
- fix: displaycontext_renderer elided revision rendering issue by @baggiiiie in #486
- revset,ui: fix ShortHelp display for revset by @baggiiiie in #489
- Nix build warning (harmless for now; use deprecated) by @bogorad in #492
- feat: add target picker to some operations (e.g. rebase) by @idursun in #490
- refactor: centralize z-index constants in render/zindex.go by @baggiiiie in #493
- Fix single line describe by @krksgbr in #496
- feat: add interactive split for files in details view by @baggiiiie in #500
- fix: add left/right keybindings in log by @lawcho in #501
- fix: pretty-print left/right keys by @lawcho in #502
- feat: enable quit keymap for different modes by @baggiiiie in #505
- fix: close restore confirmation by batching instead of sequencing by @baggiiiie in #508
- feat: add backward navigation for quick search by @baggiiiie in #509
- which-key like status (footer help) by @baggiiiie in #503
- feat: multi line revset completion by @idursun in #510
- fix(status): remove extra gap above status line during file fzf by @baggiiiie in #513
- fix(details): reload when selection changes by @baggiiiie in #517
- fix(preview): update preview window after squash operation by @baggiiiie in #518
New Contributors
- @kankri made their first contribution in #475
- @bogorad made their first contribution in #492
- @krksgbr made their first contribution in #496
- @lawcho made their first contribution in #501
Full Changelog: v0.9.10...v0.9.11