fix(core): repoint two deprecation warnings off the deleted MIGRATION_GUIDE.md - #6428
Merged
Merged
Conversation
…_GUIDE.md
Both `Registry.register()`'s missing-namespace warning and `ValidationEngine`'s
function-based-condition warning ended in
See: https://github.com/objectstack-ai/objectui/blob/main/MIGRATION_GUIDE.md
and that file was deleted in 8c5d204. The registry warning now points at the
live docs page documenting namespaced registration. The validation warning drops
its `See:` line: the deleted guide covered component namespaces and lazy field
registration and never documented conditions, so the pointer was misdirected as
well as dead, and the message already carries a complete before/after inline.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012CZgmFFzqA9cX8tBMhvpFe
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
|
This was referenced Aug 25, 2026
os-warren
marked this pull request as ready for review
August 26, 2026 00:04
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 free
to 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.
Part of #6342
The card asked for a census first, and said the census decides the fork. It does.
The census says SMALL, so this PR takes the small fork: two hand repairs, and the
gate is left alone. The measurement also turned up something the card did not
know, which independently argues against widening — see "Why not widen" below.
The census
Population:
github.com/objectstack-ai/objectui/(blob|tree)/main/…in tracked files,by extension.
.md.mdx.ts.mjs.tsx21 occurrences sit outside the gate's population. Broken down by what they
actually are:
scripts/__tests__/check-doc-links.test.ts— the gate's own fixturespackages/gone/README.md,blob/main/../../../etc/hosts,blob/12b287d8b/…)scripts/check-doc-links.mjs— the literal ellipsisblob/main/...in its own hint textThe three genuine ones:
apps/site/app/(home)/page.tsx:79blob/main/LICENSEpackages/core/src/registry/Registry.ts:228blob/main/MIGRATION_GUIDE.mdpackages/core/src/validation/validation-engine.ts:411blob/main/MIGRATION_GUIDE.mdAlready dead: 2, both naming the same target, deleted in
8c5d20455.Control terms
Every zero reading here is paired with a known-present string run through the
same command shape:
raw/main,blame/,blob/mainwith no trailing slash → 0 files.Control in the identical command shape:
objectui/blob/main/MIGRATION→ 2 files. Thezeros are real absences, not a broken sweep.
.md/.mdxreturn 84/33, the populationthe gate already scans.
Why not widen — the census is small, and widening would not have worked anyway
The card's model is that the gate can already decide this URL and is only missing the
file. That is half true, and the missing half is decisive.
The gate's extractor is markdown link syntax only:
It never extracts a bare URL. All three genuine source-file links are bare URLs, and
both dead ones sit inside a runtime
console.warnstring literal, not a docblock:Measured — the gate's own
stripCode()+ its own extractor over those files:So widening the extension filter alone is a no-op for this defect shape — it would not
have caught #6275's link either. The two populations spell links differently, and that is
measurable in both directions: inside the gate's current markdown population, 116 of 116
self-repo blob/tree URLs are written as
[x](y)and 0 are bare; in source files, 3 of 3are bare.
The real fix would therefore be population widening plus a new bare-URL extractor — a
materially larger gate than "one row in
SCAN_ROOTS". That decision is handed back.On the
stripCode()analogue the card asked about: source files are all code, so theanalogue is the inverse — mask everything that is not a comment, which this repo already
answers once in
scripts/js-comment-mask.mjs. But that helper keeps comments only, andboth dead links live in string literals, which it masks out. The correct protection and
the target defect are mutually exclusive here.
The noise a widened sweep admits
Pointing the existing pipeline at 3,764 source files under
packages,apps,scripts,e2e,examplesextracts 257[x](y)matches and would emit 194 findings — none of thema genuine defect:
135 of them come from the gate's own test file — a widened gate's first act is to fail on
its own fixtures. 48 of the 257 extractions are not links at all, just TypeScript that matches
the regex:
packages/react/src/context/NotificationContext.tsxn.title, { description: n.message }packages/react/src/hooks/useActionRunner.tsmsgpackages/cli/src/__tests__/app-generator.test.tspackages/plugin-markdown/src/markdown-render.test.tsxjavascript:alert(1Triage's ratchet instruction was "if the widened sweep floods with historical debt, freeze it
in a reasoned baseline". What it floods with is not historical debt — it is test fixtures and
non-links. Baselining 194 fixture strings would not be a ratchet, so the instruction's
precondition is not met and no baseline is proposed.
Two-direction proof
Both dead-URL spellings planted in
packages/core/src/registry/Registry.ts, undertrap restore EXIT INT TERM, targetDEAD_PROBE_6342.mdconfirmed absent:Line 181 is the markdown spelling. Line 180, the bare spelling — the shape both real
dead links actually use — is not reported. That is the whole argument, measured.
Control that the simulator works: run on the gate's own fixture file it reports RED with 4
findings (
packages/gone/README.md,examples/crm).Restore verified, not assumed:
What this PR changes
packages/core/src/registry/Registry.ts— the missing-namespace warning now points at thelive docs page that documents namespaced registration,
/docs/guide/plugin-development#namespaced-registration. Verified with the gate's ownresolver:
routeExists('/docs/guide/plugin-development')→ resolves; dead control/docs/guide/definitely-not-a-real-page-xyz→ dead.packages/core/src/validation/validation-engine.ts— the function-based-condition warningdrops its
See:line. The deleted guide covered component namespaces and lazy fieldregistration and never documented conditions at all (
grep -i conditionovergit show 8c5d20455^:MIGRATION_GUIDE.md→ no output), so that pointer was misdirected aswell as dead. The message already carries a complete before/after inline.
@object-ui/corepatch.Neither site can use the immutable
git show SHA^:PATHprovenance form #6275 used — thatwas a docblock read by contributors with the repo; these are console messages read by
application developers who have only the npm package.
Because the gate's scan surface is unchanged, the surface descriptions #6280 rewrote stay
accurate; nothing there needed updating in this PR.
Verification
Union re-run on the final commit
5beb3e6ed, clean tree:The whole
scripts/__tests__tree is included, as the dispatch required (81 files on its ownrun; 181 in the union above with
packages/core/).Generated by Claude Code