Skip to content

v1.3.2-beta

Pre-release
Pre-release

Choose a tag to compare

@CodeMeAPixel CodeMeAPixel released this 17 Aug 06:42
0fa4ea5

Added

  • Sign-in on beta and staging is now restricted to Bug Hunters (instance
    owners bypass it, so they can't lock themselves out of their own
    environment). Rejected cleanly at the OAuth login step
    (checkBugHunterOnly, same pattern as the existing checkBanScope),
    plus a matching global check in api/uapi.go for defense in depth on
    any session issued before this. Reads the same users.bug_hunters
    column SpecRoleSync already keeps in sync with the Bug Hunter Discord
    role no new sync mechanism, no new schema.

  • Real account bans: a new BanUser/UnbanUser RPC action (new
    ban_users permission) sets users.banned, distinct from
    AppBanUser/AppUnbanUser's much narrower app_banned flag. Nothing
    previously set the column at all despite api/uapi.go already rejecting
    every authenticated request from a banned user except sessions scoped
    ban_exempt a full account ban was completely unreachable through any
    staff action.

  • VoteBanAdd/VoteBanRemove now support Server, Team, and Pack in
    addition to Bot (all four carry an identical vote_banned column).
    ForceRemove now supports Server and Pack in addition to Bot
    the kick/protected-bots behaviour stays bot-only, since neither has a
    "leave the guild" equivalent. This is the reports-can't-act-on-non-bot-
    content gap: reports against a server or pack had no staff action to
    take beyond bots.

  • A generic badge system: a staff-managed catalog (badges) plus a
    flexible assignment table (entity_badges), so a new purely-decorative
    badge is a catalog row and an assignment from now on, not a new column,
    backend flag, and frontend branch every time. New AssignBadge/
    UnassignBadge RPC action (new assign_badges permission, works on
    User/Bot/Server/Team) reaches every entity type through the same
    Actions menu as every other staff action, and a new
    GET /{target_type}/{target_id}/badges public route reads them back.
    Deliberately separate from the functional badges already on
    users/bots/servers (premium, certified, developer, bug_hunters the
    last one specifically because it's synced from a Discord role by
    SpecRoleSync, not manually assigned, so it stays exactly as-is)
    new manage_badges permission gates the catalog itself.

  • Bots can now document their own commands and post changelog/announcement
    entries, gated by the same edit_bots entity permission (owner or team)
    that already gates editing a bot's settings no new permission needed.
    PUT /bots/{id}/commands replaces the whole command list (same
    full-replace convention as extra_links); POST/DELETE /bots/{id}/changelogs append and remove individual entries (same
    convention as reviews). Both are public to read.