Restores `jj show` support, broken by the 0.3.0 dispatch rewrite.
`jj show` accepts its revision as a positional `[REVSET]` argument
rather than a `-r` option, which the help-driven dispatch didn't
recognize — so bare `jjf` (which defaults to `show`) errored instead
of opening the picker. A revision named as a bare positional now also
bypasses the picker, like an explicit `-r`.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Subcommand dispatch is now help-driven instead of substring-matching
"REVSET", so multi-level subcommands (`tag set`, `bookmark move`, …)
and non-`-r` revset flags (`--to`) work, and pre-supplied revset
flags bypass the picker instead of being double-injected.
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>
A TUI revision picker for jujutsu (jj). Wraps any jj subcommand with an
inline fuzzy-finder over jj log, then forwards the picked revision(s)
as -r '<id>' to the underlying jj invocation.
Features:
- Inline viewport (no full-screen alt-screen takeover)
- Smart prefix matching: typing the bold portion of a change ID jumps
to that revision instantly
- Multi-select via Tab; emitted as -r 'A|B|C' revset union
- Preflight detection of subcommands that don't accept -r
- Optional shell integration (jjf init <bash|zsh|fish|nu>) that
rewrites shell history so up-arrow recalls the resolved jj command
Hand-rolled ANSI rendering to /dev/tty; only crossterm, nucleo-matcher,
anyhow, and libc as runtime dependencies.