fix(design-sync): complete the Preact value-import surface so the registry can bundle#775
Open
rickylabs wants to merge 1 commit into
Open
fix(design-sync): complete the Preact value-import surface so the registry can bundle#775rickylabs wants to merge 1 commit into
rickylabs wants to merge 1 commit into
Conversation
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.
Summary
deno task design:synccould not bundle the currentfresh-uiregistry at all. This fixes the converter and makes the failure mode loud.The bug
The registry gained an
mcp-ui-widgetisland that importshfrompreactas a value. The converter rewrites registrypreactimports onto a synthetic__ds/preact-compat.tsshim — and that shim had nohexport, so the emitted package could not bundle:What changed
h.convertUnitsnaming unit, file, and symbol — beforedeno bundleis reached. A bundler error is a worse diagnostic than the converter's own.A defect caught in review, worth recording
The slice also improved the idempotence tree-hash separator — a genuine improvement — but wrote literal NUL bytes into
mod.tsinstead of the\0escape. Git then classified a TypeScript file as binary (Bin 6321 -> 6236).Every gate was green while that landed:
deno check, lint, fmt, the unit tests, parity, all six trap checks, and the idempotence gate — because the hash is self-consistent, so idempotence structurally cannot see it, and the TS parser tolerates NUL inside a template literal. Only reading the diff caught it. Fixed to`${p}\0${c}\0`— identical runtime semantics (the idempotence hash is unchanged, which is the proof), plain-text source, reviewable diff.Validation
deno task design:sync check→ PASS: parity green, idempotence PASS (f0714aeb10ab), all six trap checks present, 184-file bundle.theme-toggleweak props;mcp-ui-widgetpredicted blank (requiressrc/theme).deno check/ lint / fmt clean overtools/design-sync.Why it matters
This unblocked the beta.10 dashboard work: the NS One design system has since been re-synced with 184 files from today's real registry, so Claude Design generates against current components rather than a stale snapshot.
ci.ymlonly triggers on PRs intomain, socheck-testandqualitydo not run on this PR. The green ticks here coversurface-diff+code-qualityonly. The gates above were run locally; the first honest CI verdict for this wave is thefeat/beta10-integration→mainPR.Harness
Codex slice, reviewed by the orchestrator (opposite family) — the diff was read, not the verdict trusted. Run dir:
.llm/runs/beta10--orchestrator/, slicedesign-sync-preact-compat. Not self-certified.🤖 Generated with Claude Code
https://claude.ai/code/session_01HTiQfrNFCVhjQFqbLKm5xo