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
16 commits sit in this repo's top risk tercile, which is 31% of the 51scored. 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.6 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.
Began docs-led, now leaning feature.
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 | 40f19c28feat: qqcli - QQ local data CLI with NapCat integration | Curry | 2mo ago | +4.5K -0 | 99%Elevated | more lines added than baseline |
| 2 | 7599b4b7feat: introduce Segment + normalize layer (prep for forward/media) | Curry | 2mo ago | +1.0K -59 | 96%Elevated | more lines added than baseline |
| 3 | be4a96cafeat: add bundle command for downloading media files to ZIP | Curry | 2mo ago | +1.3K -52 | 96%Elevated | more lines added than baseline |
| 4 | 143f7652feat: release agent-friendly Windows onboarding | Curry | 19h ago | +1.3K -297 | 91%Elevated | more lines added than baseline |
| 5 | e586abe3feat(normalize): enrich pathway 2 + multiForwardMsg XML preview + OneBot 11 segments | Curry | 2mo ago | +883 -82 | 91%Elevated | more lines added than baseline |
| 6 | 8ca92a69feat: add DuckDB FTS index for message search | Curry | 2mo ago | +1.2K -52 | 91%Elevated | more lines added than baseline |
| 7 | c282ffccfeat: ship safe Windows QQ access v0.3.0 | Curry | 17h ago | +1.1K -973 | 87%Elevated | more lines added than baseline |
| 8 | 806cb6d1style: rustfmt | Curry | 2mo ago | +380 -151 | 85%Elevated | more lines added than baseline |
| 9 | a86d5b8frefactor(message): extract build_message from db to message module (5 件事 B) | Curry | 2mo ago | +266 -216 | 82%Elevated | more lines added than baseline |
| 10 | c308ce3bfeat: add qq sync command and contact cache | Curry | 2mo ago | +249 -23 | 82%Elevated | more lines added than baseline |
| 11 | 04c774f6refactor: redesign README with better visual hierarchy | Curry | 2mo ago | +235 -89 | 78%Elevated | more lines added than baseline |
| 12 | 725d67c3feat: add NapCat IPC plugin mode for direct wrapper API access | Curry | 2mo ago | +262 -1 | 78%Elevated | more lines added than baseline |
| 13 | 9970f590fix(qa): BUG-001 export 错误参数报错 + BUG-002 bundle 走 Segment 列表 (url 拼 NT CDN) | Curry | 2mo ago | +250 -42 | 75%Elevated | more lines added than baseline |
| 14 | aef7ca88docs: add README, CI workflow, and LICENSE | Curry | 2mo ago | +261 -0 | 75%Elevated | more lines added than baseline |
| 15 | 1939986adocs: improve project positioning and discoverability | Curry | 16h ago | +235 -238 | 72%Elevated | more lines added than baseline |
| 16 | de02fed0docs: add generative art header image | Curry | 2mo ago | +264 -0 | 70%Elevated | more lines added than baseline |
| 17 | 67670293feat(db_index): wire DuckDB FTS (BM25) with LIKE fallback (5 件事 E) | Curry | 2mo ago | +159 -3 | 66%Typical | more lines added than baseline |
| 18 | c34d960dfeat(uid_resolve): BUG-003/004/005 修 (uid_resolve 模块 + 旧 groupCode 提示) | Curry | 2mo ago | +218 -14 | 66%Typical | more lines added than baseline |
| 19 | 37cbfa56docs: expand README with detailed usage examples and FAQ | Curry | 2mo ago | +159 -41 | 66%Typical | more lines added than baseline |
| 20 | bc5519eafeat(normalize): recursive forward expansion with depth-5 cap (5 件事 A) | Curry | 2mo ago | +152 -15 | 59%Typical | more lines added than baseline |
| 21 | 35402c30fix: resolve clippy warnings for CI | Curry | 2mo ago | +239 -49 | 59%Typical | more lines added than baseline |
| 22 | c95a93e8refactor: extract schema constants from hardcoded field IDs | Curry | 2mo ago | +142 -83 | 59%Typical | more lines added than baseline |
| 23 | 46047db3feat: add qq-data-exporter compatible JSONL export format | Curry | 2mo ago | +138 -0 | 59%Typical | more lines added than baseline |
| 24 | 80d8ea6ddocs: publish bilingual QQ usage guide | Curry | 16h ago | +188 -0 | 54%Typical | more lines added than baseline |
| 25 | 9c2ad466fix(db): resolve schema:: token SQL syntax error (blocker for sessions/history/contacts) | Curry | 2mo ago | +110 -93 | 52%Typical | more lines added than baseline |
| 26 | 0f9d3242docs: add decoupling compliance report (5 件事 + 37 泄露点 + 验证矩阵) | Curry | 2mo ago | +104 -0 | 50%Typical | more lines added than baseline |
| 27 | c8720210docs: rewrite README with compelling copywriting style | Curry | 2mo ago | +93 -127 | 47%Typical | more lines added than baseline |
| 28 | d64fcae3docs: expand README with SEO keywords and better structure | Curry | 2mo ago | +91 -97 | 47%Typical | more lines added than baseline |
| 29 | 6db4646achore(clippy): fix 24 lint warnings (Rust 1.96 stricter) | Curry | 2mo ago | +116 -15 | 44%Typical | more lines added than baseline |
| 30 | 328534b4feat: require user consent before QQ decryption | Curry | 18h ago | +140 -42 | 41%Typical | more lines added than baseline |
| 31 | 5859e4adfeat: integrate DuckDB search into commands | Curry | 2mo ago | +76 -0 | 41%Typical | more lines added than baseline |
| 32 | e95c9e2edocs: add CONTRIBUTING, SECURITY, and CODEOWNERS | Curry | 2mo ago | +76 -0 | 38%Typical | more lines added than baseline |
| 33 | c7841578docs: expand story with three year snapshots | Curry | 2mo ago | +52 -39 | 36%Typical | more lines added than baseline |
| 34 | 9058eddadocs: simplify README to essential only | Curry | 2mo ago | +44 -74 | 33%Typical | more lines added than baseline |
| 35 | d5a29854docs: rewrite README with human voice, add first release tag | Curry | 2mo ago | +43 -127 | 33%Typical | more lines added than baseline |
| 36 | f20714dcdocs(message): pin 5 件事 D invariant (content == segments inline view) | Curry | 2mo ago | +34 -0 | 30%Below typical | more lines added than baseline |
| 37 | 80c78daadocs: mark BUG-001+002 fixed in compliance report, log deferred BUG-003/004/005 | Curry | 2mo ago | +15 -6 | 28%Below typical | more lines added than baseline |
| 38 | 94d11c86fix: integrate cache for contacts nickname resolution | Curry | 2mo ago | +9 -2 | 26%Below typical | fewer lines added than baseline |
| 39 | 9e211d53docs(qa): mark BUG-001/002/004 fixed, BUG-003/005 framework in place (DB has no real names) | Curry | 2mo ago | +9 -5 | 25%Below typical | fewer lines added than baseline |
| 40 | 221afeabfix: package DuckDB runtime in Windows release | Curry | 18h ago | +11 -3 | 23%Below typical | more subsystems than baseline |
| 41 | cedb5222release: qqcli-rs v0.2.0 — 5 件事 解耦 收口 | Curry | 2mo ago | +10 -6 | 21%Below typical | more subsystems than baseline |
| 42 | f87f2046chore: suppress dead_code warnings | Curry | 2mo ago | +6 -1 | 18%Below typical | fewer lines added than baseline |
| 43 | 94c5b3cafix: change default NapCat port from 4301 to 18301 | Curry | 2mo ago | +6 -6 | 18%Below typical | fewer lines added than baseline |
| 44 | 1ba82ddddocs: attribute project maintainer | 2233admin | 16h ago | +4 -0 | 15%Below typical | fewer lines added than baseline |
| 45 | da14863cchore: add keywords and categories to Cargo.toml | Curry | 2mo ago | +4 -2 | 12%Below typical | fewer lines added than baseline |
| 46 | 6f46a4b0chore: add repository and homepage to Cargo.toml, fix edition/rust-version | Curry | 2mo ago | +4 -2 | 12%Below typical | fewer lines added than baseline |
| 47 | cebd4a9eci: target only qq binary, skip probe_* binaries | Curry | 2mo ago | +3 -3 | 9%Below typical | fewer lines added than baseline |
| 48 | 8f44d4fachore: bump release to v0.2.1 | Curry | 19h ago | +2 -2 | 7%Below typical | fewer lines added than baseline |
| 49 | 44366d82fix(commands): tidy sed leftover from build_message import rewrite | Curry | 2mo ago | +1 -1 | 4%Below typical | fewer lines added than baseline |
| 50 | 621c366ffix: limit keywords to 5 per crates.io policy | Curry | 2mo ago | +1 -1 | 4%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 51 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/qqcli-rs has 51 commits in its history from 2 contributors, the first of them May 28, 2026. In the last 90 days 18 files were touched, 107 times in total, most often commands.rs. Every commit is scored for change risk from its size, spread and the history of the files it touches.