Skip to content

fix(qa): manifest sees academy tools used via the global MDX component map#4287

Open
ryanpinsker wants to merge 2 commits into
feature/academy-qa-harnessfrom
qa/manifest-global-map
Open

fix(qa): manifest sees academy tools used via the global MDX component map#4287
ryanpinsker wants to merge 2 commits into
feature/academy-qa-harnessfrom
qa/manifest-global-map

Conversation

@ryanpinsker

@ryanpinsker ryanpinsker commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

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 global toolboxComponents map in app/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

  • scanContentMdx now also detects bare-tag usages of globally-mapped components for academy pages (parses the toolboxComponents map, strips code fences first, and lets a same-named local import shadow the map — e.g. 06-setup-core's Faucet content partial is NOT the toolbox Faucet).
  • Manifest tools carry 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 embedded chrome-less tools (detector gap, not breakage — noted on #4283).

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.
@vercel

vercel Bot commented Jun 10, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
builder-hub Ready Ready Preview, Comment Jun 10, 2026 8:52pm

Request Review

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant