4.1 KiB
WRNexusJS 0.8.3 validation report
Validated in the prepared source archive
- All 47 root/package manifests use version
0.8.3and all non-workspace internal dependency ranges resolve to0.8.3. - The CLI migration registry contains
0.8.3-client-ssr-realtime-stability. - All official package
.wrnfiles pass parse/code-generation checks. - All official reusable components pass explicit-import validation.
- The UI visual contract, public API baseline, workspace repair check, security framework audit, and ASVS policy checks pass.
- Regression scripts verify request-derived SSR computed values, view-only browser imports, typed loop props, Async aliases, template literals in fallback expressions, native client function preservation, settings persistence, realtime identity isolation, and the TeamSpace example browser-module graph.
- The generated VS Code compiler bundle was rebuilt from the updated syntax/compiler source.
Release-candidate corrections
After the first Windows release-gate run, the source archive was corrected for four TypeScript errors:
- Removed the unsupported
writeproperty fromBun.build()configuration objects while keeping in-memory artifact reads throughBuildOutput.outputs. - Typed the merged import-alias map as
Record<string, string>. - Cast Happy DOM
CustomEventvalues to the exactWindow.dispatchEventparameter type in CSR tests. - Removed local
.envand.env.uatfiles from the source archive; equivalent.exampletemplates remain included.
A second Windows release-gate run exposed ten ESLint errors in release helper scripts. The source
archive was corrected by importing Node globals explicitly in scripts/check-component-imports.mjs
and replacing hard-counted regex spaces with {4} and {6} quantifiers in
scripts/validate-0.8.mjs and update-package-versions.mjs.
A third Windows release-gate run showed that the package component validator was traversing
workspace-installed dependency copies under nested node_modules directories. Those files are not
first-party package sources and were being checked against the manifest of the containing workspace
package. The validator now excludes dependency and generated directories (node_modules, dist,
coverage, .git, .wrnexus, and .publish) while still scanning every official source component.
A regression fixture confirms that an invalid nested dependency component is ignored and the 146
official source files remain validated.
A fourth Windows release-gate run found that editors/vscode/src/compiler.cjs was stale after the
final compiler changes. The bundle was regenerated from all 26 current syntax/compiler TypeScript
modules. A fifth Windows run then exposed a cross-environment false positive: the archive had been
generated with TypeScript 5.8.3 while the frozen release install uses TypeScript 5.9.3, and the old
checker compared transpiled output byte-for-byte. The editor compiler generator now normalizes source
and line endings, emits source and generator SHA-256 fingerprints, and performs an exact-output check
when the TypeScript version matches. When only the TypeScript patch version differs, it validates the
source/generator fingerprints instead. Genuine source changes still fail the freshness gate.
The corrected helper scripts pass Node syntax checks. Package component import validation passes
for all 146 official WRN files. The 0.8 validation script advances through its source-only checks
in the preparation environment and stops only when dependencies excluded from the release archive
are required. The complete TypeScript and Bun test gates still need to be rerun on the release
machine after bun install --frozen-lockfile.
Required final release verification
The preparation environment did not include the Bun executable. Therefore the complete Bun test, lint, formatting, package build, editor bundle comparison, staged-consumer, and publish dry-run must still be executed on the release machine:
bun install --frozen-lockfile
bun run check:production
bun run release:prepare
bun run validate:staging
bun run test:staged-consumers
A release should not be published if any command above fails.