Skip to content

Release v2.4.3 - #218

Merged
Kkkermit merged 5 commits into
mainfrom
develop
Nov 13, 2026
Merged

Kkkermit merged 5 commits into
mainfrom
develop

Conversation

@Kkkermit

@Kkkermit Kkkermit commented Nov 13, 2026 •

Copy link
Copy Markdown
Owner

Testify v2.4.3

What this changes

Ships #216 as version 2.4.3, once #217 is merged into develop:

Release notes

Testify v2.4.3

A bug fix release. If the bot couldn't see or post in the channel you pointed /announce at, the command failed with an unexpected error and an error reference, and [COMMAND_ERROR] Missing Access was logged. Now the bot checks the channel first and tells you, privately and in your own language, exactly which permissions to give it there.

⚠️ Before you upgrade

  • Nothing to set up: no new commands, no new environment variables, no new intents, no new collections and no dependency changes.
  • Run npm ci and npm run build, rebuild the Docker image, or pull ghcr.io/kkkermit/testify:2.4.3.

🐛 Fixed

  • /announce failed with "Missing Access" in a channel the bot couldn't see. The bot's permissions were only checked across the whole server, so a channel that hid itself from the bot's role got through. Discord then refused the post. Now the reply names what's missing, for example: "I need these permissions in #announcements: view channel, send messages and embed links".
  • The same check now runs everywhere you choose where the bot posts:
    • /announce, /say, /sticky-message setup, /lottery setup, /giveaway start, /bot-stats-channel and /ticket setup, which also checks that the transcript channel allows Attach Files.
    • The channel pickers on the welcome, goodbye, levelling, audit log, counting, verification, starboard, idea board, birthdays, scheduled messages, role menus, mod mail, appeals and raid protection panels.
  • Threads are judged by the right permission. Posting in a thread needs Send Messages in Threads, not Send Messages. The dashboard's channel pickers now get that right too.

🌍 Translations

  • The new refusal is written in all eight languages, and so is the name of the Send Messages in Threads permission.

🧪 Tests

  • New: tests for /announce in a channel the bot can't see, for the posting rule itself (including threads, Administrator and a German refusal), and for a panel picker refusing a hidden channel. Four were each confirmed to fail without the fix.
  • npm run check passes locally with 4,044 tests; the 30 database suites are skipped there. CI ran every suite, the database suites included, on Windows, and passed on fix: Checked the bot can post in a channel before posting there #216.

Full changelog: release/v2.4.2...release/v2.4.3

Why

  • A command failing with an error reference looks like a bug in the bot, when the fix is a permission the server's own admins can give. The person who ran it couldn't tell, and the operator got an error post for something that wasn't a fault.
  • A release has to carry its own version. Without a bump, the push to main would release nothing and re-publish the Docker image under 2.4.2.

How to verify

Before merging:

After merging:

  • Actions → Release is green, and Releases shows v2.4.3 Testify with the notes above.
  • On the running bot, deny the bot's role View Channel in a channel and run /announce into it. It answers privately with the missing permissions, and nothing new is logged at error.
  • Give the permissions back and /announce posts as before.

Checklist

  • This is the release pull request from develop into main.
  • Version updated to 2.4.3 in all three package manifests, the lockfile and the bug report template. This is chore: Bumped the version to 2.4.3 and brought main into develop #217, which needs merging first.
  • npm ci --dry-run accepts the bumped lockfile.
  • npm run check passes locally. The database suites ran on CI, where they passed on fix: Checked the bot can post in a channel before posting there #216.
  • No read-modify-save operations on numeric fields.
  • Embeds come from the embed() factory.
  • No raw console.* calls.
  • Every promise is awaited or otherwise handled.
  • No new timers.
  • No new environment variables.
  • No command's options or names changed, so docs/commands.md is unchanged.
  • AGENTS.md §4 and §8 say where the posting rule lives and when to use it.
  • No database migration is needed.
  • Verified against live Discord from the real host. Not done, because this environment can't reach Discord.
  • Release notes reflect the final merged changes.

🤖 Generated with Claude Code

https://claude.ai/code/session_01JrFnSipitEXUhVySPKfrMR

@Kkkermit
Kkkermit merged commit 081ba8e into main Nov 13, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant