#2950 · 48 changelog bullets in, 12 issues out, and nothing in the feed said so.
raw_bullets_count never helped$ grep -rn "raw_bullets_count" scripts/ .github/workflows/
scripts/cc-release-watch.mjs:310: raw_bullets_count: v.body.split('\n').filter(...).length,
one hit. written, never read.
So the ledger knew how many bullets went in and how many features came out, but never the number in between. Without it, 48 -> 12 is unreadable: it could be 36 bug-fix bullets that were correctly not features, or 13 features the cap threw away. Those need opposite responses.
| Ledger entry | What the filer now says | Confidence |
|---|---|---|
| features_extracted: 25 features: 20 | TRUNCATED, 5 dropped | exact |
| features: 20 (legacy, no field) | possible but UNCONFIRMED | inferred |
| features_extracted: 3 features: 3 | nothing | not saturated |
length == 20 alone. That guess cannot separate a release
that genuinely produced exactly 20 from one cut down from 21+. Keeping the two tiers verbally
distinct is the point of the fix: a warning that cannot tell truncation from coincidence
must not sound like one that can.
The cap still drops the lowest-scoring features. Raising it, or paging through large releases, is suggestion 2 in the issue and a scoping decision, not a correctness one. This change only makes hitting the cap impossible to do quietly.
Test 15 vs the pre-fix script 69 passed, 3 failed Test 15 vs the fixed script 72 passed, 0 failed