Uh oh!
There was an error while loading. Please reload this page.
chore(devx): lower @objectstack/lint TEST_DEBT to its measured 19 and re-tally its note (#8728) - #8980
Merged
Conversation
The latest updates on your projects. Learn more about Vercel for GitHub. 1 Skipped Deployment
|
os-project-manager
marked this pull request as ready for review
August 16, 2026 03:49
os-project-manager
enabled auto-merge
August 16, 2026 03:50
Uh oh!
There was an error while loading. Please reload this page.
This was referenced Aug 16, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes#8728
@objectstack/lint'sTEST_DEBTentry recorded 20 where tsc measures 19. Loweredvia the gate's own affordance, and the entry's
note— stale in both the number itclaimed to explain and the pile it described — re-tallied from a fresh measurement rather
than rescaled.
Diff is one
errors:digit, one rewrittennote, and one corrected comment block. Nopackage source changes.
Measured, and reproducible
Base
585edf738, closure built exactly aslint.ymlbuilds it(
pnpm exec turbo run build --filter='./packages/*' --filter='./packages/*/*', 70/70 taskssuccessful, exit 0):
Exactly one entry moved —
--lowerreported one lowering and the diff is one digit.The 33 entries / 1926 raw errors independently reproduce the reading recorded on the
now-closed duplicate #8922 (taken at
f9811727d, 211.5s, 1926 raw) on a different head.That is the bar the 2026-08-08 non-reproducibility incident sets for any number that carries
a policy: three readings of this very entry — 19, 39 and 147 — were in circulation in one
day, all from unbuilt closures.
The note was wrong by 22, not just out of date
The card called the
notestale in its composition. It was worse: it endedRECORDED 42 is a bootstrap margin (+10 over 32 ...)beside anerrorsfield reading20, and its stated composition (
TS7006 x22, TS2835 x6, TS6059 x4) summed to 32.Attributed, not guessed: #7888 / PR #8225 lowered this entry 42 to 20 against a measured
20 at
b5e09b21, and that PR states it deliberately left the note describing the larger pilebecause "inventing a composition for errors that are gone is the one thing this ledger's own
rules forbid". So the note has been describing a 32-error pile through two tightenings. The
tally below is the first one taken at the size the entry actually is.
Per file:
validate-semantic-roles.test.tsx5,validate-dashboard-action-refs.test.tsx4,validate-translatable-sections.test.tsx3,validate-filter-tokens.test.tsx3,validate-capability-references.test.tsx3,validate-managed-api-methods.test.tsx1.The old note's claim that "10 of the 32 sit in
src/validate-visibility-predicates.test.ts"is now false — that file reports none — and is corrected rather than carried forward.
The −1 is attributed
#8515 / PR #8610 dropped exactly one live import from
validate-translatable-sections.test.ts:while keeping the other three. That is the TS6059 that left: the surviving three name
contact.object.ts,contact.view.tsandsystem/translations/index.ts— exactly the threeexample files those tests still import. Nothing here is recorded as unattributed.
The bootstrap-margin block was stale too, and that mattered more
The top-of-ledger
BOOTSTRAP MARGINSblock still enumerated five packages as "recorded attheir measurement PLUS TEN, and each says so in its own note". None of the five carries
that slack today — verified against this run, not recalled:
@objectstack/rest@objectstack/lint@objectstack/mcp@objectstack/service-storage@objectstack/objectqlThis is the block documenting the ledger's only sanctioned slack, so a roster naming five
packages where the tree supports none is the more consequential of the two staleness bugs.
It is rewritten to keep the ruling's history and roster while stating plainly that it is not
a current inventory. The final
--re-measureconfirms the end state the block now claims:Why now rather than someday
While the gap was open,
@objectstack/lint's test layer had exactly one error of freeheadroom — nothing else reads that layer, so a genuine new type error there landed green.
#6376 is the precedent the gate itself cites: driver-mongodb's 33 swallowed an entire
signature reversion.
Verification
All gates run at final commit
81acf6f1f, the head this PR pushes:pnpm check:type-check-debt— green.33 ledger entr(ies) re-measured in 212.3s, 1926 raw tsc error(s) total, none above its recorded numberandsurplus: none.pnpm check:type-check-coverage— green. Self-test: 23 semantic + 24 observation + 25re-measure + 28 built-closure + 9 auto-lowering cases hold.
pnpm check:nul-bytes— green (5935 text files, no raw control bytes). Explicitcontrol-character self-scan over the changed file also clean.
node scripts/pm/dispatch-gates.mjs scripts/check-type-check-coverage.mjs: it returnsthese same two families and adds none.
No changeset:
scripts/is not published package source, so this releases nothing and thePR carries
skip-changeset.Out of scope — reported, not touched
Two of the five margin notes still narrate a margin in the present tense against an
errorsfield that no longer carries one —
@objectstack/mcp("RECORDED 63 is a bootstrap margin")and
@objectstack/service-storage("RECORDED 52"). Stale narration, not stale arithmetic:both
errorsvalues are their exact measurements. Same defect class as this card, left totheir own cards because this one is scoped to the lint entry; the corrected block names them
so the next reader is not misled meanwhile. Flagged for the PM to file.
Generated by Claude Code