fix(qa): manifest sees academy tools used via the global MDX component map#4287
Open
ryanpinsker wants to merge 2 commits into
Open
fix(qa): manifest sees academy tools used via the global MDX component map#4287ryanpinsker wants to merge 2 commits into
ryanpinsker wants to merge 2 commits into
Conversation
The manifest generator and embed-integrity scan only detected explicit 'import ... from @/components/toolbox/...' lines in MDX. But academy pages can render ~22 toolbox components as bare JSX tags through the global toolboxComponents map in app/academy/[...slug]/page.tsx — no import line at all. Those pages were invisible to the entire harness. Impact: 22 academy pages enter the manifest (55 -> 77), including BOTH convert-subnet-to-l1 course pages (the subject of the original QA report — never actually swept), the entire erc20-bridge course, and pages across l1-native-tokenomics, access-restriction and avalanche-fundamentals. scanContentMdx now also detects bare-tag usages of globally-mapped components (code fences stripped first; per-file imports take precedence), and manifest tools carry via: 'import' | 'global-map' so the judge tier can tell how a page binds its tools.
…t toolbox) 06-setup-core imports a Faucet content partial from content/common — at MDX runtime that local binding shadows the global map's toolbox Faucet, so the page has no console tool. Count shadowing from ALL local imports (default + named) when detecting bare global-map tags. Drops the false positive; manifest settles at 76 academy pages.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This was referenced Jun 11, 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 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.
Stacked on #4283 (modifies its
scripts/lib/qa-surfaces.mts+ manifest, which don't exist on master yet — will retarget to master once #4283 lands).Problem
The manifest generator and embed-integrity scan only detected explicit
import ... from '@/components/toolbox/...'lines in MDX. But academy pages can render ~22 toolbox components as bare JSX tags through the globaltoolboxComponentsmap inapp/academy/[...slug]/page.tsx(<ConvertToL1 />,<TestSend />, …) with no import line. Those pages were invisible to the manifest, the sweep, and the integrity check.This is why the original QA report cited 3 pages when more were affected — and why convert-subnet-to-l1 was never swept at all.
Fix
scanContentMdxnow also detects bare-tag usages of globally-mapped components for academy pages (parses thetoolboxComponentsmap, strips code fences first, and lets a same-named local import shadow the map — e.g.06-setup-core'sFaucetcontent partial is NOT the toolbox Faucet).via: 'import' | 'global-map'so the judge tier knows how a page binds each tool.Impact
Academy pages in the manifest: 55 → 76. Newly visible includes both convert-subnet-to-l1 pages, the entire erc20-bridge course, and pages across l1-native-tokenomics / access-restriction / avalanche-fundamentals.
First sweep of the 21 new pages (local dev): 16 render clean, 2 hit the known TestSend crash (fixed by #4285), 3 are
GenesisBuilder embeddedchrome-less tools (detector gap, not breakage — noted on #4283).