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
20 commits sit in this repo's top risk tercile, which is 36% of the 56scored. 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 7.0 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 other-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 | ff598515Initial commit | Joost Van Opdorp | 2w ago | +4.4K -0 | 99%Elevated | more lines added than baseline |
| 2 | 4f17c26dSplit backend/app.py into route blueprints | Joost Van Opdorp | 1w ago | +870 -827 | 96%Elevated | more lines added than baseline |
| 3 | 76d4b355Implement received items feature and public wishlist sharing functionality | Joost Van Opdorp | 2w ago | +1.0K -138 | 96%Elevated | more lines added than baseline |
| 4 | ed35ba9dSupport quantity-gated and unlimited claiming per gift | Joost Van Opdorp | 2w ago | +421 -107 | 94%Elevated | more lines added than baseline |
| 5 | 4c75f5ebClose account-takeover gap with one-time setup links, harden scraper against redirect-based SSRF | Joost Van Opdorp | 1w ago | +479 -50 | 91%Elevated | more lines added than baseline |
| 6 | 69aaa7c5Add a wishlist directory so people can browse without a share link | Joost Van Opdorp | 2w ago | +340 -12 | 91%Elevated | more lines added than baseline |
| 7 | 0637ff68Add automatic DB migrations, versioned images, and Watchtower auto-update | Joost Van Opdorp | 2w ago | +405 -18 | 88%Elevated | more lines added than baseline |
| 8 | 72fa3769Add URL scraping functionality | Joost Van Opdorp | 2w ago | +217 -1 | 87%Elevated | more lines added than baseline |
| 9 | 0d371e76Split login into a two-step flow with loading states | Joost Van Opdorp | 2w ago | +179 -32 | 84%Elevated | more lines added than baseline |
| 10 | f7695b29Let admins edit a user's username, wishlist name, and password from one panel | Joost Van Opdorp | 2w ago | +155 -22 | 84%Elevated | more lines added than baseline |
| 11 | 1909fc57Enhance GiftCard and GiftForm, add image placeholder | Joost Van Opdorp | 2w ago | +107 -26 | 81%Elevated | more lines added than baseline |
| 12 | b3249151Give each claim a private token instead of exposing claimer names to visitors | Joost Van Opdorp | 2w ago | +101 -14 | 79%Elevated | more lines added than baseline |
| 13 | 9d0f6f95Add automatic off-site backups via rclone | Joost Van Opdorp | 2w ago | +119 -0 | 77%Elevated | more lines added than baseline |
| 14 | 087254cdFix light mode and make dark mode default | Joost Van Opdorp | 2w ago | +85 -37 | 77%Elevated | more lines added than baseline |
| 15 | aa1db9f6Dockerize the app | Joost Van Opdorp | 2w ago | +99 -11 | 74%Elevated | more lines added than baseline |
| 16 | 0759c24eAdd per-item currency override | Joost Van Opdorp | 2w ago | +73 -4 | 72%Elevated | more lines added than baseline |
| 17 | 92288bfeAdd optional background pattern (on by default) to GiftCard | Joost Van Opdorp | 2w ago | +78 -2 | 71%Elevated | more lines added than baseline |
| 18 | 2d9304cbRestructure deployment docs and make local dev setup cross-platform | Joost Van Opdorp | 1w ago | +76 -48 | 67%Elevated | more lines added than baseline |
| 19 | 176f1ccaAdd login lockout after repeated failed attempts | Joost Van Opdorp | 1w ago | +61 -2 | 67%Elevated | more lines added than baseline |
| 20 | 57a81ec9Restore a drag ghost preview when reordering gifts | Joost Van Opdorp | 2w ago | +54 -4 | 67%Elevated | more lines added than baseline |
| 21 | 33730571Add README for Wilik app | Joost Van Opdorp | 2w ago | +61 -0 | 63%Typical | more lines added than baseline |
| 22 | f80c2a8aAdd optional off-site backups via S3 (docker-volume-backup) | Joost Van Opdorp | 2w ago | +52 -0 | 62%Typical | more lines added than baseline |
| 23 | 9840a23fAdd option to hide wishlists and wishlist directory | Joost Van Opdorp | 2w ago | +45 -7 | 60%Typical | more lines added than baseline |
| 24 | dfd5dd95Add application icons and manifest for PWA support | Joost Van Opdorp | 2w ago | +37 -0 | 58%Typical | more lines added than baseline |
| 25 | 44f929abRefactor scraping logic to use separate headers for bot and browser requests | Joost Van Opdorp | 2w ago | +28 -9 | 55%Typical | more lines added than baseline |
| 26 | 6ddfe9deWarn before deleting an already-claimed gift, revealing the claimer's name afterward | Joost Van Opdorp | 2w ago | +29 -3 | 55%Typical | more lines added than baseline |
| 27 | 4bb22ea0Add image preview and fix input fields width on mobile in GiftForm | Joost Van Opdorp | 2w ago | +24 -1 | 53%Typical | more lines added than baseline |
| 28 | cee30321Let admins change a user's theme color | Joost Van Opdorp | 1w ago | +28 -1 | 50%Typical | more lines added than baseline |
| 29 | 664d8fa7Initial commit | joostvanopdorp | 2w ago | +21 -0 | 50%Typical | more lines added than baseline |
| 30 | 08c2a163Make session cookie security configurable, warn on weak default SECRET_KEY | Joost Van Opdorp | 1w ago | +24 -1 | 47%Typical | more lines added than baseline |
| 31 | fca3c9c9Enhance docker-compose example with additional notes on Traefik tunnel configurations and HTTPS setup | Joost Van Opdorp | 1w ago | +14 -0 | 46%Typical | more lines added than baseline |
| 32 | 915b342cRename app from Wishdrop to Wilik | Joost Van Opdorp | 2w ago | +15 -15 | 44%Typical | more scattered than baseline |
| 33 | 002b6b35Simplify password handling: new/reset accounts log in with any password, self password change skips re-entering the old one | Joost Van Opdorp | 2w ago | +10 -22 | 42%Typical | more scattered than baseline |
| 34 | 4c5bca94Move App name section to the bottom of the admin panel | Joost Van Opdorp | 1w ago | +9 -9 | 40%Typical | fewer lines added than baseline |
| 35 | 68d99596Update deployment and README documentation for clarity on backup setup and initial admin account creation | Joost Van Opdorp | 1w ago | +9 -5 | 38%Typical | fewer lines added than baseline |
| 36 | 87c054acPolish repo metadata: package.json fields, GitHub social preview image | Joost Van Opdorp | 2w ago | +10 -3 | 37%Typical | more subsystems than baseline |
| 37 | e90de537Clarify instructions in DEPLOY.md for one-time production cutover and rollback process | Joost Van Opdorp | 1w ago | +5 -5 | 34%Typical | fewer lines added than baseline |
| 38 | 47c4b927Minor UI tweaks: comma decimal placeholder, username field layout | Joost Van Opdorp | 2w ago | +5 -7 | 34%Typical | fewer lines added than baseline |
| 39 | a06eacf7Switch Watchtower to the maintained nickfedor/watchtower fork | Joost Van Opdorp | 2w ago | +4 -1 | 30%Below typical | fewer lines added than baseline |
| 40 | 87e6e003Fix slow local dev requests caused by Windows localhost resolution | Joost Van Opdorp | 2w ago | +4 -1 | 30%Below typical | fewer lines added than baseline |
| 41 | e9d3ac68Add screenshots to README | Joost Van Opdorp | 2w ago | +6 -0 | 28%Below typical | fewer lines added than baseline |
| 42 | 31b9c793Add clarification on routing multiple hostnames in docker-compose example | Joost Van Opdorp | 1w ago | +3 -0 | 26%Below typical | fewer lines added than baseline |
| 43 | 240a274bTint directory list hover with each user's theme color | Joost Van Opdorp | 1w ago | +2 -2 | 21%Below typical | fewer lines added than baseline |
| 44 | a97f34e0Clarify deployment documentation regarding image updates and reverse proxy configurations | Joost Van Opdorp | 1w ago | +2 -2 | 21%Below typical | fewer lines added than baseline |
| 45 | 03498b30Fix typo in Watchtower label namespace in docker-compose.yml | Joost Van Opdorp | 2w ago | +2 -2 | 21%Below typical | fewer lines added than baseline |
| 46 | 47dc98aeAdd ?title=Wilik to the ntfy notification URL example | Joost Van Opdorp | 2w ago | +2 -2 | 21%Below typical | fewer lines added than baseline |
| 47 | 87a02c57Document AWS's region-specific S3 endpoint requirement | Joost Van Opdorp | 2w ago | +2 -2 | 21%Below typical | fewer lines added than baseline |
| 48 | 15af9abbAdjust magenta theme to a nicer shade | Joost Van Opdorp | 1w ago | +2 -2 | 15%Below typical | fewer lines added than baseline |
| 49 | f4d5ba55Update Cancel-button background color variable for consistency | Joost Van Opdorp | 2w ago | +1 -1 | 12%Below typical | fewer lines added than baseline |
| 50 | a9672efeAdd --preload option to gunicorn command in Dockerfile | Joost Van Opdorp | 2w ago | +1 -1 | 12%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 56 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.
joostvanopdorp/wilik has 56 commits in its history from 2 contributors, the first of them Jul 24, 2026. In the last 90 days 45 files were touched, 157 times in total, most often app.py. Every commit is scored for change risk from its size, spread and the history of the files it touches.