Four things this release. Two new features, a fix that was quietly breaking ticket DMs, and the site itself.
Vouches inside tickets
If your server sells things or runs middleman deals, the vouch count is the number people actually check before they trade with someone. It now ties to real tickets. When a deal is done, the person who opened the ticket vouches for the staff member who handled it.
,vouch smooth deal, fast payout
One ticket is one vouch, enforced in the database rather than by a cooldown someone can wait out. A repeat customer who does five deals leaves five vouches, because each one attaches to a different ticket. Only the person who opened the ticket can vouch, and it always goes to whoever claimed it.
Sometimes a staff member handles an entire ticket and never presses Claim. With Suggested claimer switched on, exceed works out who actually did the talking, checks they are allowed to claim tickets there, and asks the creator to confirm before recording anything. That switch sits under Tickets, on the Claiming card. Turn it off and a ticket nobody claimed cannot be vouched at all.
,vouches @user now shows both numbers together, like 12 deals · 3 community vouches, and ,vouches top deals ranks people by completed deals. The old ,vouch @user behaves exactly as it did before.
Anyone with manage_guild can take a vouch back with ,vouch remove <id>. It is a soft delete. The count drops, the record stays, and that ticket cannot be vouched again, so a bad vouch cannot quietly become a good one.
Staff coverage
There is a new section on the Analytics page. It puts member activity and staff activity on the same grid, one cell per hour of the week, and marks every hour where people were talking and nobody on staff did anything.
Below the grid those stretches are written out properly, so you get "Thu 21:00 to 24:00 UTC, 4,126 messages, no staff action" instead of a wall of cells to squint at. There is also a breakdown of who is handling what, and a warning when one person is carrying most of the load, because that is a staffing risk rather than a compliment.
It reads the last 14 days, in UTC.
Webhook Guard was deleting exceed's own messages
If you had Webhook Guard switched on, some of the bot's own output was disappearing. Ticket DM relay posts through a webhook, and the guard only recognised webhooks on its allowlist, so it treated exceed as an intruder and removed the message. Logging and the recovery relay were hit by the same thing.
The bad part was how quiet it was. The relay added its checkmark before the guard deleted anything, so the member believed their message had arrived and staff never saw it. Webhook Guard now leaves exceed's own webhooks alone and still removes everything else.
Invite links can no longer be relayed into a ticket either. Spaced out, wrapped in backticks, buried in markdown, they all get caught now, and the member is told why rather than watching their message vanish.
The site
exceed.bot has been rebuilt, and Commands, Premium, Marketplace and Updates have moved over to the new design with it. Scrolling is smoother across all of them.