129 lines
8.1 KiB
Markdown
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.
|