# Upgrade to WRNexusJS 0.8.3

WRNexusJS 0.8.3 is a framework stability release. It fixes browser hydration modules,
SSR computed values, Async scopes, typed props in loops, realtime connection identity,
loader invalidation, strict component imports, and development diagnostics.

## Application migration

No application source rewrite is required. The `0.8.3-client-ssr-realtime-stability`
migration is intentionally idempotent and records the upgrade in the CLI migration registry.

After updating all `@wrnexus/*` dependencies to `0.8.3`, remove generated artifacts so the
new browser-module cache format is used:

```bash
rm -rf .wrnexus dist
bun install
bun run check
```

On Windows PowerShell:

```powershell
Remove-Item -Recurse -Force .wrnexus, dist -ErrorAction SilentlyContinue
bun install
bun run check
```

## Behavior changes

- Hydrated `.wrn` browser modules are bundled before they are served or emitted. Browser code
  no longer receives unresolved bare package imports or `file:` filesystem imports.
- Generated native `client` and `shared` functions take precedence over the CSP-safe expression
  fallback. The fallback also accepts template literals inside call arguments.
- Page computed values are declared for SSR in dependency order. Computed cycles fail with
  `WRN-COMPUTED-CYCLE`.
- Whole-expression object and array props inside `{#each}` are serialized as typed props.
- `<Success data="...">` and `<Error error="...">` aliases have branch-local scope.
- Realtime sockets are keyed by room plus normalized query identity and reconnect when identity
  attributes change.
- `$route` and `route` expose reactive pathname, query, hash, and params to hydrated views.
- Uploader success events dispatch cache invalidation tags. Matching client Async boundaries
  refresh automatically.
- The unsupported default `unload` Permissions Policy directive has been removed.
- Official package components now satisfy `imports.mode = "explicit"`.

## Publishing 0.8.3

Run the complete release gate with Bun before publishing:

```bash
bun install --frozen-lockfile
bun run check:production
bun run release:prepare
bun run release:private
```

`release:prepare` rebuilds package distributions and verifies that version `0.8.3` has a CLI
migration entry. Do not publish stale `dist` directories from an older release.
