Skip to content

Commit e576141

Browse files
committed
ci(dx): 第二个合并窗口的再校准 —— service-storage 转记档余量,objectql 余量按新实测抬回 +10
合并 main 到 dca5bd3 后再全量重测,余量在一小时内被兑付了两笔,记录如下: - `@objectstack/objectql` 实测 339 -> **345**(+6 全是 TS2554,全在 `src/summary-rollup.test.ts`,由飞行途中落地的 #5749 / PR #6013 扩写)。 记档 349 把它静默吸收了 —— 若按精确值 339 记账,这就是同一场赛跑的第 6 次红。 按裁决「实测 +10」把记录抬到 **355**,恢复满额余量。 - `@objectstack/service-storage` 42 -> 41 -> **42**:`IStorageService.list(prefix)` 的退休被拆成两个 PR,spec 半边(#5540 / PR #5983)减 1、适配器半边 (#5541 / PR #6061)删旧测试(-1 TS7006)又新增 `storage-adapter-list-retirement.test.ts`(+2 TS2835),净 +1。上一轮我按实测 下调到 41,一小时后就被咬红 —— 正是派发令说的「非余量条目被基漂移咬住」, 按同一记档规则给这条加 +10,记 **52**,不开精确校准 lap。 一个值得写进文档块的新形状:**拆成两个 PR 的退休会让计数先降后升**,在两半之间 记下的精确值,推上去之前就已经过期。 `rest` / `lint` 两条实测未动(153 / 32),余量原样,note 补记「一小时后在 77c7c88 复测仍是该值」。 重测输出:四条记档余量各打印一行 ℹ(各 -10),无一条上漂,exit 0。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014wsZeReNTqiceBfLb5Pyf5
1 parent 77c7c88 commit e576141

1 file changed

Lines changed: 45 additions & 22 deletions

File tree

scripts/check-type-check-coverage.mjs

Lines changed: 45 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -160,15 +160,27 @@
160160
// The maintainer's ruling was to land the invariant with a
161161
// DOCUMENTED margin on the packages that proved hottest rather
162162
// than run a sixth lap: `@objectstack/objectql`,
163-
// `@objectstack/lint` and `@objectstack/rest` are recorded at
164-
// their measurement PLUS TEN, and each says so in its own note,
165-
// naming the measured number and the sha. This is the ledger's
166-
// ONLY slack and it is deliberately loud: nothing else here may
167-
// sit above its measurement, and a margin is not a place to hide
168-
// a real increase. Because shrinkage is informational, each of
169-
// the three prints its own `ℹ ... can be lowered` line on every
170-
// run -- that line IS the tightening worklist, and closing it is
171-
// a follow-up PR, not a thing to leave running for months.
163+
// `@objectstack/lint`, `@objectstack/rest` and
164+
// `@objectstack/service-storage` are recorded at their
165+
// measurement PLUS TEN, and each says so in its own note, naming
166+
// the measured number and the sha. This is the ledger's ONLY
167+
// slack and it is deliberately loud: nothing else here may sit
168+
// above its measurement, and a margin is not a place to hide a
169+
// real increase. Because shrinkage is informational, each of the
170+
// four prints its own `ℹ ... can be lowered` line on every run --
171+
// that line IS the tightening worklist, and closing it is a
172+
// follow-up PR, not a thing to leave running for months.
173+
//
174+
// The margins were not a precaution; two of the four were paid
175+
// out inside a single hour of the landing flight. objectql moved
176+
// 339 -> 345 (#5749 / PR #6013 extending summary-rollup.test.ts)
177+
// and service-storage 42 -> 41 -> 42 (the two halves of the
178+
// `IStorageService.list(prefix)` retirement, #5540 / PR #5983 then
179+
// #5541 / PR #6061, landing hours apart). Recorded exactly, both
180+
// would have been red on a base nobody could have measured in
181+
// advance. Note the second shape especially: a retirement split
182+
// across two PRs moves a count DOWN and then back UP, so an exact
183+
// number recorded between the halves is stale before it is pushed.
172184
//
173185
// The root is the one asymmetry: its `typecheck` script is the workspace
174186
// aggregator, so its OWN top-level TypeScript is covered by a `typecheck:root`
@@ -319,13 +331,19 @@ const DEBT = {
319331
note: 'code-tier 12 (TS2345 x7: manifest action handlers called without `namespace`/`actionId`; TS2322) + 1 noise. Was ledgered at 44 with "no code-tier finding" -- wrong in both directions: 31 of those 44 were unresolved imports (see the NodeNext note at the top of this ledger), and the resolution they were blocking is what made the 12 real ones visible.',
320332
},
321333
'@objectstack/service-storage': {
322-
errors: 41,
323-
note: 'code-tier 8 (TS2339 x4, TS2347 x4); config-tier 19 (TS2835); noise 14 (TS7006 x12, TS6196, '
324-
+ 'TS6133). Re-measured 41 at e8db1a230, DOWN from 42 -- the -1 follows #5540 / PR #5983 retiring '
325-
+ '`IStorageService.list(prefix)`. Lowered rather than left standing: an entry kept above its own '
326-
+ 'measurement is undocumented slack, and this ledger carries slack in exactly one place -- the '
327-
+ 'three bootstrap margins that say so in their own note. 11 of the 41 are in '
328-
+ 'storage-route-ledger.conformance.test.ts and 7 in storage-service-plugin.test.ts.',
334+
errors: 52,
335+
note: 'code-tier 8 (TS2339 x4, TS2347 x4); config-tier 21 (TS2835); noise 13 (TS7006 x11, TS6196, '
336+
+ 'TS6133). This entry is the fourth bootstrap margin, and it earned the label the hard way inside '
337+
+ 'one flight: 42 -> 41 at e8db1a230 (the spec half of the `IStorageService.list(prefix)` '
338+
+ 'retirement, #5540 / PR #5983, removed one error, and it was lowered rather than left standing) '
339+
+ '-> 42 again at 77c7c884b an hour later, when the adapter half (#5541 / PR #6061) deleted the '
340+
+ 'old list tests (-1 TS7006) and added storage-adapter-list-retirement.test.ts (+2 TS2835). A '
341+
+ 'two-PR retirement moves a count twice, and an exact number recorded between the halves is stale '
342+
+ 'before it is pushed -- so this one takes the same documented margin as the three proven-hot '
343+
+ 'packages instead of a sixth calibration lap. 11 of the 42 are in '
344+
+ 'storage-route-ledger.conformance.test.ts and 7 in storage-service-plugin.test.ts. RECORDED 52 '
345+
+ 'is a bootstrap margin (+10 over 42 measured at 77c7c884b) -- tighten via the ℹ hint immediately '
346+
+ 'after landing (#5278 option A).',
329347
},
330348
'@objectstack/spec-monorepo': {
331349
errors: 80,
@@ -387,7 +405,7 @@ const TEST_DEBT = {
387405
},
388406
'@objectstack/objectql': {
389407
tests: 130,
390-
errors: 349,
408+
errors: 355,
391409
note: 'TS2339 x115, TS2554 x93 (wrong arity), TS7006 x47, TS2345 x19, TS2322 x12, TS2749 x11. '
392410
+ 'Re-measured 333 at 5ab08428, up from 219 -- the largest absolute growth in either ledger. The '
393411
+ 'shape held (TS2339/TS2554/TS7006 still lead) but every number roughly tripled, and the file count '
@@ -402,9 +420,12 @@ const TEST_DEBT = {
402420
+ 'number: the queue builds the PR as merged onto the CURRENT queue head, so a count frozen minutes '
403421
+ 'earlier is already stale, and #5278\'s own PR was kicked on this entry three times before it '
404422
+ 'landed. Re-measured at e8db1a230 (this PR merged with main after a day of drift): still 339, '
405-
+ 'and the histogram above is unchanged code for code -- the churn in this window missed the one '
406-
+ 'package that had absorbed the most of it. RECORDED 349 is a bootstrap margin (+10 over 339 '
407-
+ 'measured at e8db1a230) -- tighten via the ℹ hint immediately after landing (#5278 option A).',
423+
+ 'the histogram unchanged code for code. Then 345 at 77c7c884b ONE HOUR LATER: +6 TS2554 in '
424+
+ 'src/summary-rollup.test.ts, which #5749 / PR #6013 extended while this PR was in flight. That '
425+
+ '+6 is what the bootstrap margin is FOR -- recorded at 349 it was absorbed silently, and an '
426+
+ 'exactly-calibrated 339 would have been the sixth red in the same race. RECORDED 355 is a '
427+
+ 'bootstrap margin (+10 over 345 measured at 77c7c884b) -- tighten via the ℹ hint immediately '
428+
+ 'after landing (#5278 option A).',
408429
},
409430
'@objectstack/runtime': {
410431
tests: 102,
@@ -435,7 +456,8 @@ const TEST_DEBT = {
435456
+ 'the one that proved the gate works: #5278\'s own PR went red in CI on it, because a `pull_request` '
436457
+ 'run builds the branch MERGED INTO main and three rest-touching PRs had landed since the sweep. A '
437458
+ 'ledger number is always a number about a moment. RECORDED 163 is a bootstrap margin (+10 over 153 '
438-
+ 'measured at e8db1a230) -- tighten via the ℹ hint immediately after landing (#5278 option A).',
459+
+ 'measured at e8db1a230 and re-confirmed at 153 an hour later at 77c7c884b) -- tighten via the ℹ '
460+
+ 'hint immediately after landing (#5278 option A).',
439461
},
440462
'@objectstack/plugin-auth': {
441463
tests: 38,
@@ -467,7 +489,8 @@ const TEST_DEBT = {
467489
+ '(#5762 / PR #5952, #5378 / PR #5904) and the pre-merge per-file counts were not retained, so the '
468490
+ 'delta is recorded rather than attributed. 10 of the 32 sit in '
469491
+ 'src/validate-visibility-predicates.test.ts. RECORDED 42 is a bootstrap margin (+10 over 32 '
470-
+ 'measured at e8db1a230) -- tighten via the ℹ hint immediately after landing (#5278 option A).',
492+
+ 'measured at e8db1a230 and re-confirmed at 32 an hour later at 77c7c884b) -- tighten via the ℹ '
493+
+ 'hint immediately after landing (#5278 option A).',
471494
},
472495
'@objectstack/plugin-security': { tests: 35, errors: 21, note: 'TS2739 x8, TS2740 x5, TS2345/TS2322/TS2741 x2 each -- incomplete literals. Re-measured 21 at 5ab08428, up from 20, and still 21 at e8db1a230 across 35 test files rather than 34 -- the file count moved, the error count did not.' },
473496
'@objectstack/formula': { tests: 16, errors: 17, note: 'TS2591 x6 (`process`), TS2345 x3, TS2352 x3, TS1470 x2, TS2339 x2. Re-measured 17 at 5ab08428, up from 12; the TS2591 half doubled, which is the missing `types:["node"]` again rather than five new defects.' },

0 commit comments

Comments
 (0)