Skip to main content
0.11 adds custom extensions and Carl moderation-history import, plus new controls for approvals, file filters and bans.

Extensions and approvals

Add tools, commands and buttons; choose who can use them and when Pup asks for approval.

Moderation and history

Import Carl cases, set ban message-deletion defaults, and choose which files and members your filters cover.

Custom extensions

Teach Pup a new trick with tools you host. Extensions can also add commands, buttons, server settings and member-event handlers. Tasks that take longer can ask follow-up questions, post progress and return their results in a thread. Server owners install extensions and set access for each tool. In Juniper Club, everyone can ask Trail Guide where to wander this weekend; only Trip hosts and Maya can save one.
Trail Guide access: everyone can suggest a walk; Trip hosts and Maya Chen can save one.
This tool returns a walk based on the requested terrain. Add it to your trick’s tools definition:
Trail Guide
Pup handles signed requests, access checks and the reply. Build an extension or connect one.
Extensions are in private beta. The SDK is available from source; it is not published on npm. Extensions cannot moderate members, change roles or channels, send DMs, or post outside their permitted conversations.

Approval controls

Approval cards show the proposed action while keeping detailed inputs private. Auto-review lets Pup review future uses of that tool against your request and any outside content. Irreversible actions and writes after web search still require your approval. You can turn Auto-review off for a tool from Your approvals → Ask next time.
Trail Guide's save walk tool in Your approvals, with an Ask next time button.

Carl history import

Import Carl’s moderation log as read-only cases in Pup. Rerunning an import skips entries already imported, and the history stays readable while Discord member lookups are slow. The import brings over case history. It does not copy Carl’s configuration or transfer active sanctions.

More control over moderation

File protection now supports an allowed-extension list. For example, allow jpg, png and pdf while continuing to block dangerous files.
File protection configured to allow jpg, png and pdf, with dangerous-file blocking enabled.
Staff exemptions can be configured per core message filter. Blocked phrases can match through punctuation, including in anonymous submissions. Ban message deletion now uses a server default, initially 24 hours. Change it in Moderation settings or override it for a command. To keep the member’s messages:
Temporary bans, softbans and mass bans use the same default. Hardmute restores the roles it removed, preserves roles added later and respects Discord’s role hierarchy. It does not continuously track later permission changes.

Fewer steps in Discord

Complete commands and action buttons now run directly. Routine results use short replies, and moderation reasons are optional. Notes, reports and reason edits still require content; confidential commands remain slash-only.
Maya runs ^purge 8 in campfire; pup replies Deleted 8 messages.
Rule reminders are editable, with warning shortcuts linked to your server’s rules.

Also in 0.11

  • Warnings: repeated escalations no longer expire early, and reminder previews show the correct channel names.
  • Protection: staff alerts include deleted source messages when available. Security responses recover when the triggering message has already gone, and reports distinguish successful actions from failures.
  • Tickets: published panels stay available for private intake; controls survive edits and repair. Allowed attachments with MIME parameters are accepted, and intake questions are simpler.
  • Anonymous submissions: review access follows permission sets. Administrator includes it, Moderator does not, and server owners retain access.
  • Dashboard: expired sessions recover during server navigation. Saved log destinations, extension member names and new staff permissions display correctly.
  • Assistant: earlier results survive later approvals. External-task adapters can resume work after a restart; the SDK’s basic in-memory tasks cannot. Configured feedback integration accepts requests from commands and conversation.
  • Workers: restart recovery, fewer repeated reads, fewer duplicate Sentry errors, and operator-wide extension blocks.
Case links still do not archive message contents.

Before you upgrade

Migrations from 0.10.16 are forward-only. Verify a backup, stop the old API, bot and worker, run migrations, then start the matching new images. To roll back, restore the earlier database and images together. Do not run old binaries against the migrated database.
Portable Compose now shares Redis rate limits and fixes PostgreSQL startup and process cleanup. Signed stable artifacts identify their source and migrations. Supplied runtimes are ARM64. Build the dashboard from matching source; on other architectures, build all services. Source and images remain in private beta. The default Azure model deployment name is now gpt-6.1-sol. Set it explicitly if yours differs. Self-hosting · Backup and recovery · Full diff from 0.10.16