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
18 commits sit in this repo's top risk tercile, which is 33% of the 54scored. 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.4 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.
Consistently fix-driven across its history.
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 | bc371beaInitial public release | Ankush Kapoor | 4w ago | +97.0K -0 | 99%Elevated | more lines added than baseline |
| 2 | ead1594cfix(control,render,build): port the control-server, renderer-tooling, and release-hygiene train from litclock-dev (#51) | kapoorankush | 1d ago | +5.4K -650 | 96%Elevated | more lines added than baseline |
| 3 | ae91f698fix(wifi): port the provisioning, retry, and splash train from litclock-dev (#50) | kapoorankush | 1d ago | +2.8K -235 | 96%Elevated | more lines added than baseline |
| 4 | ff2b4a13fix(pi-gen): derive unit install + enable guards from systemd/ (#46) (#47) | kapoorankush | 2d ago | +2.8K -226 | 94%Elevated | more lines added than baseline |
| 5 | 02ac2b23fix(setup): stop the WiFi picker pre-selecting a network; allow hidden SSIDs | Ankush Kapoor | 4d ago | +1.3K -57 | 91%Elevated | more lines added than baseline |
| 6 | 3a32ade8feat(render): Python runtime renderer port + render-invariants CI | Ankush Kapoor | 4d ago | +1.3K -0 | 91%Elevated | more lines added than baseline |
| 7 | c385e937perf(render): serve rows_for_time from quote_corpus's index — one walk, one text pipeline | Ankush Kapoor | 4d ago | +597 -96 | 88%Elevated | more lines added than baseline |
| 8 | 6d4203a1fix(setup): drop "hotspot" from every recipient-facing surface; rewrite the setup splash for phone users | Ankush Kapoor | 3d ago | +975 -251 | 84%Elevated | more lines added than baseline |
| 9 | fe1d8d97feat(clock): runtime quote rendering behind LITCLOCK_RUNTIME_RENDER | Ankush Kapoor | 4d ago | +888 -19 | 84%Elevated | more lines added than baseline |
| 10 | 00a8a53aBump vitest from 2.1.9 to 3.2.6 (#10) | dependabot[bot] | 4w ago | +555 -333 | 84%Elevated | more lines added than baseline |
| 11 | fb185a8efeat(render): exact-span bolding — the CSV timestring IS the bold spec | Ankush Kapoor | 4d ago | +620 -522 | 81%Elevated | more lines added than baseline |
| 12 | 42edaae3fix(captive): harden iOS probe handling — UA-split 302, full Apple host list (#20) | kapoorankush | 3w ago | +379 -45 | 79%Elevated | more lines added than baseline |
| 13 | b93d2f9ffeat(masthead): V8-G2 shared-baseline dateline + centered weather lockup | Ankush Kapoor | 4d ago | +361 -68 | 77%Elevated | more lines added than baseline |
| 14 | abff314bfix(image-gen): number midnight images from 0 so midnight quotes are attributed correctly | Ankush Kapoor | 4d ago | +283 -2 | 74%Elevated | more lines added than baseline |
| 15 | 3fad38cbfix(setup): bound the nmcli connect at 30s; honest copy for unfindable typed SSIDs | Ankush Kapoor | 4d ago | +288 -23 | 74%Elevated | more lines added than baseline |
| 16 | 72f74eecchore(port): review-round hygiene — un-mangle CSS colors, qualify stray dev refs, scrub private residue | Ankush Kapoor | 4d ago | +475 -475 | 70%Elevated | more lines added than baseline |
| 17 | a5be51a7ci(build-image): build-once-promote release path (#23) | kapoorankush | 3w ago | +184 -5 | 70%Elevated | more lines added than baseline |
| 18 | fed499c4feat(diag): record which render tier painted each frame | Ankush Kapoor | 4d ago | +200 -1 | 68%Elevated | more lines added than baseline |
| 19 | b2d03964fix(first-boot): power off after the setup-incomplete timeout (#22) | kapoorankush | 3w ago | +137 -1 | 65%Typical | more lines added than baseline |
| 20 | 0c29d31efix(eink): auto-fit welcome title so gift messages don't truncate (#17) | kapoorankush | 4w ago | +142 -10 | 65%Typical | more lines added than baseline |
| 21 | cb9d9781fix(eink): QR quiet-zone compliance + README hero refresh (#25) | kapoorankush | 3w ago | +211 -38 | 62%Typical | more lines added than baseline |
| 22 | 48081c7cfix(gift): disable SSH before shipping a gifted device (#21) | kapoorankush | 3w ago | +118 -12 | 59%Typical | more lines added than baseline |
| 23 | c44bd7badocs(readme): reorganize around the builder's journey (#13) | kapoorankush | 4w ago | +144 -150 | 59%Typical | more lines added than baseline |
| 24 | fea7a05bdocs: retire the one-line installer (#37) | kapoorankush | 1w ago | +133 -42 | 56%Typical | more lines added than baseline |
| 25 | 2652587dchore: retire scripts/install.sh — the flashed image is the only install path (#38) (#45) | kapoorankush | 3d ago | +195 -849 | 55%Typical | more lines added than baseline |
| 26 | df01118edocs(license): distribute quote corpus under CC BY-NC-SA 4.0, split from MIT code (#48) | kapoorankush | 1d ago | +74 -4 | 53%Typical | more lines added than baseline |
| 27 | 9806bf56docs(license): state contribution terms, warn on the translation trap, fix the NOTICE source table (#49) | kapoorankush | 1d ago | +74 -4 | 51%Typical | more lines added than baseline |
| 28 | 96b4725bdocs: qualify development-repo issue refs as litclock-dev#NNN | Ankush Kapoor | 4d ago | +77 -71 | 48%Typical | more lines added than baseline |
| 29 | 6a225604docs: pin the tested board and panel, with part numbers | Ankush Kapoor | 4d ago | +53 -4 | 48%Typical | more lines added than baseline |
| 30 | a9d46707fix(control): self-heal port-80 floor; stop swallowing sysctl-install failures (#15) | kapoorankush | 4w ago | +46 -2 | 45%Typical | more lines added than baseline |
| 31 | f9d8451efix(install): copy reresolve-location + prepare-for-gift units (#14) | kapoorankush | 4w ago | +42 -7 | 43%Typical | more lines added than baseline |
| 32 | a69becabfeat(setup): captive-portal probe log carries the response side (#11) | kapoorankush | 4w ago | +39 -5 | 43%Typical | more lines added than baseline |
| 33 | 989cdddcfix(control): /review follow-ups on the port-80 self-heal (#15) (#16) | kapoorankush | 4w ago | +36 -21 | 40%Typical | more lines added than baseline |
| 34 | fffc1fdfreconcile corpus with the development repo + midnight numbering (litclock-dev#584) | Ankush Kapoor | 4d ago | +21 -22 | 38%Typical | more lines added than baseline |
| 35 | 80a7900ddocs(changelog): v0.220.0 — port-80 self-heal, gift-message auto-fit, install fix (#18) | kapoorankush | 4w ago | +13 -0 | 36%Typical | more lines added than baseline |
| 36 | 5f6d2c4afix(tests): redirect the runtime corpus via quote_corpus, not the dead CORPUS_CSV knob | Ankush Kapoor | 4d ago | +14 -3 | 34%Typical | more lines added than baseline |
| 37 | a5808982docs(changelog): v0.221.0 — gift SSH-off, setup-incomplete poweroff, captive hardening, promote CI (#24) | kapoorankush | 3w ago | +12 -0 | 32%Below typical | more focused than baseline |
| 38 | 4a6f875bdocs(port): qualify the remaining render-invariants CI claims as development-repo | Ankush Kapoor | 4d ago | +12 -8 | 30%Below typical | more scattered than baseline |
| 39 | 954e2522fix(image-gen): size the word-char probe window to one UTF-8 char (#27) | kapoorankush | 2w ago | +11 -4 | 30%Below typical | more focused than baseline |
| 40 | d9a7ed67docs(changelog): unreleased entry — runtime renderer, masthead, exact-span bolding, render_mode | Ankush Kapoor | 4d ago | +10 -0 | 27%Below typical | more focused than baseline |
| 41 | 6a6775f9Bump form-data from 4.0.5 to 4.0.6 (#6) | dependabot[bot] | 4w ago | +8 -8 | 25%Below typical | fewer lines added than baseline |
| 42 | 523f4dbebuild(deps-dev): bump postcss from 8.5.19 to 8.5.26 (#40) | dependabot[bot] | 3d ago | +7 -7 | 23%Below typical | fewer lines added than baseline |
| 43 | 23d4b33achore(ci): keep the render-invariants parity gate dev-side for now | Ankush Kapoor | 4d ago | +10 -140 | 21%Below typical | more subsystems than baseline |
| 44 | 48459537docs(changelog): v0.222.0 — settings QR quiet-zone fix (#26) | kapoorankush | 2w ago | +5 -0 | 19%Below typical | fewer lines added than baseline |
| 45 | 76b91820docs(readme): real product photo as hero (#12) | kapoorankush | 4w ago | +5 -1 | 18%Below typical | fewer lines added than baseline |
| 46 | fa9e74a8Bump ws from 8.20.1 to 8.21.0 (#7) | dependabot[bot] | 4w ago | +3 -3 | 16%Below typical | fewer lines added than baseline |
| 47 | 9c42d8c9build(deps): bump pytz from 2026.2 to 2026.3.post1 (#34) | dependabot[bot] | 1w ago | +2 -2 | 13%Below typical | fewer lines added than baseline |
| 48 | c912f7d2build(deps): bump actions/setup-python from 6 to 7 (#31) | dependabot[bot] | 1w ago | +2 -2 | 13%Below typical | fewer lines added than baseline |
| 49 | 3faad23cbuild(deps): bump gpiozero from 2.0.1 to 2.0.1.post3 (#35) | dependabot[bot] | 1w ago | +2 -2 | 10%Below typical | fewer lines added than baseline |
| 50 | 40ea8c10fix(corpus): correct Yasunari Kawabata spelling (The Master of Go, 11:40) (#28) | kapoorankush | 2w ago | +2 -2 | 8%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 54 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.
kapoorankush/litclock has 54 commits in its history from 3 contributors, the first of them Jul 14, 2026. In the last 90 days 215 files were touched, 379 times in total, most often literary_clock.py. Every commit is scored for change risk from its size, spread and the history of the files it touches.