release
v.1.2
the bot has been rewritten from python to node, with the same commands and the same databases. this release adds owner commands, owner-aware help, and fixes for anything created after setup.
the rewrite
every cog was ported to node by hand: 177 modules and 723 commands, 1,711 counting subcommands, keeping the names, aliases, usage, permissions and cooldowns people already type. the databases did not move, so the same data folder works for both bots while the last pieces cross over. the runtime is node 22.5 or newer, with sqlite built in and no native build step.
new commands
;status sets the bot's own presence: ;status set watching the queue, ;status state idle, ;status url <link>, and ;status reset to hand it back to the rotation. it outranks the rotating presence and survives a restart. ;botavatar <url> (or an attached image) changes the bot's picture everywhere. discord rate-limits avatar changes, so it is not a quick toggle. ;restart confirm ends the process so the panel can start it again.
owner tools
one panel and the switches that need a restart to change: ;owner for owners, maintenance state, guilds, commands, memory and uptime; ;owner add and ;owner remove for a second maintainer without editing the environment; ;sysinfo, ;dbstats and ;env for the machine; ;dm, ;broadcast and ;maintenance for announcements and lockdown.
help
the help browser is viewer-aware now. an owner sees the owner-only commands in the home card, the search and the flat list; for everybody else they are simply not there, which is what the handler already enforced. an owner-only subcommand also comes off its parent's card for a member, so ;help season lists two subcommands for them and four for an owner.
moderation
;setup and ;setupmute now cover channels created after they ran. muted cannot send or react in a new text channel, jailed cannot see a new text, voice or category, a category carries the deny down to channels synced to it, threads are skipped because they inherit, and the jail channel itself is never closed. nothing is written until a role is configured, so servers that never ran setup see no change.
embeds
every reply is sent as a components v2 card: sends, replies, edits, dms and paginated pages all pass through one conversion, which folds overflow into a text block instead of dropping fields. ;embed accepts a container script for the same format, or opens a button-driven builder with no argument. ;uwulock is the one exception, because a mirrored message has to stay exactly what the member typed.
fixes
;restrictcommand is actually enforced: python stored the restrictions and never read them, so a restricted command ran anyway. ;avatarhistory keeps the images on disk, so view still works after discord's cdn link expires. ;help counts and lists from one registry, so a command can no longer fall out of the listing unnoticed.
overall
one engine instead of two, the same commands and the same data, and the moderation and help edge cases that used to need a workaround.
