Skip to content

chore: update changelog and release - #246

Merged
kodiakhq[bot] merged 1 commit into
mainfrom
changeset-release/main
Oct 17, 2026
Merged

kodiakhq[bot] merged 1 commit into
mainfrom
changeset-release/main

Conversation

@wolfstarbot

@wolfstarbot wolfstarbot commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

@wolfstar/plugin-broker@0.6.0

Minor Changes

  • #245 7257223 - forwardGatewayDispatches marks a GatewayClient as forwarding (forwardsDispatches) until its stop function is called, through the new optional GatewayDispatchEmitterLike#markDispatchesForwarded, so listeners registered with RegisterAsDispatchListener from @wolfstar/plugin-gateway run on the workers only. Emitters without it forward as before.

Patch Changes

  • #247 6012bd9 - Forward the guildDelete of a guild a READY drops: when a READY no longer lists a cached guild (the bot left it while offline), GatewayClient now emits dispatch for the GUILD_DELETE it applies, after the cache write and with the cached guild as its state, before guildDelete. forwardGatewayDispatches publishes it like any other dispatch, so a plugin-broker worker's guildDelete listeners clean these guilds up too. The made-up dispatch carries s: 0 and is not emitted as raw.

@wolfstar/plugin-gateway@0.15.0

Minor Changes

  • #252 97aaaea - Add ApplicationCommand and its managers, fetch-only like WebhookManager: client.application.commands (ApplicationCommandManager) and guild.commands (GuildApplicationCommandManager, a new instance on every access, also client.guilds.commands(guildId)) have fetch, create, set, edit, delete, commandPath and the static transformCommand, which accepts camel-cased data, raw payloads and builders. ApplicationCommand has the command's fields, edit(), the set*() helpers, delete(), permissions, equals(command, enforceOptionOrder?) (false for a foreign argument) and the static optionsEqual() and transformOption(). ApplicationCommandPermissionsManager (fetch, has, and set, add and remove taking an explicit bearer token, with no OAuth handling) reads through the existing applicationCommandPermissions cache, kept up to date by APPLICATION_COMMAND_PERMISSIONS_UPDATE. GatewayError gains the ApplicationCommandPermissionsTokenMissing and GlobalCommandPermissions codes. set() is the bulk overwrite and replaces whatever @wolfstar/http-framework registered, nothing calls it for you.

  • #250 10a18a5 - Add ApplicationEmoji and ApplicationEmojiManager, discord.js's emojis owned by the application rather than a guild, reachable as client.application.emojis. The manager is fetch-only (Discord sends no event for these emojis, so nothing is cached): fetch() lists them in a Collection and fetch(id) gets one, with create, edit, delete and fetchAuthor. An ApplicationEmoji extends Emoji with author, application, edit, setName, delete, fetchAuthor and equals, which compares only the ID, name and animated, the fields the API sends.

  • #255 1ca7f9e - channel.messages.crosspost takes a message or its ID, and client.channels.createMessage(channel, options) sends a message to a channel or its ID, like discord.js.

  • #248 12a880f - Add Message#threadable, like discord.js: whether the bot can start a thread from the message (a text or announcement channel, no thread yet, and ViewChannel plus CreatePublicThreads). It reads the cache, so it is a promise with an asynchronous cache and throws ChannelUncached, GuildUncachedMe or GuildUncached on a miss, like the other message checks. Unlike discord.js, an administrator bot is threadable, as the API allows it.

  • #253 17d2cfd - Add the monetization managers. client.application.entitlements is an EntitlementManager, cached from ENTITLEMENT_CREATE, ENTITLEMENT_UPDATE and ENTITLEMENT_DELETE (which emit the new entitlementCreate, entitlementUpdate and entitlementDelete events), with fetch() for one entitlement or a filtered Collection, createTest(), deleteTest() and consume(). client.application.fetchSKUs() returns the SKUs of the application, and sku.subscriptions (or client.application.subscriptions(sku)) is a fetch-only SubscriptionManager. Adds the Entitlement, SKU and Subscription structures, SKUFlagsBitField, and the EntitlementCreateInvalidOwner error; EntitlementResolvable, SKUResolvable and SubscriptionResolvable now also accept the structures.

  • #245 7257223 - Add RegisterAsDispatchListener, a RegisterAsGatewayListener whose listener runs on one process only: the workers replaying the dispatches while the gateway client forwards them, the gateway client otherwise, so a bot loading the same pieces on both no longer handles each dispatch twice. GatewayClient gains forwardsDispatches and markDispatchesForwarded() for forwardGatewayDispatches to set, and DispatchEventName, GatewayOnlyEventName and gatewayOnlyEvents tell the events a worker receives from the ones only the gateway client emits, which the decorator rejects.

  • #249 e55801b - transformResolved now also resolves messages (IDs read from the cache of the new channelId option, raw data resolved to the cached message or built from it) and attachments (built as Attachment), like discord.js. MessageMentions#parsedUsers now includes the users the payload mentions even when they are not cached, as discord.js does by adding them to its cache; nothing is written to the cache.

  • #254 b787c53 - Check the options of threads.create and the guild-only message paths against discord.js. ThreadCreateOptions is now TextThreadCreateOptions | ForumThreadCreateOptions, so mixing the options of a thread (type, invitable) with those of a forum or media post (message, appliedTags) is a compile error, and throws a GatewayTypeError before any request instead of being dropped silently: ThreadOptionsPostOnly, ThreadOptionsThreadOnly, and, in a forum or media channel without message, ThreadPostMessageRequired. ChannelThreadManager and ChannelMessageManager take the channel type as an optional last constructor argument (channelType), which channel.threads and channel.messages pass. In a direct message or group direct message, messages.crosspost, messages.bulkDelete, and messages.startThread now throw ChannelMessagesGuildOnly before any request, as discord.js's DMMessageManager has no such methods.

