chore: v0.42.0-alpha.9 cleanup train (#632-#644) - #645
Open
SisyphusZheng wants to merge 9 commits into
Open
Conversation
added 7 commits
July 30, 2026 11:34
Unify escapeHtml/escapeAttr into one map-driven impl (#633); declare locale on OpenElement instead of unsafe Record cast (#639); consolidate Fragment detection to isFragment() at 3 sites (#640); make logger _warned render-scoped instead of process-global (#643); make _telemetryHook request-scoped via explicit param, no global singleton (#644). Add regression tests for errors/html-escape/logger.
…#634 #636 #642) Render-scoped dataStack via explicit param passing, fixes nested-component empty-stack read (#632); drop redundant internal/router/internal/data-context.ts re-export (#634); use createLogger in client-router/spa instead of raw console.error (#636); validate tagName (SyntaxError on bad chars, warn+empty render on unregistered) and remove dead guard (#642).
…ression) After #638 dropped export default from UI package chunks, the client island factory read mod.default and failed to register package islands. Add optional exportName to ClientIslandEntry/IslandDecl; package islands resolve it from CEM className, local/route islands fall back to mod.default. Update build-client/island-scanner/entry-generators.
Package island chunks dropped export default; resolve constructor via mod.OpenButton first, then ns.default, then mod.default.
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
Contributor
|
APIError: Insufficient Balance |
#636 added a runtime \`import { createLogger } from '@openelement/element'\` to packages/app/src/spa.ts (and client-router.ts). The www e2e bare bundle runs Vite with configFile:false, so it never inherited the workspace alias that the production www build gets from adapter-vite — Rolldown failed to resolve the bare specifier and autoflow-ci broke. Mirror the production alias + esbuild jsx config so the in-memory SPA/router bundle can resolve @openelement/element and its jsx-runtime from source.
Contributor
|
APIError: Insufficient Balance |
open-button: bind _handleClick as an arrow field so the framework's raw addEventListener wires 'this' to the component instance (fixes shadow-DOM submit not reaching the outer form; preserves the onClick === this._handleClick identity required by #637). project-constants.ts + 6 version-anchor docs: bump to 0.42.0-alpha.9. release:evidence:check now passes because the tag is unpublished. Backfilling alpha.8 was impossible (its autoflow3 evidence snapshot and release note were never written), so the only valid fix is to version this PR as alpha.9. deno fmt (909 files) and interface:snapshot regeneration (5 packages).
Contributor
|
APIError: Insufficient Balance |
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
Quality/hygiene cleanup train for
v0.42.0-alpha.9, resolving all 13 issues in milestone #16 (#632–#644). No new product surface; followsv0.42.0-alpha.8._warnedSet request/render-scoped instead of process-global (F3) #643 fix(element): make_telemetryHookrequest-scoped or restrict to startup-only setup (F4) #644): unifiedescapeHtml/escapeAttr; typedlocaleonOpenElement; consolidated Fragment detection toisFragment();logger._warnedmade render-scoped;_telemetryHookmade request-scoped via explicit param (no global singleton, no ALS).internal/router/internal/data-context.tsre-export; reuse@openelement/elementcreateLogger;tagNamevalidation (SyntaxErroron bad chars, warn + empty render on unregistered) and remove dead guard.OpenButton._handleClickinto_submitForm/_resetForm; removeexport defaultfrom all 11 UI components (named exports only).islandImportFactoryreadsmod[exportName] || mod.default; package islands resolveexportNamefrom CEMclassName, local/route islands fall back tomod.default.build/test/lint/typechecktasks across packagedeno.json; addtesttask topackages/create.OpenButtonexport.Verification
deno lintclean (test runs include type-checking)mod[exportName]path.Notes
_warnedSet request/render-scoped instead of process-global (F3) #643 fix(element): make_telemetryHookrequest-scoped or restrict to startup-only setup (F4) #644 (already closed).wwwPlaywright e2e (hydration-behavior.spec.ts) runs in CI — this PR is the final confirmation of the chore(ui): remove unused default exports from all 11 UI components (M-5) #638 named-export path that could not be executed in the local sandbox.🤖 Generated with OpenElement release tooling.