Five new features:
- /permissions scan: audits admin/ban roles, dangerous bot permissions,
public channels, empty/duplicate/useless roles, too-many-admins warning.
- /panel create: fixed info panels (rules/support/bewerbung/partner/
rollen/events/faq) with buttons wired into the existing ticket/
register/partner flows, FAQ panels get a question dropdown.
- Image moderation: QR-code detection in message attachments via jimp+jsqr
(pure JS, no native build deps) with a small scam-pattern check; opt-in
toggle in dashboard settings since decoding costs per-message.
- Invite tracker extension: now resolves the inviter (not just the code),
tracks suspicious joins per invite, and the dashboard growth page gets
an invite breakdown + recent-joins table.
- Ticket categories: /ticketconfig lets each ticket topic get its own
ping role and a modal question template shown before the channel is
created; topics without config behave exactly as before.
Also fixes two rough edges found along the way: the welcome embed had
no way to attach an image despite the backend already supporting it
(added URL/file-upload fields + live preview), and Reaction Roles
required typing raw role IDs into a textarea (replaced with a proper
role picker). Incidentally repairs node_modules/.bin symlinks that were
committed as literal broken shell-script text instead of real symlinks.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>