Files
WRNexusJS/docs/VALIDATION-0.8.3.md
T
Clintchiz 72e4d3eceb
Quality / quality (ubuntu-latest) (push) Failing after 12m19s
Quality / quality (windows-latest) (push) Canceled after 0s
release: WRNexusJS 0.8.0
2026-08-04 12:19:09 +05:30

8.1 KiB

WRNexusJS 0.8.3 validation report

Validated in the prepared source archive

  • All 47 root/package manifests use version 0.8.3 and all non-workspace internal dependency ranges resolve to 0.8.3.
  • The CLI migration registry contains 0.8.3-client-ssr-realtime-stability.
  • All official package .wrn files 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 write property from Bun.build() configuration objects while keeping in-memory artifact reads through BuildOutput.outputs.
  • Typed the merged import-alias map as Record<string, string>.
  • Cast Happy DOM CustomEvent values to the exact Window.dispatchEvent parameter type in CSR tests.
  • Removed local .env and .env.uat files from the source archive; equivalent .example templates 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.

Editor and language-server correction validation

The editor correction candidate includes framework-level fixes for the issues reproduced in the Framework Showcase and official UI components:

  • The packaged language server starts and completes initialize/shutdown over stdio under Node.
  • Diagnostic requests are isolated so one malformed or unsupported document cannot terminate the language-server process.
  • HTML tag validation runs only against view markup and ignores TypeScript generics, typed output payloads, WRN expressions, HTML comments, and JavaScript-looking text in <pre><code> blocks.
  • AuthForm.wrn and FeatureGrid.wrn publish zero editor diagnostics in the packaged language-server smoke test.
  • Dynamic boolean and literal-option component expressions are accepted while invalid static literals remain errors or warnings.
  • WRN boolean string attributes such as required="true" are accepted by component contract checks.
  • Reserved prop names such as class are not emitted as invalid standalone TypeScript bindings.
  • Missing TypeScript standard libraries from a packaged bundle no longer create a flood of unrelated global-type errors; runtime, component, and syntax diagnostics remain available.
  • Formatter tests cover raw code samples, compact adjacent/nested markup, long bare elements, multiline component attributes, inline control blocks, and repeated-pass idempotence.
  • The embedded compiler, language server, and extension bundles carry normalized source/generator fingerprints, and the language-server bundle is smoke-tested as a Node entrypoint.

A Windows editor test run exposed four remaining semantic diagnostics in AuthForm.wrn: an untyped dynamic output name was emitted as unknown, its payload was narrowed to {}, and indexed output dispatch was rejected by the synthetic output contract. The virtual TypeScript generator now follows JavaScript semantics for omitted parameter types, keeps explicitly typed parameters strict, and gives the synthetic output object a callable string index used only for dynamic dispatch. Direct unknown output.name() calls remain protected by WRN syntax diagnostics.

The language-server typecheck host now resolves TypeScript standard libraries from the active workspace when the bundled TypeScript compiler cannot find libraries beside language-server.cjs. A dedicated test intentionally introduces a typed payload error and requires WRN-TYPE-2322, so the editor suite can no longer pass merely because semantic checking was silently skipped.

The Node editor test suite passes 41 tests, including zero diagnostics for AuthForm.wrn and FeatureGrid.wrn with workspace TypeScript libraries enabled. Extension manifest/grammar validation passes, all 21 Framework Showcase WRN files compile, and all 146 official WRN component files pass parser/codegen and explicit-import validation in the preparation environment.

A subsequent Windows production-gate run exposed two final ESLint failures and one reviewed visual contract delta. The unused legacy stripComments helper was removed from the VS Code diagnostics source and generated extension bundle. scripts/build-editor-language-server.mjs now imports Buffer from node:buffer, so the release scripts remain compatible with the repository's no-undef policy. The language-server generator fingerprint was refreshed accordingly.

The UI visual gate differed only for packages/ui/components/AuthForm.wrn. Comparison with the previous accepted baseline confirmed that the source change consisted solely of corrected indentation for the size prop and nested Checkbox; no classes, attributes, conditions, or rendered content changed. The 0.8 visual baseline was regenerated after that review.

The editor suite passes 41/41 tests when workspace TypeScript libraries are present. UI visual contract validation passes for 109 artifacts, explicit component imports pass for 146 WRN files, the public API baseline matches all 46 packages, and extension manifest/grammar validation passes.

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.