Every commit scored for change-risk against this repo's own history, so 'elevated' means elevated here rather than on some global curve.
Needs review
17 commits sit in this repo's top risk tercile, which is 34% of the 50scored. The cut is drawn against this codebase's own history rather than a global curve, so a quiet repo still fills its top band, and here it starts at 8.3 out of 10. What pushes a commit up is size and spread together: a large change confined to one area scores below a smaller one scattered across a dozen files.
Commit categories over time, read off the subject line. Fixes carry the accent because that is the series this chart exists to show.
How this repo's commit mix shifts over time.
Ranked by change-risk, highest first. Priority is a tercile of this repo's own distribution, so a quiet repo still fills its top band.
| # | Commit | Author | When | Lines | Risk | Top driver |
|---|---|---|---|---|---|---|
| 1 | 931a3445Lupin 0.1.1: Claude Code, on any model | InkJazz | 1w ago | +35.6K -0 | 99%Elevated | more lines added than baseline |
| 2 | ff66fd32feat(tui): add provider onboarding | InkJazz | 3d ago | +694 -28 | 97%Elevated | more lines added than baseline |
| 3 | b04b2753docs: plan TUI-native onboarding | InkJazz | 3d ago | +517 -0 | 93%Elevated | more lines added than baseline |
| 4 | b2a1b5e1feat(cli): lupin update updates everything, agents --wire writes the frontmatter | InkJazz | 3d ago | +552 -10 | 93%Elevated | more lines added than baseline |
| 5 | 1bd92176feat(agents): the agents table routes each subagent type where it is aimed | InkJazz | 3d ago | +614 -9 | 93%Elevated | more lines added than baseline |
| 6 | 9e1169f6feat(tui): add onboarding control client | InkJazz | 3d ago | +351 -18 | 89%Elevated | more lines added than baseline |
| 7 | 3e2268a5fix(update): release Windows package locks | InkJazz | 2d ago | +600 -74 | 85%Elevated | more lines added than baseline |
| 8 | 48d9898efeat(hub): bootstrap TUI without config | InkJazz | 3d ago | +296 -19 | 85%Elevated | more lines added than baseline |
| 9 | 386eb22dfeat(tui): agents mode aims the per-subagent routes from the dashboard | InkJazz | 3d ago | +281 -8 | 85%Elevated | more lines added than baseline |
| 10 | 16e74038fix(tui): preserve onboarding catalogue | InkJazz | 3d ago | +220 -47 | 79%Elevated | more lines added than baseline |
| 11 | 0ec0353dfeat(control): add provider setup routes | InkJazz | 3d ago | +257 -54 | 79%Elevated | more lines added than baseline |
| 12 | 8e71b24cfeat(quirks): editRetryHint answers a rejected edit once (ADR-45) | InkJazz | 6d ago | +353 -11 | 79%Elevated | more lines added than baseline |
| 13 | e705c094docs: add guided onboarding tutorial | InkJazz | 2d ago | +198 -47 | 74%Elevated | more lines added than baseline |
| 14 | 824d052bfix(onboarding): close final review gaps | InkJazz | 2d ago | +228 -32 | 74%Elevated | more lines added than baseline |
| 15 | 8770db13fix(hub): verify bootstrap daemon identity | InkJazz | 3d ago | +152 -15 | 71%Elevated | more lines added than baseline |
| 16 | 37cbe176fix(tui): allow quitting delayed success | InkJazz | 3d ago | +131 -19 | 68%Elevated | more lines added than baseline |
| 17 | ce14a1bafix(stream): a cut stream is a failure, not an end_turn (ADR-44) | InkJazz | 6d ago | +167 -24 | 68%Elevated | more lines added than baseline |
| 18 | 9ac2879dfix(credentials): the split-brain tells the truth, with a marker (ADR-43) | InkJazz | 6d ago | +173 -11 | 65%Typical | more lines added than baseline |
| 19 | 13b3b371fix(daemon): reject bootstrap identity conflicts | InkJazz | 3d ago | +114 -5 | 63%Typical | more lines added than baseline |
| 20 | 49a336e1docs(agents): agent routes designed and specced from the wire facts (ADR-47) | InkJazz | 3d ago | +99 -0 | 61%Typical | more lines added than baseline |
| 21 | 1967c6f6fix(daemon): reconcile bootstrap config before ready | InkJazz | 3d ago | +69 -14 | 58%Typical | more lines added than baseline |
| 22 | 984cc429docs: design the TUI-native onboarding fix (add-provider screen) | InkJazz | 3d ago | +71 -0 | 58%Typical | more lines added than baseline |
| 23 | b82a0f18fix(credentials): a refused keychain write no longer kills the read | InkJazz | 1w ago | +57 -2 | 55%Typical | more lines added than baseline |
| 24 | 9d2bd97fLupin 0.2.3: lupin update also fixes a stale sidecar on an already-latest package | InkJazz | 3d ago | +84 -17 | 53%Typical | more lines added than baseline |
| 25 | 4a3acb9cLupin 0.2.2: one command keeps everything current, wire included | InkJazz | 3d ago | +51 -12 | 50%Typical | more lines added than baseline |
| 26 | 198b49a9feat(doctor): count the turns editRetryHint fired on | InkJazz | 6d ago | +47 -1 | 50%Typical | more lines added than baseline |
| 27 | 1ae8cb1bchore: prepare 0.2.4 release | InkJazz | 2d ago | +53 -5 | 46%Typical | more lines added than baseline |
| 28 | 92f534a6Lupin 0.2.1: mix subagents with total control | InkJazz | 3d ago | +52 -9 | 46%Typical | more lines added than baseline |
| 29 | 1bb0d670feat(tui): the sidecar prints the three markers it was dropping | InkJazz | 6d ago | +57 -2 | 43%Typical | more lines added than baseline |
| 30 | 955fbb41fix(control): resolve catalog OAuth ids | InkJazz | 3d ago | +46 -10 | 41%Typical | more lines added than baseline |
| 31 | dc22615cfix(doctor): terminal_reason voids the run on its own, subtype reads last | InkJazz | 6d ago | +37 -6 | 39%Typical | more lines added than baseline |
| 32 | 734b2153test(ci): await lifecycle fixtures | InkJazz | 2d ago | +27 -18 | 36%Typical | more lines added than baseline |
| 33 | 44a4d83ffeat(doctor): the report names the configured quirks, not just the fired ones | InkJazz | 6d ago | +34 -0 | 36%Typical | more lines added than baseline |
| 34 | 8421eda3docs: the credential split-brain, and a lockfile that had drifted | InkJazz | 1w ago | +24 -2 | 33%Below typical | more lines added than baseline |
| 35 | d54e23b6feat(config): allow empty bootstrap profiles | InkJazz | 3d ago | +20 -4 | 31%Below typical | more lines added than baseline |
| 36 | 16319d18docs(cli): lupin update and agents --wire specced (ADR-48, ADR-49) | InkJazz | 3d ago | +16 -2 | 29%Below typical | more lines added than baseline |
| 37 | 2ca03ca2feat(doctor): --json carries the configured quirks next to the fired ones | InkJazz | 6d ago | +18 -3 | 27%Below typical | more lines added than baseline |
| 38 | 92df7dacdocs: the README teaches agents mode and TESTING records the driven TUI pass | InkJazz | 3d ago | +15 -3 | 25%Below typical | more lines added than baseline |
| 39 | 3d4f349edocs(m5): the editRetryHint A/B was run and the criterion is not met (ADR-46) | InkJazz | 6d ago | +13 -4 | 23%Below typical | more scattered than baseline |
| 40 | 33ee6091Lupin 0.2.0: a cut stream stops passing for a finished answer | InkJazz | 6d ago | +7 -7 | 21%Below typical | more scattered than baseline |
| 41 | ed2253f6test(ci): isolate lifecycle watchdog | InkJazz | 2d ago | +6 -2 | 19%Below typical | fewer lines added than baseline |
| 42 | a801b52eLupin 0.1.2: the credential store stops lying | InkJazz | 6d ago | +6 -7 | 17%Below typical | fewer lines added than baseline |
| 43 | e8345dc1fix(config): normalize empty bootstrap profile | InkJazz | 3d ago | +5 -0 | 15%Below typical | fewer lines added than baseline |
| 44 | 99867f0cchore(gitignore): launch material stays local | InkJazz | 6d ago | +3 -0 | 13%Below typical | fewer lines added than baseline |
| 45 | 010b417fchore(tui): the sidecar carries the project's version | InkJazz | 1w ago | +2 -2 | 11%Below typical | fewer lines added than baseline |
| 46 | a7ce6af4chore: ignore implementation worktrees | InkJazz | 3d ago | +2 -0 | 8%Below typical | fewer lines added than baseline |
| 47 | 7fa182b5docs(providers): the quirk registry lists the two request quirks it was missing | InkJazz | 6d ago | +2 -0 | 8%Below typical | fewer lines added than baseline |
| 48 | 8d5261d4docs: correct 0.2.4 release details | InkJazz | 2d ago | +2 -2 | 5%Below typical | fewer lines added than baseline |
| 49 | 3f27b5d2docs(readme): the sample TUI header carries the released version | InkJazz | 6d ago | +1 -1 | 3%Below typical | fewer lines added than baseline |
| 50 | a54783dcdocs(llms): the doc index names the agent routes | InkJazz | 3d ago | +1 -1 | 1%Below typical | fewer lines added than baseline |
Two views of the same model: where the cuts fall, and what commit shape lands you above them.
Every scored commit, binned on the raw 0 to 10 score rather than the percentile. Percentile ranks are uniform by construction, so that axis has no shape to draw. The dashed lines are the tercile cuts behind each row's priority pill.
The 50 most recent commits, on their own recency sample rather than the feed above: that defaults to risk-sorted, so reusing it would plot only the top tercile and call it the spread. Big and scattered is what the model penalises. Click a dot to open it.
2233admin/Lupin has 50 commits in its history from 1 contributor, the first of them Aug 5, 2026. In the last 90 days 149 files were touched, 252 times in total, most often daemon-watchdog.test.ts. Every commit is scored for change risk from its size, spread and the history of the files it touches.