sync: bring dev to main (1.0.0-alpha.5) - #1466
Merged
Merged
Conversation
…me convergence (#1459) * ci: trim advisory jobs from default PR workflow * feat(alpha5): part-level streaming, WC admission tiers, runtime consolidation Consolidates the alpha5 framework train (local implementation; CI pending): - Streaming: opt-in compiled server executor with route-local defer manifests (#1450), generated Request->Response handler with preflush gates/cancel/backpressure (#1447), browser backfill installer and late part claim (#1448), navigation FSM stream ownership (#1449), shared stream-frame admission policy, Nitro Node/Workers proofs. - WC admission: ADR-0157 tier diagnostics with third-party fixture evidence (#1451) and T1 snapshot prototype with negative upgrade result (#1452). - Runtime: minimal-move keyed reconciliation + benchmarks (#1455), one internal LifetimeScope type replacing ElementLifecycle (#1458), internal renderer selection convergence with byte-identical generated entries (#1457), each prevalidation and fail-closed Part Program conformance (#1456). - Release engineering: CI nested-packed de-dup, evidence/receipt hardening (#1443), streaming reference route + benchmark (#1453), ADR-0158/0159 drafts (PROPOSED), qualification matrix, CHANGELOG. * chore(www): regenerate content dates after alpha5 content commit * fix(alpha5): qualification hardening — T2 probe, review fixes, tier corrections - T2 stream-survival probe (#1451): a Lit element server-born in the streamed shell survives stream+backfill (single instance, slot children preserved, interactive after upgrade); boundary documented — foreign tags are fail-closed inside backfilled deferred regions. - Twenty review-driven fixes across five hardening rounds: typed-frame comparison (number/boolean/null text Parts), front-gate thenable sweeps (rejections become 500s, not process deaths), build/runtime/browser budget parity (32 fields / 64 owners / 64 properties), shared stream-frame admission policy with entity-obfuscation normalization (element canonical + router copy pinned by parity tests), early-frame claim-drift fix (resolved seed applied after pending own values, server value wins like late frames), explicit benchmark permissions, honest parity comments, no repo-internal paths in shipped artifacts. - WC admission corrections (#1451): firstChild pre-upgrade capture (Shoelace sl-button and Material md-filled-button now genuinely pass T0 — 3/11), hydrationSafe null semantics, zh translation and full site wiring for the web-component-admission page. - Legacy fixes surfaced by the full root suite: create README stale alpha.2 pin updated to registry truth alpha.4. * refactor(alpha5): promote streamed-frame policy to a public export; accept ADRs - Option B (owner ruling 2026-09-25): the canonical stream-frame admission policy is now exported from @openelement/element's public surface; the router-side verbatim copy is deleted and its consumers (entry-stream-runtime, stream-manifest) import the public export. The parity test is replaced by a direct unit test against the exported policy (32-case corpus; one stale 
 expectation corrected). - ADR-0157/0158/0159 marked ACCEPTED (2026-09-25 owner ruling; alpha public-API variability explicitly accepted); qualification matrix and WC admission docs (en/zh) synced to the accepted status. - Interface snapshot: +5 policy exports across the two surfaces. * test(alpha5): sweep residuals — real assertions, honest gates, live evidence Ten owner-ordered residual fixes plus two review follow-ups: - SWEEP-1/2: replace tautological reconnect/signal assertions with real kernel/scope contract tests (distinct instances, abort lifecycle). - SWEEP-3: stream-handler harness now slices the REAL generated channel-merge helper (fail-loud markers) and proves protocol-header precedence + Set-Cookie through the generated GET. - SWEEP-4: WC light-DOM child verification scoped to the host element (balanced tag slicing) instead of whole-document substring match. - SWEEP-5: 'export { x as loader }' aliases admitted end-to-end (export name is the module.loader contract); follow-up: duplicate 'as loader' exports rejected by the scan with an actionable diagnostic. - SWEEP-6: cancel-while-parked no longer closes a cancelled stream; regression probe bounded with a deadline (no unbounded polling). - SWEEP-7: app-shell gate investigated — project-level invariant kept, both build and generated-guard errors now tell the truth and name the project-wide fix. - SWEEP-8/9: benchmark metadata now computed (git-status probe, no port race — single in-process serve). - SWEEP-10: snapshot cache hit/miss are observations, README aligned.
* feat(www): generate article routes from content; document streaming - New generator www/tools/generate-site-article-routes.ts: the single writer of article route modules, component bindings, and the route table (imported by article-pages tests). --check enforces byte identity; stray hand-written files and symlinks fail closed; duplicate output collisions (e.g. an 'index' article vs a collection overview) throw instead of silently dropping a route. - All 24 existing articles migrated to generator output (46/48 files byte-identical to the hand-written versions; dist output verified byte-identical pre/post migration). check wired into generate:all and the release train. - Streaming guide (en/zh): opt-in defer syntax, front gate vs deferred fields, budgets mirrored in four places incl. the 64-property seed cap, no-JS arrival-order tail, null literal semantics, islands and nested components emit as empty hosts on streamed shells (linked from islands-and-ssr), post-commit failures emit a generic error frame (no error-variant content), byte-identical output with streaming off. - doc-figures pins re-baselined to current dist measurements. * chore(www): regenerate content dates after generator lane content commit
* release: 1.0.0-alpha.5 — rendered as data resolves Advances the six version points via version-bump (4 package configs, create anchor, 4 fixture locks), admits the train (ADMITTED_ACTIVE_TARGET, release-state sourceVersion/activeTarget), and finalizes the CHANGELOG section header. Publishing follows the standard train: exact-SHA CI on main, Release workflow dispatch under the openelement-release environment, npm trusted publishing, receipt verification, tag + GitHub Release, post-publish registry-truth sync. * release: regenerate ui manifest at 1.0.0-alpha.5 (seventh version site, generator-owned)
The pinned fixture mirrors the repo's current source versions and release-state; it still pinned alpha.4 after the train admission, failing tools/repo#test:coverage:check (the eighth release-bookkeeping site). Registry evidence in the fixture is untouched: npm truth stays alpha.4 until publish.
…ete) (#1463) Registry verified 2026-09-26: all four packages published under the alpha dist-tag; latest untouched. latestPrerelease partition advanced, per-package alpha dist-tags recorded, create README install pin and the least-privilege exemption line follow the published version.
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.
Fast-forward sync of
devtomainafter the 1.0.0-alpha.5 release train.devis currently atc32b3c648(the pre-alpha5 tip); main carries five commits since: the alpha5 consolidation (#1459), generator lane (#1460), and release bookkeeping (#1461/#1462/#1463). Rebase-merge yields the identical tree/SHA on dev (dev is an ancestor of main; no content is new). npm registry truth: 4/4 packages @1.0.0-alpha.5.