Files
WRNexusJS/docs/VALIDATION-0.8.3.md
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

129 lines
8.1 KiB
Markdown

# 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:
```bash
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.