Uh oh!
There was an error while loading. Please reload this page.
docs(plugin-dashboard): correct two headers that still claim this package's tests are uncompiled - #6466
Merged
Conversation
…s package's tests are uncompiled `MetricWidget.domPassthrough.test.tsx` and its counterpart `domPassthroughPins.ts` both said this package's tests are "compiled by nothing". That debt was paid: `tsconfig.test.json` type-checks this package's tests and the package's `type-check` script chains it. The paragraphs did not merely describe the old state, they prescribed against writing a compile-time pin here — which nearly misrouted the legitimate pin objectui#6373 landed a few files away in the same package. Both headers now state today's arrangement and name the config that does it. The `src/` placement of the pins is kept and re-framed as a preference rather than a constraint: they still belong next to the contract and still emit zero runtime bytes, but a pin in a test file is checked now too. Comment-only. No behaviour change, no public surface change. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011SfZeFWrhGLHmfq61xbz4q
Contributor
✅ Console Performance Budget
The eager closure is every chunk the entry reaches through static imports — what the browser fetches and parses before the app renders. The entry chunk on its own is a small fraction of it. 📦 Bundle Size Report
Size Limits
|
os-support-ai
marked this pull request as ready for review
August 26, 2026 02:22
Uh oh!
There was an error while loading. Please reload this page.
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#6426
Comment-only. Two headers in
@object-ui/plugin-dashboardstill said this package's tests are "compiled by nothing". That debt was paid, and the paragraphs did not merely describe the old state — they prescribed against writing a compile-time pin in this package, which is how the legitimate pin objectui#6373 landed was nearly written somewhere else.What changed
src/__tests__/MetricWidget.domPassthrough.test.tsx— the header claimedtsconfig.jsonexcludes the tests, that the package is "the sole remainingTEST_DEBTentry", and that a@ts-expect-errorwritten there "would be especially dishonest: nothing would ever check that the error it expects still happens."src/domPassthroughPins.ts— not named on the card, found by censusing the shape rather than the string. The counterpart half of the same contract carried the same premise ("this package's tests are compiled by nothing", plus a stale "6 errors, objectui#4118" count). Fixing only the test file would have left the two halves of one contract disagreeing — precisely the defect the card describes. Same defect class, same package, mechanical, same gate family.Both now state today's arrangement and name the config that does it, so the reader can see which
tscinvocation checks these tests:The
domPassthroughPins.tsplacement reasoning — the judgement call the card left openKept the pins where they are, re-framed the reason. The header gave three reasons for
src/placement; only one was load-bearing and it is now false. Measured:tsconfig.typetests.jsonhatch is not available — still true (zero exist; the ratchet inscripts/__tests__/check-type-check-coverage.test.tsstill turns red on one reappearing), but now beside the point, since the tests are compiled directly.type-only they emit zero runtime bytes — still true, and now the whole of the reason.So the placement stands on its own merits and the file does not move — that would be a code change on a comment-only card. What changed is that it is now described as a preference rather than a constraint, with both headers pointing at
__tests__/ObjectDataTable.emitBoundary-6373.test.tsx, which keeps two live@ts-expect-errordirectives in a test file for exactly that reason.The sibling note — checked, no change needed
The card asked me to check
ObjectMetricWidget.i18nLabel.test.tsx. It is already consistent and needs no edit: its header records that a@ts-expect-errortombstone was written first andtscreported both directives UNUSED — behaviour only observable if the file is compiled — and line 246 already says "tsconfig.test.jsontype-checks this file (chained from the package'stype-checkscript)". Left untouched.Premise verification — all four triage claims re-derived, none contradicted
origin/main@e929c562atsconfig.test.jsonexistsinclude: ["src/**/*.test.ts", "src/**/*.test.tsx", "src/**/*.d.ts"]type-check"type-check": "tsc --noEmit && tsc -p tsconfig.test.json"✅ test type-check coverage: 41/41 packages compile their tests, 0 declared debt@ts-expect-errorcaughterror TS2578: Unused '@ts-expect-error' directive.Program membership, with controls:
tsc -p tsconfig.test.json --listFilesputs 81 of this package's test files in the program, both relevant files among them; a negative control name scores 0. The buildtsconfig.json --listFilesincludesdomPassthroughPins.ts(1) and 0 test files — so both halves of the replacement text are measured, not assumed.Ablation — how the TS2578 result was produced
An
@ts-expect-errorguarding a line with no error was injected above a unique anchor, then proved on disk before measuring: injected-markergrep -c= 1, and the blob hash moved (dda92dbb→35539651).tsc -p tsconfig.test.jsonthen exited 2 with the TS2578 line above. Restore leg proved by observation, not by exit code:git checkout HEAD -- <abs path>under anEXIT INT TERMtrap using an absolute repo-root path, after whichgit diff HEADis empty, the marker count is 0, and the on-disk hash equals the HEAD blob hash. No rebuild was needed — the ablation is a puretscprogram-membership probe, not adist/consumer.Verification
All on the final commit
771ebb3eb, exit codes captured before any pipe.pnpm --filter @object-ui/plugin-dashboard type-check→ exit 0 (output echoes@object-ui/plugin-dashboard@17.6.0 type-checkandtsc --noEmit && tsc -p tsconfig.test.json, so it is not a zero-match filter reading as green)pnpm exec vitest runon the two touched-adjacent suites plus the finding(plugin-dashboard): ObjectDataTable's enrich() spreads a FieldMeta into the TableColumn[] slot, writing seven keys TableColumn does not declare #6373 pin suite →Test Files 3 passed (3),Tests 25 passed (25)node scripts/check-type-check-coverage.mjs→✅ test type-check coverage: 41/41 packages compile their tests, 0 declared debtnode scripts/check-changeset-presence.mjs→✅ 2 source file(s) of 1 released package(s) changed ... Every one of them has an EMPTY frontmatter — declared as releasing nothingnode scripts/check-changeset-no-major.mjs→✅ No changeset declares a 'major' bump.pnpm check:control-bytes→✅ check-control-bytes: OK (scanned 5344 tracked text file(s); skipped 85 binary).Lint, and the measurement for narrowing it
Ran the affected package's own lint rather than the repo-wide farm:
pnpm --filter @object-ui/plugin-dashboard lint→ exit 0,✖ 393 problems (0 errors, 393 warnings), all pre-existingno-explicit-anywarnings in files this PR does not touch.The narrowing is measured, not assumed:
eslint . --format jsonin the package reports 111 files selected.errors: 0, warnings: 0.eslint.config.jsconfigures noproject/projectService/tsconfigRootDir, so type-aware linting is off and each file's verdict is a function of its own bytes plus the shared config. This diff changes no config file and touches 2 files, both inside the linted set.Clause ② — public surface
No public surface change.
git diffrestricted to**/src/index.tsis empty (0 lines), and nosrc/index.tsappears in the changed-file list. The diff is 3 files: two block comments and one changeset.Changeset
.changeset/6426-dashboard-test-header-compiled.md, empty frontmatter — the repo's explicit "releases nothing" declaration (AGENTS.md §Housekeeping). objectui has noskip-changesetlabel; this is the equivalent and the changeset-presence gate accepts it as a complete answer.Out of scope, filed separately
#6465 — the same two stale claims in
app-shellandcore, plus ~10 headers citing atsconfig.typetests.jsonthat no longer exists anywhere (including one namingpackages/core/tsconfig.typetests.jsonas chained, which it is not). Filed unassigned,findinglabel. Not touched here: different packages, ~10 files, a much larger review surface than this card. #6465 remains open.Generated by Claude Code