Release Notes
Another release with small improvements and bug fixes. Thanks to all contributors!
🎉 New Features
Custom Commands & Lua API Enhancements
-
Custom Commands with Sequence Keys (#420)
- Added
key_sequenceproperty allowing custom commands to be invoked with multiple key presses in sequence - Added
descproperty for command descriptions - Introduced sequence overlay UI showing available key sequences when first key is pressed
- Example:
key_sequence = ["w", "b", "l"]
- Added
-
Lua API: Choose Method and UI (#427) (#442)
- New
choose()function for interactive selection prompts in Lua scripts - New
input()function to prompt users for text input with customizable title and prompt - New
split_lines()function for text processing
- New
-
Lua API: Await on Operation Results (#422)
start_inline_describe()now returns boolean indicating if operation was applied or cancelled- Enables conditional command execution based on user actions
- Fixes #310
-
Lua API: Interactive Commands (commit 8b257263)
- Added
jj_interactiveLua function for interactive jj command execution
- Added
Navigation & UI Improvements
-
Ace Jump for Operations (#445)
- Pressing 'f' in set_parents/duplicate/rebase/squash modes now triggers ace jump
- After jump completes, returns to the original operation mode instead of normal mode
- Closes #394
-
Preview Width Variable (#452)
- Added
$preview_widthplaceholder variable for preview commands - Exposes actual view width (in columns) to enable tools like delta to use
--side-by-sidecorrectly - Width updates dynamically when preview pane is resized
- Similar to fzf's
$FZF_PREVIEW_COLUMNS
- Added
-
Configurable Flash Message Display Time (#456)
- New config key:
ui.flash_message_display_seconds(default: 4) - Special value
0means messages display until manually dismissed - Fixes #455
- New config key:
-
Page Up/Down Key Configuration (#437)
- ScrollUp/Down keys now registered in config instead of hardcoded
- Keys exposed to configuration for customization
- Fixes #360
SSH & Authentication
- SSH Askpass Support (#423)
- New
[ssh] hijack_askpasssetting to prompt for SSH passphrases/PINs within jjui - Works on Linux and macOS
- Properly handles prompt overriding and cancellation
- Fixes #100
- New
🐛 Bug Fixes
-
Exec Command History (#458)
- Fixed issue where selected command history wasn't applied in exec mode
- Input value now properly updated when selecting from fuzzy/regex suggestions
- Selected commands correctly saved to history
-
Menu Pagination Display (#446)
- Fixed incorrect
%d/%dpagination display - Height now calculated before pagination render
- Added tab/shift+tab to short help menu
- Fixes #444
- Fixed incorrect
-
Flash Message Width (#432)
- Added maxWidth (50% of screen) to flash message rendering
- Messages now properly line-wrap instead of extending beyond window width
-
Operation Log Refresh (#431)
- Operation log now returns Refresh and SelectionChanged messages upon closing
- Fixes #430
-
Custom Commands List Sorting (commit 3fa9783a)
- Fixed custom commands list to use stable sort
- Fixes #424
-
JJ Error Pass-through (#421)
- jjui now properly passes through stderr from jj commands
- Error messages are more informative and show actual jj errors
-
Navigation Message Display (commit 94a4a874)
- Navigation messages now only shown for paged scrolls
What's Changed
- main: pass through jj error by @baggiiiie in #421
- feat(lua): add ability to await on operation results (cancelled/applied) by @idursun in #422
- oplog: return Refresh and SelectionChanged upon oplog closing by @baggiiiie in #431
- feat(nix): add comprehensive nix flake by @doprz in #426
- Add option to hijack SSH Askpass to prompt for passphrase/pin by @oliverpool in #423
- feat(lua): add choose method and ui by @idursun in #427
- flash: add maxWidth to flash msg rendering by @baggiiiie in #432
- keys: add pageup/down to keys config by @baggiiiie in #437
- chore(github): Add Adda0 as an automatic reviewer for Nix-related changes by @Adda0 in #440
- feat: add .editorconfig by @doprz in #434
- Add input and log to custom_commands API by @ArnaudBger in #442
- oplog,list: refactor scrolling with Scrollable/StreamableList interface by @baggiiiie in #429
- menu: calculate height before pagination render by @baggiiiie in #446
- operations: enable ace jump for set_parents/duplicate/rebase/squash by @baggiiiie in #445
- feat: make flash message display time configurable by @living180 in #456
- feat: add $width variable for preview commands by @pablospe in #452
- status: fix exec command history not applied by @baggiiiie in #458
New Contributors
- @doprz made their first contribution in #426
- @oliverpool made their first contribution in #423
- @living180 made their first contribution in #456
- @pablospe made their first contribution in #452
Full Changelog: v0.9.8...v0.9.9