Patch Changes

  • #247 6012bd9 - Track the guilds clientReady waits for by shard, like discord.js: a shard's new READY now replaces the unavailable guilds its previous one listed instead of adding to them, so a guild the bot left between two READYs of a shard (a session invalidated during startup) no longer holds clientReady back until waitGuildTimeout. The client also stops collecting these guild IDs once clientReady fired, where every reconnect's READY used to add them to a set that was never emptied.

  • #247 6012bd9 - Forward the guildDelete of a guild a READY drops: when a READY no longer lists a cached guild (the bot left it while offline), GatewayClient now emits dispatch for the GUILD_DELETE it applies, after the cache write and with the cached guild as its state, before guildDelete. forwardGatewayDispatches publishes it like any other dispatch, so a plugin-broker worker's guildDelete listeners clean these guilds up too. The made-up dispatch carries s: 0 and is not emitted as raw.

@wolfstar/plugin-subcommands-advanced@2.2.1

Patch Changes

  • #257 481d536 - Register modular subcommands (and groups) sorted by name instead of in the order the stores loaded them. The load order is not stable between starts, so the same pieces could produce differently ordered options, and @wolfstar/http-framework compares deployed commands by position, which updated every parent with modular subcommands on each start. The first start after upgrading may update those commands once; the order is stable after that. Subcommands the parent declares itself keep their place before the registered ones.

@coldtea-pr-lens

Copy link
Copy Markdown

Note

The title starts with chore:, so PR Lens left this pull request undrawn. Comment @pr-lens draw to draw it

github.comment.notice: false in .github/pr-lens.yml turns this note off

@wolfstarbot wolfstarbot added packages:plugin-gateway Changes in plugin-gateway packages:plugin-broker Changes in plugin-broker labels Oct 17, 2026
@pkg-pr-new

pkg-pr-new Bot commented Oct 17, 2026 •

Copy link
Copy Markdown

Open in StackBlitz

@wolfstar/plugin-api

pnpm add https://pkg.pr.new/@wolfstar/plugin-api@246

@wolfstar/plugin-broker

pnpm add https://pkg.pr.new/@wolfstar/plugin-broker@246

@wolfstar/plugin-cache

pnpm add https://pkg.pr.new/@wolfstar/plugin-cache@246

@wolfstar/plugin-gateway

pnpm add https://pkg.pr.new/@wolfstar/plugin-gateway@246

@wolfstar/plugin-i18next

pnpm add https://pkg.pr.new/@wolfstar/plugin-i18next@246

@wolfstar/plugin-logger

pnpm add https://pkg.pr.new/@wolfstar/plugin-logger@246

@wolfstar/plugin-scheduled-tasks

pnpm add https://pkg.pr.new/@wolfstar/plugin-scheduled-tasks@246

@wolfstar/plugin-sharder

pnpm add https://pkg.pr.new/@wolfstar/plugin-sharder@246

@wolfstar/plugin-subcommands-advanced

pnpm add https://pkg.pr.new/@wolfstar/plugin-subcommands-advanced@246

commit: a42e357

@wolfstarbot
wolfstarbot force-pushed the changeset-release/main branch 9 times, most recently from 1915abb to 4ad84e1 Compare October 17, 2026 11:13
@wolfstarbot
wolfstarbot force-pushed the changeset-release/main branch from 4ad84e1 to a42e357 Compare October 17, 2026 19:27
@kodiakhq
kodiakhq Bot merged commit b77a1a5 into main Oct 17, 2026
16 checks passed
@kodiakhq
kodiakhq Bot deleted the changeset-release/main branch October 17, 2026 20:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

packages:plugin-broker Changes in plugin-broker packages:plugin-gateway Changes in plugin-gateway

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants