Picker now renders jj's real graph (merge connectors and all). Cursor and filter skip decorative connector rows; hint row drops trailing key/label pairs to fit a single line on narrow terminals; cursor arrow glyphs changed to ●──▶. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
3.5 KiB
3.5 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.2.0 — 2026-04-29
Picker now renders jj's real graph (merge connectors and all), with the cursor/filter aware of decorative rows.
Changed
- Graph rendering now uses jj's native
--graphoutput instead of a custom one-row-per-commit reconstruction. Merge connectors (├─┬─╮,├─╯,╰─╯) appear exactly asjj logdraws them, so the picker is a 1:1 visual match for the real log. - Cursor row arrow glyphs changed from
├──►to●──▶so the selection arrow doesn't visually clash with the graph chrome. - Hint row at the bottom of the picker drops trailing key/label pairs
(
esc quit,^U clear, …) until it fits on one row. Previously a narrow terminal would wrap the hint and push the search bar off the top of the screen.
Added
- Connector / decorative graph rows (
├─╮,╰─╯,~, …) are kept in the picker for visual fidelity withjj log. Cursor navigation (arrows, Page{Up,Down}, Home, End, Ctrl-N/P/J/K, Ctrl-A/E) skips over them; selection is silently ignored on connector rows. - Filtering (any non-empty query) excludes connector rows, since they
can't match a query and a stray
├─╮between filtered hits would carry no useful information.
Fixed
- Long descriptions no longer split across rows when the user has
ui.log-word-wrap = trueconfigured globally — the internaljj loginvocation now forcesui.log-word-wrap=falseso a single commit always renders on a single picker row.
0.1.0 — 2026-04-29
Initial release.
Added
- Fuzzy picker over
jj logfor any jj subcommand that accepts-r. - Smart prefix matching: typing the bold-highlighted portion of a change ID jumps to that revision instantly. Falls back to nucleo fuzzy matching against description text.
- Multi-select via
Tab; selections joined into-r 'A|B|C'revset union. - Two-column layout (when terminal ≥ 80 cols): picker on left, live
jj show --summarypreview of the cursor row on right, cached per revision. - Live command preview row showing the exact
jj …invocation that Enter will run. - Preflight check via
jj <sub> --help: subcommands that don't accept revisions (status,log, etc.) are rejected upfront with a friendly message. --ignore-working-copyon the internaljj logcall so the picker doesn't race with prompt/editor auto-snapshot integrations.- Shell integration via
jjf init <bash|zsh|fish|nu>:- rewrites shell history so up-arrow recalls the resolved
jj …command rather than thejjf …invocation, - drops the
jjf …entry on cancel/error so cancelled invocations don't pollute history, - defaults
jjf(no args) tojjf show, - passes meta-commands and bare flags through to the binary directly.
- rewrites shell history so up-arrow recalls the resolved
- Vim-style and emacs-style navigation:
↑↓,Ctrl-N/P,Ctrl-J/K,PageUp/PageDown,Home/End,Ctrl-A/E. - Light-terminal detection via
COLORFGBG: cursor-row highlight uses reverse video on light themes (where the dark gray bg is invisible). - Synchronized output (DEC mode 2026) around each redraw to eliminate tearing on Kitty / WezTerm / foot / recent iTerm.