Plain Usernames in Loyalty Commands, Safer Replies and a Hardened Platform
- !points set, add, remove and give, and !duel, now accept a plain username as well as an @mention. An unknown Twitch user gets a clear "not found" reply.
- !setpoints <user> <points> is a new moderator alias for !points set.
- !duel accepts half and all stakes, capped at the maximum stake. A stake above your balance now names your balance, and a challenge the target cannot cover is refused before any points are held.
- Broadcasters can turn on a sub bonus for watch time on the Loyalty page, with a multiplier per sub tier. If the sub lookup fails, that page of chatters is paid the base rate.
- !points shows the new balance right after bits, subs, gift subs and channel point rewards pay out, instead of an older cached value.
- Public profile and leaderboard pages refresh within about a minute after point changes.
- The raffle win line no longer shows the winner and entrant counts and reads naturally for one or several winners.
- Text typed by viewers is now always shown literally in built-in replies such as !quote, !followage, game stats and !time, and can no longer trigger a channel's custom fetch definitions.
- Commands and modules authenticate to Valkey again, which fixes the restart loop they had in the previous release.
- The Discord bot is paused for now and the Discord pages are hidden from the dashboard while per-action moderation checks are built.
- The admin console now requires a staff sign-in on every page and data request.
- Services are rebuilt on Go 1.27.3 with refreshed certificate authority bundles, and the web consoles run Bun 1.4.4.
- Services now connect only to the messaging servers they are configured for, and the consoles reload their TLS certificate when it renews, without dropping requests.
- NATS leaf failback health checks use HTTPS, so services return to their local leaf after an outage.