> ## Documentation Index
> Fetch the complete documentation index at: https://stars-components.js.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Changelog

> Weekly summaries of user-facing changes across every @wolfstar package, with links to per-package CHANGELOG.md files and GitHub releases.

Weekly summaries of user-facing changes to Stars Components and the WolfStar plugins. For the full history of one package, open its changelog page below, or see the release history of the [`stars-components`](https://github.com/wolfstar-project/stars-components/releases) and [`plugins`](https://github.com/wolfstar-project/plugins/releases) repositories.

## All packages

### Stars Components

| Package | Latest version | Changelog |
| - | - | - |
| `@wolfstar/cli` | `2.12.0` | [View](https://stars-components.js.org/documentation/changelog/stars-components/cli.md) |
| `@wolfstar/create-http-framework` | `2.10.0` | [View](https://stars-components.js.org/documentation/changelog/stars-components/create-http-framework.md) |
| `@wolfstar/decorators` | `0.1.3` | [View](https://stars-components.js.org/documentation/changelog/stars-components/decorators.md) |
| `@wolfstar/discord-utilities` | `0.1.1` | [View](https://stars-components.js.org/documentation/changelog/stars-components/discord-utilities.md) |
| `@wolfstar/env-utilities` | `2.3.1` | [View](https://stars-components.js.org/documentation/changelog/stars-components/env-utilities.md) |
| `@wolfstar/eslint-config` | `0.1.3` | [View](https://stars-components.js.org/documentation/changelog/stars-components/eslint-config.md) |
| `@wolfstar/eslint-plugin-http-framework` | `0.1.3` | [View](https://stars-components.js.org/documentation/changelog/stars-components/eslint-plugin-http-framework.md) |
| `@wolfstar/http-framework-test-utils` | `4.0.4` | [View](https://stars-components.js.org/documentation/changelog/stars-components/http-framework-test-utils.md) |
| `@wolfstar/http-framework-utilities` | `0.1.2` | [View](https://stars-components.js.org/documentation/changelog/stars-components/http-framework-utilities.md) |
| `@wolfstar/http-framework` | `6.5.1` | [View](https://stars-components.js.org/documentation/changelog/stars-components/http-framework.md) |
| `@wolfstar/i18next-backend` | `2.0.13` | [View](https://stars-components.js.org/documentation/changelog/stars-components/i18next-backend.md) |
| `@wolfstar/i18next-type-generator` | `3.1.6` | [View](https://stars-components.js.org/documentation/changelog/stars-components/i18next-type-generator.md) |
| `@wolfstar/influx-utilities` | `1.1.6` | [View](https://stars-components.js.org/documentation/changelog/stars-components/influx-utilities.md) |
| `@wolfstar/kit` | `0.3.1` | [View](https://stars-components.js.org/documentation/changelog/stars-components/kit.md) |
| `@wolfstar/nitro-server` | `0.2.13` | [View](https://stars-components.js.org/documentation/changelog/stars-components/nitro-server.md) |
| `@wolfstar/oxfmt-config` | `0.2.3` | [View](https://stars-components.js.org/documentation/changelog/stars-components/oxfmt-config.md) |
| `@wolfstar/oxlint-config` | `0.2.3` | [View](https://stars-components.js.org/documentation/changelog/stars-components/oxlint-config.md) |
| `@wolfstar/prettier-config` | `0.1.3` | [View](https://stars-components.js.org/documentation/changelog/stars-components/prettier-config.md) |
| `@wolfstar/reddit-helpers` | `1.2.8` | [View](https://stars-components.js.org/documentation/changelog/stars-components/reddit-helpers.md) |
| `@wolfstar/safe-fetch` | `1.1.10` | [View](https://stars-components.js.org/documentation/changelog/stars-components/safe-fetch.md) |
| `@wolfstar/schema` | `0.12.0` | [View](https://stars-components.js.org/documentation/changelog/stars-components/schema.md) |
| `@wolfstar/shared-http-pieces` | `2.1.0` | [View](https://stars-components.js.org/documentation/changelog/stars-components/shared-http-pieces.md) |
| `@wolfstar/shared-influx-pieces` | `1.2.0` | [View](https://stars-components.js.org/documentation/changelog/stars-components/shared-influx-pieces.md) |
| `@wolfstar/start-banner` | `2.1.3` | [View](https://stars-components.js.org/documentation/changelog/stars-components/start-banner.md) |
| `@wolfstar/twitch-helpers` | `2.0.9` | [View](https://stars-components.js.org/documentation/changelog/stars-components/twitch-helpers.md) |
| `@wolfstar/vite-server` | `0.5.2` | [View](https://stars-components.js.org/documentation/changelog/stars-components/vite-server.md) |
| `@wolfstar/weather-helpers` | `1.1.7` | [View](https://stars-components.js.org/documentation/changelog/stars-components/weather-helpers.md) |

### Plugins

| Package | Latest version | Changelog |
| - | - | - |
| `@wolfstar/plugin-api` | `2.2.0` | [View](https://stars-components.js.org/documentation/changelog/plugins/plugin-api.md) |
| `@wolfstar/plugin-broker` | `0.7.0` | [View](https://stars-components.js.org/documentation/changelog/plugins/plugin-broker.md) |
| `@wolfstar/plugin-cache` | `0.8.0` | [View](https://stars-components.js.org/documentation/changelog/plugins/plugin-cache.md) |
| `@wolfstar/plugin-gateway` | `0.16.0` | [View](https://stars-components.js.org/documentation/changelog/plugins/plugin-gateway.md) |
| `@wolfstar/plugin-i18next` | `2.3.0` | [View](https://stars-components.js.org/documentation/changelog/plugins/plugin-i18next.md) |
| `@wolfstar/plugin-logger` | `0.5.0` | [View](https://stars-components.js.org/documentation/changelog/plugins/plugin-logger.md) |
| `@wolfstar/plugin-opentelemetry` | `0.1.0` | [View](https://stars-components.js.org/documentation/changelog/plugins/plugin-opentelemetry.md) |
| `@wolfstar/plugin-scheduled-tasks` | `0.3.0` | [View](https://stars-components.js.org/documentation/changelog/plugins/plugin-scheduled-tasks.md) |
| `@wolfstar/plugin-sharder` | `0.3.0` | [View](https://stars-components.js.org/documentation/changelog/plugins/plugin-sharder.md) |
| `@wolfstar/plugin-subcommands-advanced` | `2.3.0` | [View](https://stars-components.js.org/documentation/changelog/plugins/plugin-subcommands-advanced.md) |

## Weekly summaries

## 2026-10-30

The new `@wolfstar/plugin-opentelemetry` `0.1.0` traces your bot with OpenTelemetry.

### New features

* **New `@wolfstar/plugin-opentelemetry` package** — Load `@wolfstar/plugin-opentelemetry/preload` with `--import` to start the OpenTelemetry SDK when an OTLP endpoint is set, with an optional Sentry exporter from `SENTRY_DSN`. The plugin, or the module under the `opentelemetry` key of `stars.config`, opens one span per command and handler. `flushTraces()` exports pending spans on shutdown. See [`@wolfstar/plugin-opentelemetry`](https://stars-components.js.org/documentation/packages/plugin-opentelemetry).

## 2026-10-23

Stars modules can now ship pieces, locales, and client hooks, `stars dev` gains `--host` and startup port checks, `plugin-gateway` `0.15.0` adds application commands, emojis, and monetization, and every plugin gets its own `stars.config` key.

### New features

* **Modules ship pieces, locales, and hooks** — [`@wolfstar/kit`](https://stars-components.js.org/documentation/packages/kit) `0.3.0` adds `ctx.addPiecesDir(directory)`, `ctx.addLocales(directory)`, and client lifecycle `hooks` (or `ctx.addClientHook(name, source)`). `stars info` lists what each module adds.
* **Opt-in module-only registration** — With `future.compatibilityVersion: 7`, only the modules in `stars.config` register. Installed `@wolfstar/plugin-*` packages are no longer activated by name, and a skipped plugin warns with `PLUGINS_NOT_REGISTERED`. See [`@wolfstar/schema`](https://stars-components.js.org/documentation/packages/schema).
* **`stars dev --host` and `-p`** — [`@wolfstar/cli`](https://stars-components.js.org/documentation/packages/cli) `2.12.0` sets the listen address with `--host [address]`, and a bare `--host` listens on every interface. `-p` is now short for `--port`.
* **Remove a subcommand or group** — `stars commands clean --name` accepts paths like `settings server`, keeping the parent and its other subcommands.
* **Dev output styles and startup checks** — [`@wolfstar/cli`](https://stars-components.js.org/documentation/packages/cli) `2.11.0` adds `tui.style` and `--style` (Nuxt-style, dashboard, or plain). `stars dev` checks ports before startup and offers the next free one.
* **`stars codegen --only`** — Run only the `i18n` or `commands` generator, for example to check i18next types in CI without secrets or a build.
* **Shared pieces as modules** — [`@wolfstar/shared-http-pieces`](https://stars-components.js.org/documentation/packages/shared-http-pieces) `2.1.0` and [`@wolfstar/shared-influx-pieces`](https://stars-components.js.org/documentation/packages/shared-influx-pieces) `1.2.0` add a `/module` entry to list in `modules` instead of importing `/register`.
* **Application commands, emojis, and monetization** — [`@wolfstar/plugin-gateway`](https://stars-components.js.org/documentation/packages/plugin-gateway) `0.15.0` adds `client.application.commands`, `guild.commands`, `client.application.emojis`, `client.application.entitlements`, `fetchSKUs()`, and subscriptions.
* **`RegisterAsDispatchListener`** — Run a gateway listener on one process only, so a bot sharing pieces between the gateway and [`plugin-broker`](https://stars-components.js.org/documentation/packages/plugin-broker) workers no longer handles each dispatch twice.
* **More gateway helpers** — `Message#threadable`, `client.channels.createMessage(channel, options)`, and `channel.messages.crosspost` by ID.

### Updates

* **Plugin `stars.config` keys** — Every plugin sets `meta.configKey`, so you can configure it under its own key (`api`, `broker`, `i18n`, `logger`, `scheduledTasks`, …) instead of a `modules` tuple. Plugins now need `@wolfstar/kit` `^0.2.0`. See the [`plugin-api` changelog](https://stars-components.js.org/documentation/changelog/plugins/plugin-api).
* **Thread option checks** — `plugin-gateway` rejects mixed thread and forum post options at compile time and before any request. Guild-only message methods throw `ChannelMessagesGuildOnly` in DMs.
* **`@wolfstar/http-framework` peer range** — `decorators`, `http-framework-test-utils`, `http-framework-utilities`, and the shared pieces now publish a `^6.4.0` range.

### Bug fixes

* **EventSub secret and callback** — [`@wolfstar/twitch-helpers`](https://stars-components.js.org/documentation/packages/twitch-helpers) `2.0.9` no longer swaps the EventSub secret and callback in `setVariables`.
* **Stable subcommand order** — [`@wolfstar/plugin-subcommands-advanced`](https://stars-components.js.org/documentation/packages/plugin-subcommands-advanced) `2.2.1` registers modular subcommands sorted by name, so commands no longer update on every start.
* **`clientReady` and dropped guilds** — `plugin-gateway` no longer stalls `clientReady` on guilds the bot left during startup, and forwards their `guildDelete` to broker workers.
* **Steadier `stars dev`** — The dashboard no longer flickers, and `--tunnel` recovers from a broken `cloudflared` binary.

## 2026-10-16

`http-framework` `6.4.0` can register commands on startup, `stars dev` gains an ngrok tunnel, varlock projects get first-class CLI support, and `plugin-logger` `0.4.0` reworks its transports.

### New features

* **Startup command registration** — [`@wolfstar/http-framework`](https://stars-components.js.org/documentation/packages/http-framework) `6.4.0` registers commands when the client starts through `ClientOptions.commands`, with incremental `ApplicationCommandRegistry.sync()`. Pick the registering process with `when`. Failures warn without stopping the HTTP server.
* **ngrok tunnel provider** — Set `dev.tunnel: { provider: 'ngrok' }` in [`@wolfstar/cli`](https://stars-components.js.org/documentation/packages/cli) `2.7.0` to tunnel through ngrok, and add `dev.tunnel.domain` to keep a reserved hostname across restarts. Install `@ngrok/ngrok` and set `NGROK_AUTHTOKEN`. `cloudflared` stays the default.
* **`stars doctor --fix`** — [`@wolfstar/cli`](https://stars-components.js.org/documentation/packages/cli) `2.8.0` reports an implicit varlock loader as `VARLOCK_LOADER_IMPLICIT` or `VARLOCK_NOT_INSTALLED`. `stars doctor --fix` writes `env: { loader: 'varlock' }` to `stars.config` for you.
* **Scaffold varlock projects** — [`@wolfstar/create-http-framework`](https://stars-components.js.org/documentation/packages/create-http-framework) `2.10.0` adds `--env varlock`, which generates a starter `.env.schema` and derives `Env` from it. Existing varlock setups are detected automatically. See [Environment](https://stars-components.js.org/documentation/guide/environment.md).
* **`client.application`** — [`@wolfstar/plugin-gateway`](https://stars-components.js.org/documentation/packages/plugin-gateway) `0.14.0` adds a discord.js-style `ClientApplication`, available from client construction, plus `resolveGuildEmoji(client, emojiId)`.
* **evlog wide events** — [`@wolfstar/plugin-logger`](https://stars-components.js.org/documentation/packages/plugin-logger) `0.4.0` adds an `evlog` module option and emits one wide event per interaction. Add fields from a command with `useInteractionLogger()`. `SentryTransport` can record breadcrumbs and send Sentry Logs.

### Updates

* **CLI follows varlock auto-detection** — With compatibility version 6, `stars dev` and `stars doctor` now read variables through `varlock load` when the runtime picks varlock on its own.
* **Breaking: `plugin-logger` peers** — The `@sentry/node` peer is dropped and the `evlog` peer is raised to `^2.30.0`. `LogPayload` gains `message`, `error`, and `context`. See [`plugin-logger` changelog](https://stars-components.js.org/documentation/changelog/plugins/plugin-logger).
* **`plugin-gateway` `fetch*` checks** — `fetchHighest`, `fetchPermissions`, and `fetchPermissionsIn` are no longer deprecated. Use them for accurate checks with a filtered cache or a `plugin-broker` worker.
* **Sentry 11** — [`@wolfstar/shared-http-pieces`](https://stars-components.js.org/documentation/packages/shared-http-pieces) `2.0.12` updates `@sentry/node` to v11.

### Bug fixes

* **Crash after an answered interaction** — [`@wolfstar/http-framework`](https://stars-components.js.org/documentation/packages/http-framework) `6.3.2` no longer crashes with `ERR_STREAM_WRITE_AFTER_END` when a handler throws after answering.
* **`WinstonTransport` close** — Closing the transport twice no longer hangs.

## 2026-10-08

`http-framework` `6.3.0` adds preconditions, `stars.config` gains installable `modules`, and the `stars` CLI picks up new commands, a full-screen dev dashboard, and typed command options.

### New features

* **Preconditions** — [`@wolfstar/http-framework`](https://stars-components.js.org/documentation/packages/http-framework) `6.3.0` adds a `Precondition` piece and a `preconditions` option on `Command.Options` and `InteractionHandler.Options`. Combine entries with nested AND/OR arrays, or run them together with `PreconditionRunMode.Parallel`. Denials emit `chatInputCommandDenied`, `contextMenuCommandDenied`, `autocompleteDenied`, or `interactionHandlerDenied`.
* **Modules in `stars.config`** — Add `modules` to `stars.config` to install packages built with `defineModule` from the new [`@wolfstar/kit`](https://stars-components.js.org/documentation/packages/kit). A module can read its options from its own top-level key through `meta.configKey`. The `stars` CLI reports keys that no module claims as `UNKNOWN_OPTION`.
* **Module and plugin entry points for plugins** — Every plugin now ships a `/module` entry point for `modules`, and most also ship a `/plugin` entry point for the new object-based `definePlugin` API in `http-framework` `6.1.0`. See [Plugins](https://stars-components.js.org/documentation/guide/plugins.md).
* **New `@wolfstar/plugin-scheduled-tasks` package** — Run `ScheduledTask` pieces on a BullMQ worker, created with `container.tasks.create()` or repeated on an `interval` or cron `pattern`. `0.2.0` adds a `ready` gate and `waitForReady` so tasks wait for your app. See [`@wolfstar/plugin-scheduled-tasks`](https://stars-components.js.org/documentation/packages/plugin-scheduled-tasks).
* **New CLI commands** — [`@wolfstar/cli`](https://stars-components.js.org/documentation/packages/cli) adds `stars commands diff`, `stars commands deploy`, `stars doctor`, `stars completions`, and `stars typecheck`.
* **Typed command options** — `stars codegen` with `codegen.commands` generates a `CommandOptionsRegistry`. Type options with `Command.OptionsOf<'math add'>`, or `Subcommand.OptionsOf` from [`@wolfstar/plugin-subcommands-advanced`](https://stars-components.js.org/documentation/packages/plugin-subcommands-advanced) `2.2.0`.
* **`stars dev` dashboard** — `stars dev` now opens a clickable full-screen dashboard with log channels and a `trace` level. Switch to the compact panel with `dev.layout: 'panel'` or the `v` key. Turn off mouse support with `dev.mouse: false`. Toggle the tunnel with `--tunnel` and `--no-tunnel`.
* **`node` env loader** — [`@wolfstar/env-utilities`](https://stars-components.js.org/documentation/packages/env-utilities) `2.3.0` adds a `node` loader that needs no extra packages, so `dotenv` is now optional. varlock's typed `ENV` is exported as `env` from `@wolfstar/env-utilities/varlock`. See [Environment](https://stars-components.js.org/documentation/guide/environment.md).
* **`plugin-gateway` additions** — [`@wolfstar/plugin-gateway`](https://stars-components.js.org/documentation/packages/plugin-gateway) adds `AttachmentBuilder`, guild-scoped `guild.members`, `guild.roles`, `guild.voiceStates`, and `guild.presences` managers, `Guild#searchMessages()`, voice channel `status`, discord.js-style `sweepers`, and synchronous getters such as `GuildMember#permissions`.
* **Dispatch replay on workers** — [`@wolfstar/plugin-broker`](https://stars-components.js.org/documentation/packages/plugin-broker) `0.4.0` adds `replayGatewayDispatches`, so workers can run gateway listeners with the same structures and previous state.

### Updates

* **Compatibility version 6 is the default** — `stars prepare` now writes separate `.stars/tsconfig.app.json` and `.stars/tsconfig.node.json` files. Switch your root `tsconfig.json` to solution-style, or pin version 5 or 4 to keep the old layout. Projects from [`@wolfstar/create-http-framework`](https://stars-components.js.org/documentation/packages/create-http-framework) `2.9.0` are already set up.
* **Breaking: `UserError` goes to `*Denied` events** — A thrown `UserError` no longer reaches `commandError`, `autocompleteError`, or `interactionHandlerError`. Move user-facing replies to the matching `*Denied` listener. See [`http-framework` changelog](https://stars-components.js.org/documentation/changelog/stars-components/http-framework).
* **Breaking: env loader detection** — Projects with a `.env.schema` and `varlock` installed now load through varlock. Set `loader: 'dotenv'` to keep the old behaviour. `EnvSetupResult` is now `EnvLoaderOutput`.
* **Breaking: `plugin-gateway` manager caches** — Managers now cache in memory by default through `manager.cache`. Pass `cache: null` to opt out. `manager.get()` and `Message#fetchEditable()` are removed, and `bulkDelete` resolves to a `Collection`. See [`plugin-gateway` changelog](https://stars-components.js.org/documentation/changelog/plugins/plugin-gateway).
* **Scaffolded projects** — `create-http-framework` now generates `AGENTS.md` and `llms.txt`, turns on `@wolfstar/eslint-plugin-http-framework` rules, and supports `--tunnel`.
* **Legacy plugin API deprecated** — The class-based `Plugin`, symbol hooks, and `registerXHook` emit an `HTTP_FRAMEWORK_LEGACY_PLUGIN` warning. Use `definePlugin` instead.

### Bug fixes

* **`stars dev` command prompts** — `stars dev` no longer asks you to redeploy commands that did not change.
* **Dev tunnel crash** — Closing the tunnel no longer crashes `stars dev` with an unhandled rejection.
* **Resumed gateway sessions** — `clientReady` now fires and `client.user` is restored when shards resume a stored session.
* **`plugin-sharder` cluster defaults** — `ClusterStrategy` no longer throws when `execArgv` or `args` are omitted. Failing spawns are reported as `ShardSpawnError`.
* **Sentry noise** — [`@wolfstar/shared-http-pieces`](https://stars-components.js.org/documentation/packages/shared-http-pieces) no longer reports a `UserError` to Sentry.
* **Peer warnings** — [`@wolfstar/http-framework-utilities`](https://stars-components.js.org/documentation/packages/http-framework-utilities) accepts `@wolfstar/plugin-gateway` `>=0.8.0`.

## 2026-10-01

`http-framework` `6.0.0` moves the decorators into their own package. `stars.config` gains `env` and lifecycle `hooks`, and three new packages land.

### New features

* **`env` in `stars.config`** — Configure [`@wolfstar/env-utilities`](https://stars-components.js.org/documentation/packages/env-utilities) from `stars.config` with the new `env` option. The `stars` CLI loads your environment before plugins and your own modules, so you no longer call `setup()` by hand. See [Environment](https://stars-components.js.org/documentation/guide/environment.md).
* **Lifecycle `hooks`** — Add `hooks` to `stars.config` to run code at build and dev lifecycle points, such as `config:resolved`, `env:options`, `prepare:*`, `builder:created`, `tsdown:options`, `build:*`, and `dev:*`. See [`@wolfstar/cli`](https://stars-components.js.org/documentation/packages/cli).
* **New `@wolfstar/http-framework-utilities` package** — Type guards, `app_permissions`-based permission helpers, `MessageBuilder`, `PaginatedMessage`, and `MessagePrompter` for `@wolfstar/http-framework`. Sessions use a pluggable store: `MemorySessionStore` for one process, or `RedisSessionStore` to share across replicas. The optional `/gateway` entry point adds collectors, `GatewayPaginatedMessage`, and `GatewayMessagePrompter` for [`@wolfstar/plugin-gateway`](https://stars-components.js.org/documentation/packages/plugin-gateway).
* **New `@wolfstar/discord-utilities` package** — Discord limits, regexes, and option resolvers for raw API payloads, with the same exports as `@sapphire/discord-utilities`.
* **New `@wolfstar/decorators` package** — Utility decorators now live in their own package, mirroring `@sapphire/decorators`.

### Updates

* **Compatibility version 5 is the default** — Version 5 is version 4 plus automatic `env` loading. It turns on when your project depends on `@wolfstar/env-utilities`, and stays off with Nitro. Version 4 is still supported. Version 3 is end-of-life: it still works, reports a `COMPATIBILITY_VERSION_EOL` warning, and will be removed in the next major.
* **Scaffolded projects skip manual `setup()`** — [`@wolfstar/create-http-framework`](https://stars-components.js.org/documentation/packages/create-http-framework) `2.7.0` projects using the `tsdown` or `vite` build rely on the `env` option. `tsc` and JavaScript projects keep calling `setup()` and set `env: false`.
* **Breaking: decorators moved out of `http-framework`** — [`@wolfstar/http-framework`](https://stars-components.js.org/documentation/packages/http-framework) `6.0.0` no longer exports `ApplyOptions`, `RequiresGuildContext`, `RequiresDMContext`, `RequiresUserPermissions`, `RequiresClientPermissions`, `Enumerable`, `EnumerableMethod`, `createClassDecorator`, `createMethodDecorator`, `createProxy`, or `createFunctionPrecondition`. Install `@wolfstar/decorators` and import them from there. Their behaviour is unchanged. `Register*` decorators and `RestrictGuildIds` stay in the framework. CLI auto imports include `@wolfstar/decorators` by default once it is installed.
* **Breaking: `plugin-api` `2.0.0`** — [`@wolfstar/plugin-api`](https://stars-components.js.org/documentation/packages/plugin-api) now aligns with `@sapphire/plugin-api` 8.3.1, except auth. `ApiServer` is now `Server`, `ApiPlugin` is now `Api`, and `HttpMethod` is now `MethodName`. Routes with no methods no longer default to `GET`. `ApiResponse#json()` no longer takes a status code, so use `status(code).json(data)`. The release adds cookies, body readers, a `prefix` option, and per-route `maximumBodyLength`. It requires Node.js `>=20.18.1`.
* **Breaking: `plugin-gateway` `manager.cache`** — An upcoming [`@wolfstar/plugin-gateway`](https://stars-components.js.org/documentation/packages/plugin-gateway) release exposes a discord.js-style `manager.cache`, built by a client-level `cacheConstructor`. Managers now cache every entity in memory by default. Bound memory with `cacheOptions` or `policies.filter`, or pass `cache: null` to keep the previous no-cache behaviour. Replace `client.users.get(id)` with `client.users.cache.get(id)`.
* **`@wolfstar/logger` and `@wolfstar/http-framework-i18n` removed** — Both deprecated packages are no longer maintained. Use [`@wolfstar/plugin-logger`](https://stars-components.js.org/documentation/packages/plugin-logger) and [`@wolfstar/plugin-i18next`](https://stars-components.js.org/documentation/packages/plugin-i18next) instead. See [Migration](https://stars-components.js.org/documentation/guide/migration.md).

### Bug fixes

* **`plugin-api` fixes** — Router path, route removal, and `supportedMethods` bugs are fixed. `Server#connect()` now rejects instead of throwing uncaught when the port is in use. Malformed `Cookie` headers no longer crash cookie parsing.

## 2026-09-24

Nitro deploys, themed dev UI, and clearer diagnostics. This week also brings the `http-framework` `5.x` release and a new `@wolfstar/schema` package.

### New features

* **Nitro builds (experimental)** — Set `experimental.enableNitro` to build your bot with [Nitro](https://nitro.build) v3. `stars build` outputs `.output/` for the configured `experimental.nitro.preset` (`node-server` by default), so you can deploy to Cloudflare, AWS Lambda, Vercel, Netlify, Bun, Deno Deploy, and more. Install `nitro` and `vite` (Vite 8) as dev dependencies. See [`@wolfstar/cli`](https://stars-components.js.org/documentation/packages/cli).
* **`Client.fetch()`** — `@wolfstar/http-framework` `5.0.0` adds `client.fetch(request)`, the Web `Request`/`Response` counterpart of `listen()`. It runs the same signature verification and routing without binding a port, for Workers, `Bun.serve`, `Deno.serve`, and similar runtimes. See [`@wolfstar/http-framework`](https://stars-components.js.org/documentation/packages/http-framework).
* **`stars dev` colour themes** — Press `T` in the interactive UI to pick `dark`, `light`, colour-blind friendly `dark-daltonized`/`light-daltonized`, terminal-palette `dark-ansi`/`light-ansi`, or `auto`. `stars dev` saves your choice between runs. Use `--theme <name>` or `STARS_THEME` to override it for one run.
* **varlock support (experimental)** — `@wolfstar/env-utilities` `2.2.0` can load environment files with [varlock](https://varlock.dev) instead of `dotenv`. Opt in with `loader: 'varlock'` or the `DOTENV_LOADER` environment variable. See [Environment](https://stars-components.js.org/documentation/guide/environment.md).
* **`stars` binary ships with `http-framework`** — Installing `@wolfstar/http-framework` now gives you the `stars` command, with no separate `@wolfstar/cli` install.

### Updates

* **Structured diagnostics** — Config and CLI errors are now [`nostics`](https://github.com/vercel-labs/nostics) diagnostics with stable codes, a reason, an actionable fix, and a docs link. `ConfigError` and `CliError` are removed. Catch errors with `instanceof Diagnostic` instead. Exit codes are unchanged. See [Config errors](https://stars-components.js.org/documentation/errors/config.md) and [CLI errors](https://stars-components.js.org/documentation/errors/cli.md).
* **Readable crash reports** — Unexpected errors and `stars dev` startup crashes now render as sourcemapped, syntax-highlighted reports instead of raw stack traces.
* **Faster `stars dev` exit** — The first `Ctrl+C` stops your bot gracefully. A second one kills the bot and its helper processes immediately, without waiting for `dev.killTimeout`.
* **New `@wolfstar/schema` package** — The `stars.config.*` schema and loader now live in `@wolfstar/schema`. Imports from `@wolfstar/http-framework/config` keep working unchanged. If you install `@wolfstar/cli` without `@wolfstar/http-framework`, add `@wolfstar/http-framework` yourself. Scaffolded projects are unaffected.
* **Optional Vite and Nitro builders** — The Vite and Nitro builders now ship as separate `@wolfstar/vite-server` and `@wolfstar/nitro-server` packages. They load only when you use them. Your CLI configuration is unchanged.
* **Oxc configs as TypeScript** — `@wolfstar/oxfmt-config` and `@wolfstar/oxlint-config` `0.2.0` now default-export `defineConfig` objects. Spread the formatter config into `oxfmt.config.ts` and pass the linter config to `extends` in `oxlint.config.ts`. The `index.json` and `.oxlintrc.json` entry points are removed.
* **Plugins support `http-framework` 5** — [`@wolfstar/plugin-api`](https://stars-components.js.org/documentation/packages/plugin-api), [`@wolfstar/plugin-i18next`](https://stars-components.js.org/documentation/packages/plugin-i18next), [`@wolfstar/plugin-logger`](https://github.com/wolfstar-project/plugins), and [`@wolfstar/plugin-subcommands-advanced`](https://stars-components.js.org/documentation/packages/plugin-subcommands-advanced) now target `@wolfstar/http-framework` `5.x`.

### Bug fixes

* **`stars dev` readability on light terminals** — The dev UI now uses semantic theme colours, so body text keeps your terminal's foreground colour and stays readable on light backgrounds.

## 2026-09-17

Conventions land in the CLI: v4 is the new default, projects auto-register their plugins, and a quick tunnel now works out of the box.

### New features

* **Convention-first `stars` workflow** — Compatibility version 4 is now the default in [`@wolfstar/cli`](https://stars-components.js.org/documentation/packages/cli) and [`@wolfstar/http-framework`](https://stars-components.js.org/documentation/packages/http-framework). `stars dev` forces development mode, `src/locales` is copied and watched automatically, and environment files are discovered under both `src/` and the project root. The interactive dev UI adds a `t` shortcut to open or close a public quick tunnel without configuring `dev.tunnel`.
* **Auto-registered WolfStar plugins** — Bundler builds now inject the `/register` side-effect entrypoint of every installed `@wolfstar/plugin-*` dependency before your app entry, so plugins activate without manual `import '@wolfstar/plugin-x/register'` lines. See [Plugins](https://stars-components.js.org/documentation/guide/plugins.md).
* **Generated TypeScript alias config** — `stars prepare`, `stars dev`, and `stars build` write an extendable `.stars/tsconfig.json` whose paths match the `tsdown` aliases. Scaffolded projects extend it and pick up Sapphire base, extra-strict, and decorators options automatically. See [`@wolfstar/create-http-framework`](https://stars-components.js.org/documentation/packages/create-http-framework).

### Updates

* **HTTP-framework `4.0.x`** — Structured, leveled logging replaces raw `console` calls for HMR events and command-router warnings. `@wolfstar/env-utilities` `2.1.x` follows the same move, using `container.logger` from `@sapphire/pieces` when available and falling back to `console.debug` for standalone consumers.

### Bug fixes

* **Quick tunnel reliability** — `dev.tunnel` now opens the `cloudflared` tunnel through `untun` instead of spawning `cloudflared` and scraping stdout. `untun` manages the binary (downloading it if missing) and exposes the URL and lifecycle programmatically, which also fixes the tunnel never closing when the spawn failed silently.
* **`@wolfstar/shared-http-pieces`** — Consumer locale paths are preserved and the bundled `commands/shared` namespace loads correctly when using the register entrypoint. See [`@wolfstar/shared-http-pieces`](https://stars-components.js.org/documentation/packages/shared-http-pieces).
* **`@wolfstar/plugin-subcommands-advanced`** — Subcommand builder callbacks are now deferred until every command piece has been constructed, fixing crashes when builders referenced not-yet-loaded siblings. See [`@wolfstar/plugin-subcommands-advanced`](https://stars-components.js.org/documentation/api/plugin-subcommands-advanced).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.