assist v0.243
Review by PR number, and an org leaderboard
Most of today was on assist review, which orchestrates two LLM reviewers (Claude and Codex), synthesises their findings, and posts them as pending line comments. The breaking change: assist review <number> used to mean SHA mode — diff a single commit and write the review files to disk without touching GitHub. I almost never used it, and the surface cost was real: a whole second pipeline (reviewSha, gatherShaContext, buildShaRequest) shadowing the main one. So I ripped SHA mode out and repurposed the positional argument: assist review <number> now runs gh pr checkout <number> first and then reviews that branch exactly as it would the current one. If the checkout fails — dirty tree, unknown number — gh’s error surfaces and the review aborts. One pipeline now, and reviewing someone else’s PR is a single command.
Two more review changes. I hit a wall reviewing a large PR: GitHub rejects gh pr diff with a 406 too_large once a PR crosses 300 files. fetchPrDiff now catches that specific error and falls back to fetching the base and head SHAs and running a local git diff base...head, so big PRs review instead of erroring out. And I added assist review --backlog, which after synthesis spawns Claude to file every finding as a single bug backlog item — one phase per finding, each named after the finding with its location, impact, and recommendation captured as tasks. It’s the natural bridge from “here are the problems” to “here’s the queue of work,” without me copying findings across by hand.
Away from review, assist github commits <org> is a new org-wide commit leaderboard: it walks every repo in an organisation over a window (default 30 days, --since to override), filters to repos with activity, and reports commit counts per repo and aggregated per committer, with --top <n> and --json. The shared GraphQL helper moved from prs/ up to shared/ since both surfaces use it now. Finally, a chunky web UI refactor: the repo selector is now shared between the backlog and sessions toolbars via a useRepoSelectionContext, instead of each view carrying its own filter row — one place to pick which repo you’re looking at, consistent across tabs.