jj absorbs the aliases its users wrote: tug, bisect run, run and fix
André Arko has published the text of his JJ Con 2026 talk on the ecosystem around jj, the version control system: https://andre.arko.net/2026/09/16/beyond-jj-config-and-tools-ecosystem/. Last year's talk was about configuring jj. This one is about what you do once you have it — and the most interesting section is the list of things that stopped needing configuration because they moved into the tool.
jj bookmark advance, short form jj b a. The community alias tug found the nearest bookmark and moved it to the nearest pushable change; that behaviour is now built in. By default it advances the bookmark to the working copy, and setting revsets.bookmark-advance-to to a pushable revset reproduces the original tug.
jj bisect run. Bisecting automatically — hand it a command, let it find the change — previously needed a wrapper script. Arko calls this a significant functionality gap against git, now closed.
jj run. Give it a script and a revset and the script runs against every change in that revset, with each change updated if files were modified. The tree stays coherent: the rest of the changes are rebased as the run proceeds.
jj fix. Superficially the same idea, deliberately not. fix touches only files that were changed, does not create a checkout per change, and hands the script a single file at a time, taking back a modified version.

What it means
An alias that many people write independently is a specification. tug existed because a common operation had no command; the fact that dozens of configs contained a version of it is exactly the evidence a maintainer needs. The healthy pattern is the one here — let the community write the workaround, watch which workarounds converge, then absorb the convergent one and leave the config knob for the variants.
run versus fix is a distinction worth stealing. One rewrites a range of changes by executing arbitrary work in a checkout; the other reformats the files a change touched, one file at a time, without ever materialising the tree. Most tools conflate these and end up slow at the common case (formatting) to stay general enough for the rare one.
And "bisect run" closing a gap against git is the honest framing of adoption. A newer version control system is not judged on its model but on whether the thing you needed at 2am is there. The list of what moved into core this year is a decent proxy for how close jj now is to that bar.