Commit Graph
2 Commits
Author SHA1 Message Date
swaits 3d0ba30bfc feat: broaden picker revset to all() to expose every operable revision
Previously used jj's default revsets.log, which is intentionally narrow
for jj log's scrollback purposes (`@ | trunk() | ancestors(mutable, 2)`).
For a picker, we want every visible revision so older revs (for abandon,
rebase -d, etc.) are reachable. `--limit 1000` keeps the blast radius
bounded on huge repos; smart prefix matching keeps lookup cheap.
2026-04-29 15:58:55 -06:00
swaits ed801c80ee feat: initial implementation of jjf
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.
2026-04-29 15:58:55 -06:00