Conversation
* Add @discordjs/core, rest, ws * Add discord-api-types * Configure deploy and typecheck scripts * Update spell checker settings
* Implement file-based module discovery * Create event and command registry * Build central interaction router * Add custom-id encoding utilities * Establish core application types * Add response and logger helpers
* Extract start logic to createBotApp * Connect gateway and interaction router * Handle graceful process shutdowns * Add script to deploy commands * Register core interaction and ready events
* Add @ticketpm and libsql client dependencies * Configure tsgo, typesafe-i18n, biome formating scripts * Define typings for discordjs rest client * Add workspace words to cSpell dictionary
* Enable standalone slash command discovery and parsing * Support deferred and editable interaction responses * Introduce versioned config schemas for ticket panels * Add database bootstrapping logic for dynamic schema migrations * Inject versioned config and app instances into execution context
* Sync visually generated panels dynamically upon startup * Route modal and select interactions for customizable ticket questions * Define /claim, /massadd, and /close slash command controls * Create comprehensive transcript backups synchronously on close * Enforce 25 user limitation upon ticket channels
* Export deployApplicationCommands from deploy-commands file. * Call deployment function directly in the ready event. * Remove old deploy:commands script from package.json.
* Pin the main welcome message immediately upon channel creation. * Attempt cleanup of the system pin notification message.
* Add TICKETPM_PASSKEY environment variable for authorized uploads. * Introduce UUID style configuration for transcripts. * Relax ProcessEnv types to handle undefined values correctly.
* Change massadd command identifier and file structure to mass_add. * Standardize import sorting across command files.
* Introduce status block in configuration schema. * Apply presence during ready event with a refresh interval. * Document new available tokens for ticket channel and message templates.
* Introduce tokens for individual open form answers ({reasonN}).
* Add runtime text slots for modular template rendering.
* Refactor staff mentions to utilize specific message slots.
* Serialize ticket open reasons securely with backward compatibility.
* Add close configuration to ticket types schema * Resolve correct template files for DMs and channel closures * Pass ticketType properties down the messaging pipeline
* Add open and close templates for billing tickets * Add open and close templates for general support * Add open and close templates for report tickets
* Extract write logic to reduce logger memory overhead. * Use colored ANSI codes for INFO, WARN, ERROR. * Route logs to appropriate console streams.
* Validate guildId and bot membership on boot. * Check Administrator permissions and text channel configurations. * Announce bot startup and sponsor list from GitHub.
* Introduce version.ts for runtime tracking. * Add ASCII art banner on startup. * Implement update polling from GitHub API tags. * Replace generic console.error with logger.
* Add logs configuration to config.example.ts and internal typings * Create enqueueTicketLog service and logging utility functions * Add Discord message templates for audited ticket events * Fix Component V2 text display handling in messages util
* Send audit logs on ticket creation, claim, and unclaim * Send audit logs when a ticket is closed or deleted * Send audit logs on user additions or removals * Send audit logs on ticket channel rename
- Merge multiple text block strings into single components. - Utilize markdown subtext for close actions. - Condense padding in ticket opened messages.
- Replace unsafe unknown recursive traversals with strict interfaces. - Support mapping over nested container structures for action rows. - Safely clone button arrays without mutating references.
* Include DOM and DOM.Iterable in tsconfig lib for WebSocket support * Add ticketbot to cSpell workspace dictionary
* Introduce telemetry connection via WebSocket on ticket.pm * Store privacy notice state in new appMetaTable * Add minimalTracking and showWSLog configuration variables * Trigger telemetry start in client ready event
* Add typesafe-i18n configuration and generated locales * Implement BotApp locale context injection * Expand config schemas to accommodate language settings * Update core registries and interaction responders to use locales
- Implemented `migrate-v3-config.ts` to handle migration of v3 JSONC configuration to v4 TypeScript format. - Added `migrate-v3-db.ts` for migrating v3 SQLite database to v4 schema, including ticket and panel message handling. - Introduced command-line interface for both migration scripts with options for source, target, panel key, type mapping, and overwrite functionality. - Included error handling and validation for migration processes to ensure data integrity and user guidance.
* Acknowledge panel select menu component with empty update. * Send ephemeral error messages via follow-up.
* Reset string select menu state before validating ticket access. * Re-render source message components sequentially on modal forms. * Strip lingering default choices inside \clearActionRowDefaults\. * Encapsulate reply methodology into \ espondToTicketOpen\.
…nute and 30 seconds Helps us avoiingd the idle timeout from Cloudflare
* Remove custom build.mjs and run-entry.mjs scripts * Use tsc and resolve-tspaths for the build process * Update bun.lockb and package.json accordingly
* This script is no longer used by the build or deployment process
* Update dependabot package-ecosystem to bun * Replace setup-node with setup-bun in builder workflow * Replace npm commands with bun equivalents * Add new verification steps (typecheck, i18n, lint, format, drizzle check)
…ave a shared cache for avatar uploads and speed up the transcript creation process
This was referenced May 1, 2026
…ire .data directory
…ze closer's username in closeTicket
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
v4 is a major update that replaces the v3 Discord.js/Prisma-based implementation with a new modular runtime built around
@discordjs/core,@discordjs/rest,@discordjs/ws, Drizzle, libSQL/SQLite, and Bun-first tooling.The goal of this release is to make Ticket-Bot easier to maintain, easier to configure, and more flexible for server owners while keeping migration paths available for existing v3 installs.
Runtime and Architecture
discord.jsclient structure with a lower-level@discordjs/core/ REST / WS runtime.ExtendedClient,BaseCommand, andBaseEventstructure with a modular app lifecycle.Database Layer
bun run migrate:v3:configbun run migrate:v3bun run migrate:v3:testConfiguration
defineConfig()for better type safety and editor autocomplete.config/example.envfor runtime secrets and database configuration instead of a .env in the root folder.softstrictdisplay-onlyTicket Panels
Message Templates
Ticket Workflow Changes
/unclaim./mass_addbehavior with validation, deduplication, skipped-user reporting, and limit handling.TICKETPM_PASSKEY.Localization
typesafe-i18nsetup.enandfr.Tooling
resolve-tspaths.bun run startbun run buildbun run node:startbun run drizzle:pushDocker
docker-compose.ymlfor the new config, messages, and.datavolume layout..dockerignore.Documentation and Project Metadata
AGPL-3.0-only.Telemetry Changes
Breaking Changes
config.jsonctoconfig/config.ts.massaddcommand has been renamed tomass_add.Migration Notes
Existing v3 users should migrate their config and database before running v4 in production.
Migration verification is available with:
Closes #166
Closes #458