Skip to content

swaits/bshelper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

bshelper

A tiny TUI for reporting good / bad / skip / abort verdicts during a manual bisect.

Designed for jj bisect run, but works equally well with git bisect run since both use the same exit-code contract.

Why

jj bisect run (and git bisect run) hand verdicts back through the process exit code: 0, 1, 125, 127. For automated tests that's fine, but for manual bisects you end up typing exit 125 and remembering which code is which. bshelper replaces that with a small modal picker that says the words out loud.

                    ┌─ bshelper · jj ─────────────────────────────────┐
                    │                                                 │
                    │  Commit  k7q4mzpw  78fa1c2b                     │
                    │  Author  Steve Waits <steve@waits.net>          │
                    │  Date    2026-04-29 14:22                       │
                    │                                                 │
                    │  Refactor parser to remove redundant clones     │
                    │  ─────────────────────────────────────────────  │
                    │                                                 │
                    │       GOOD   build / test passed                │
                    │       BAD    build / test failed                │
                    │   ▶   SKIP   can't tell — mark indecisive       │
                    │       ABORT  stop the bisection now             │
                    │                                                 │
                    │  ─────────────────────────────────────────────  │
                    │      ↑/k ↓/j navigate · Enter commits: SKIP     │
                    └─────────────────────────────────────────────────┘

Install

cargo install bshelper

Use

With Jujutsu (preferred):

jj bisect run --range 'a..b' -- bshelper

With Git:

git bisect start <bad> <good>
git bisect run bshelper

bshelper detects the VCS at runtime: jj first, git as a fallback. The selected verdict is reported via the process exit code so the parent bisect run keeps walking the history.

Verdicts

Verdict Exit Meaning
GOOD 0 build / test passed
BAD 1 build / test failed
SKIP 125 can't tell — mark indecisive
ABORT 127 stop the bisection now

These match the git bisect run / jj bisect run contract exactly.

Keys

Key Action
/ k move highlight up
/ j move highlight down
Enter commit the highlight

The default highlight is SKIP — a stray Enter wastes a step but never poisons the bisect. There is no second escape hatch: to abort, navigate to ABORT and press Enter.

License

MIT — see LICENSE.

About

Friendly TUI for reporting good / bad / skip / abort verdicts during jj bisect run (works with git bisect run too).

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages