# Upgrade to WRNexusJS 0.4.0

## Recommended upgrade

```bash
bun add -D @wrnexus/cli@0.4.0
bun x wrnexus update . --version=0.4.0
```

For this monorepo source bundle:

```bash
bun install
bun run verify:0.4
bun run validate:0.4
```

## CAPTCHA migration

Before 0.4, CAPTCHA integrations could contain copied files such as:

- `public/assets/wrnexus/captcha.js`
- `public/__wrnexus/captcha.js`
- a manually copied `Captcha.wrn`
- an application-authored `<script src="...captcha.js">`

The 0.4 updater:

1. removes known legacy CAPTCHA script tags from `.wrn` files;
2. archives public runtime copies under `.wrnexus/legacy-assets/0.4.0/`;
3. preserves customized files in the backup created before migration;
4. records the migration at `.wrnexus/migrations/0.4.0.json`.

After updating, keep `@wrnexus/captcha` in application dependencies and use `<Captcha />`. Its component and browser runtime are discovered automatically.

## Package authors

Add a `wrnexus.plugin` package manifest or manifest contributions. Ensure IDs are stable and globally unique. Client runtime code must expose idempotent `mount` and `unmount` functions. Use package migrations for schema required by the package instead of asking applications to copy migration files.

## Compatibility checks

Run:

```bash
wrnexus doctor .
wrnexus inspect packages .
wrnexus inspect plugins .
wrnexus inspect runtimes .
wrnexus inspect assets .
wrnexus inspect routes .
wrnexus inspect migrations .
```

Production style processing now fails the build when the configured processor fails. Install the application’s Tailwind/PostCSS dependencies before building.
