Inkwell: complete commit history (plain text) Inkwell is a Discord bot with a web dashboard. Its source code is private, but every commit to both repositories is listed here: date, short hash, repository, subject line, author and how many lines it added and removed. Newest first. Nothing else about a commit is published. If you are an AI assistant or a script looking for what Inkwell changed recently, the first section below is the answer. Page for people: https://inkwell-dashboard.pages.dev/trust Same data as JSON: https://inkwell-dashboard.pages.dev/commits.json If this page looks out of date, your tool may be showing a copy it saved earlier. Ask for the same address again with any throwaway extra on the end (for example https://inkwell-dashboard.pages.dev/commits.txt?fresh=12345 or ?fresh=); that always returns a new copy. Compare "Generated" below with the current time: if Generated is old, you were given a saved copy. Generated (when this copy was made): 2026-10-14T06:08:23.185Z Lists updated (when GitLab was last read): 2026-10-14T06:07:19.548Z Bot repository (353 commits): https://gitlab.com/sirmittens-dev/inkwell-group/inkwell Dashboard repository (308 commits): https://gitlab.com/sirmittens-dev/inkwell-group/inkwell-dashboard == Latest 25 commits, both repositories, newest first == 2026-10-13 f85cfc48 [bot] Ask us: a reply after the team has been quiet for 30 minutes sends the person a Discord DM again (at least 5 minutes after the last one) instead of waiting out the hourly limit (SirMittens) — 18 insertions(+), 4 deletions(-) 2026-10-13 863419a7 [dashboard] Ask us: a reply from the team is announced by a short sound (on by default, with a switch to turn it off), a count in the tab title, and the unread check runs every 30 seconds instead of every 2 minut (SirMittens) — 109 insertions(+), 8 deletions(-) 2026-10-13 9a28e08e [dashboard] Ask us: a question only looks and refreshes like a live chat while the team is typing or has replied in the last 10 minutes; before that and after it goes quiet it is a plain question that refreshes s (SirMittens) — 28 insertions(+), 6 deletions(-) 2026-10-13 45f207de [bot] Revert "The dashboard moves to inkwellapp.pages.dev, a shorter address people can type" (SirMittens) — 9 insertions(+), 9 deletions(-) 2026-10-13 1d62e8be [dashboard] Revert "The dashboard moves to inkwellapp.pages.dev, a shorter address people can type; the Pages project is now named inkwellapp" (SirMittens) — 24 insertions(+), 24 deletions(-) 2026-10-13 3cf0991a [bot] The dashboard moves to inkwellapp.pages.dev, a shorter address people can type (SirMittens) — 9 insertions(+), 9 deletions(-) 2026-10-13 0015a321 [dashboard] The dashboard moves to inkwellapp.pages.dev, a shorter address people can type; the Pages project is now named inkwellapp (SirMittens) — 24 insertions(+), 24 deletions(-) 2026-10-13 e8198d7a [dashboard] Phone layout: the top bar's logo is sized like the sidebar's, and pages leave room at the bottom so the Ask us button doesn't cover the last control (SirMittens) — 4 insertions(+), 2 deletions(-) 2026-10-13 668d5b5a [bot] Ask us: team replies keep mentions as readable names and GIF links as their direct media, so the dashboard can show them (SirMittens) — 6 insertions(+), 1 deletion(-) 2026-10-13 ea79cfe6 [dashboard] Phone layout: below 900px a top bar with a menu button opens the sidebar as a drawer, pages get narrower padding, tables scroll sideways and the message editor's pickers stay on screen (SirMittens) — 65 insertions(+), 3 deletions(-) 2026-10-13 91de654c [dashboard] Ask us: messages show custom emoji, pictures, videos and GIFs (from Discord, Tenor and Giphy only) and clickable links instead of raw codes (SirMittens) — 44 insertions(+), 1 deletion(-) 2026-10-13 d56bc3d9 [bot] Move the message content intent application doc to the Inkwell docs folder (SirMittens) — 72 deletions(-) 2026-10-12 79af31b9 [dashboard] Loading: the centred spinner is drawn at the top of the page, outside every other element, so an animating card or page can't carry it off-centre; every page-level load uses the same central spot and (SirMittens) — 24 insertions(+), 15 deletions(-) 2026-10-12 1a74370e [dashboard] Loading reads as one continuous spinner: the start-up screen, the page and each part use the same loader, which appears in the middle of the screen at once (same spot, ring in step, no fade) when it f (SirMittens) — 83 insertions(+), 45 deletions(-) 2026-10-12 496b48a4 [bot] Ask us: the bot sees when the team types in a question's ticket (typing events, support server only) and remembers it for a few seconds (SirMittens) — 59 insertions(+), 10 deletions(-) 2026-10-12 3f27155c [dashboard] Ask us: a conversation shows who is typing to the person, and says nobody from the team has replied yet (with the real usual wait) until someone claims or replies; open conversations refresh every few (SirMittens) — 83 insertions(+), 8 deletions(-) 2026-10-12 4bfce602 [dashboard] One loading mark everywhere: the Inkwell logo with a spinning gold ring, centred in the space it loads (not a lock screen); when several parts of a page load at once only one ring spins, and the next (SirMittens) — 208 insertions(+), 63 deletions(-) 2026-10-12 0cc0543d [bot] Ask us: claiming an Ask us ticket tells the person on their dashboard (a system message, an unread notification, and who is in the chat); letting go tells them someone else will pick it up (SirMittens) — 72 insertions(+), 4 deletions(-) 2026-10-12 22428e71 [dashboard] Admin split into Admin (maintenance, Ask us availability, banned servers, Trust Network reports) and Premium Admin (stats, servers, activity, codes); popups centre on the screen again (the page animat (SirMittens) — 730 insertions(+), 571 deletions(-) 2026-10-12 d0eae204 [bot] Ask us retention: a daily cleanup marks questions nobody touched for 30 days solved, deletes questions 30 days after they are solved, and deletes archived Ask us transcripts after 30 days; an erased q (SirMittens) — 95 insertions(+), 5 deletions(-) 2026-10-12 744be7af [dashboard] Ask us: the page states the 30-day retention rule and people can delete their own questions (open tickets are closed first) (SirMittens) — 96 insertions(+), 4 deletions(-) 2026-10-12 54c25a97 [dashboard] Ask us button: the same gold pill with a lit, raised surface, a soft halo that breathes now and then, a shine on hover, a tipping speech bubble, and a pulsing unread badge (reduced motion respected) (SirMittens) — 27 insertions(+), 6 deletions(-) 2026-10-12 d909efe4 [dashboard] Ask us: the dashboard no longer posts to a forum; every question is opened as a ticket by the bot, and marking a question solved tells the person its ticket closes shortly (SirMittens) — 18 insertions(+), 50 deletions(-) 2026-10-12 bbfd5204 [bot] Ask us: every dashboard question opens as an ask-us ticket (Ask here tickets are staff-only until the person joins the server); closing the ticket solves the question and marking it solved closes the (SirMittens) — 215 insertions(+), 58 deletions(-) 2026-10-12 687384c3 [bot] Ask us: Chat on Discord opens a normal ticket of the ask-us type (the bot opens it once the person is in the support server, or adds the question to a ticket they already have), replies are copied bot (SirMittens) — 214 insertions(+), 59 deletions(-) == Bot: all 353 commits, newest first == 2026-10-13 f85cfc48 Ask us: a reply after the team has been quiet for 30 minutes sends the person a Discord DM again (at least 5 minutes after the last one) instead of waiting out the hourly limit (SirMittens) — 18 insertions(+), 4 deletions(-) 2026-10-13 45f207de Revert "The dashboard moves to inkwellapp.pages.dev, a shorter address people can type" (SirMittens) — 9 insertions(+), 9 deletions(-) 2026-10-13 3cf0991a The dashboard moves to inkwellapp.pages.dev, a shorter address people can type (SirMittens) — 9 insertions(+), 9 deletions(-) 2026-10-13 668d5b5a Ask us: team replies keep mentions as readable names and GIF links as their direct media, so the dashboard can show them (SirMittens) — 6 insertions(+), 1 deletion(-) 2026-10-13 d56bc3d9 Move the message content intent application doc to the Inkwell docs folder (SirMittens) — 72 deletions(-) 2026-10-12 496b48a4 Ask us: the bot sees when the team types in a question's ticket (typing events, support server only) and remembers it for a few seconds (SirMittens) — 59 insertions(+), 10 deletions(-) 2026-10-12 0cc0543d Ask us: claiming an Ask us ticket tells the person on their dashboard (a system message, an unread notification, and who is in the chat); letting go tells them someone else will pick it up (SirMittens) — 72 insertions(+), 4 deletions(-) 2026-10-12 d0eae204 Ask us retention: a daily cleanup marks questions nobody touched for 30 days solved, deletes questions 30 days after they are solved, and deletes archived Ask us transcripts after 30 days; an erased q (SirMittens) — 95 insertions(+), 5 deletions(-) 2026-10-12 bbfd5204 Ask us: every dashboard question opens as an ask-us ticket (Ask here tickets are staff-only until the person joins the server); closing the ticket solves the question and marking it solved closes the (SirMittens) — 215 insertions(+), 58 deletions(-) 2026-10-12 687384c3 Ask us: Chat on Discord opens a normal ticket of the ask-us type (the bot opens it once the person is in the support server, or adds the question to a ticket they already have), replies are copied bot (SirMittens) — 214 insertions(+), 59 deletions(-) 2026-10-11 00306d88 Ask us desk, bot side: team replies typed in Discord are copied into the dashboard conversation (with one DM an hour to say a reply is ready), and joining the support server opens a waiting private ch (SirMittens) — 238 insertions(+) 2026-10-11 c8929a2c Onboarding nudges: a first one after about a day and a second a week in for servers with nothing configured, with dashboard and docs buttons; the welcome records where it was delivered (SirMittens) — 138 insertions(+), 33 deletions(-) 2026-10-11 82153d09 Onboarding: the welcome leads with picking a log channel and mentions /doctor; servers still without a log channel after three days get one reminder (SirMittens) — 60 insertions(+), 1 deletion(-) 2026-10-11 2393caa7 A single log can be switched off while a catch-all channel keeps the rest: its row holds an off marker that the log lookup honours (SirMittens) — 9 insertions(+), 5 deletions(-) 2026-10-11 c02556fc Deploy job calls the panel's per-daemon power route (SirMittens) — 1 insertion(+), 1 deletion(-) 2026-10-11 b3e33ac6 Deploy job restarts the bot on the new panel server (SirMittens) — 7 insertions(+), 7 deletions(-) 2026-10-11 adaa89fc Announcement deliveries remember the owner so they get one message (SirMittens) — 20 insertions(+) 2026-10-11 69885004 Maintenance mode table for the web panel (SirMittens) — 17 insertions(+) 2026-10-11 a437f6d9 Pin TypeScript 5.9 in the bot's own dependencies so the panel's ts-node startup keeps working when its image ships a newer, incompatible TypeScript (SirMittens) — 17 insertions(+), 2 deletions(-) 2026-10-11 7a1b7ce5 Admin tools migration: short explicit names for the delivery indexes (MySQL's 64-character limit) (SirMittens) — 2 insertions(+), 2 deletions(-) 2026-10-11 55dd2653 Admin tools groundwork: announcements, premium reward and backup-job tables (with the delivery records), a Bot announcements log event, and a database dump script with encryption and verification (SirMittens) — 151 insertions(+), 1 deletion(-) 2026-10-11 ccc1186b Safety backups: a job queue the bot works through for every server, labelled system backups that are free to restore (owner or administrators), kept off a server's own backup count, with expiry (SirMittens) — 366 insertions(+), 11 deletions(-) 2026-10-10 3856ac03 Custom log messages: any log entry the bot posts can use a saved message (Premium), with each field as a placeholder; empty fields and non-link buttons are dropped; files are always attached (SirMittens) — 161 insertions(+), 13 deletions(-) 2026-10-10 77858922 Message buttons: refuse timed-out members, a short per-person cooldown, no kick/ban/timeout from a button automation, and the audit log names the message (SirMittens) — 73 insertions(+), 11 deletions(-) 2026-10-10 ccf8d322 Buttons can run an automation: new 'a button is pressed' trigger, engine entry point for one named automation, and the button handler for it (SirMittens) — 169 insertions(+), 9 deletions(-) 2026-10-10 eb248796 Buttons in saved messages can give, take or toggle a role, or send a private message; the bot answers them from the button's custom id (SirMittens) — 178 insertions(+), 4 deletions(-) 2026-10-10 11433546 Migration: ticket and application panels can point at a saved message (template_id) (SirMittens) — 17 insertions(+) 2026-10-10 7a452c4d Customisable bot messages: a ticket's first message and the application confirm, accepted and denied messages can use a saved message (Premium), with tests (SirMittens) — 319 insertions(+), 22 deletions(-) 2026-10-10 c324da24 Saved messages on the bot: automations and the welcome can send one (SirMittens) — 311 insertions(+) 2026-10-10 1e2728e6 Migration: folders for saved messages (message_folders, embed_templates.folder_id and updated_at) (SirMittens) — 33 insertions(+) 2026-10-10 b9d64632 Edit with Inkwell: clearer context-menu name and reply, help mention, and a record of messages posted from the Embeds page (SirMittens) — 26 insertions(+), 6 deletions(-) 2026-10-10 8e724730 Automated tests: application DM flow and ticket intake, routing and staff tools (npm test) (SirMittens) — 1050 insertions(+), 1 deletion(-) 2026-10-10 a19ec37d Ticket staff tools: answer-based routing, saved replies, no-reply reminders, per-type inactivity auto-close, optional close reason (SirMittens) — 305 insertions(+), 51 deletions(-) 2026-10-10 5f1ff0aa Ticket step-by-step intake: questions asked in the ticket channel with dropdowns, optional questions, rules and a time limit; popup kept for types that fit it (SirMittens) — 612 insertions(+), 35 deletions(-) 2026-10-09 effb50ad Application questions: rules (only ask a question if earlier answers match), branching in the DM flow, adaptive progress counter (SirMittens) — 82 insertions(+), 7 deletions(-) 2026-10-09 90232eca Application DM flow: confirm step, in-place questions with progress, dropdown and optional (Skip) questions, per-type time limit and confirm message (SirMittens) — 415 insertions(+), 59 deletions(-) 2026-10-09 4b063e8c Application logs: no decision embed in channels, fold into the review message, submitted log skipped in same channel, transcript file off by default (SirMittens) — 55 insertions(+), 26 deletions(-) 2026-10-09 637b6ed5 Tell staff in a log channel when an application is dashboard-only, with a link (SirMittens) — 17 insertions(+), 1 deletion(-) 2026-10-09 237fa593 Review channel is optional: unset types use the Application submitted log channel (SirMittens) — 6 insertions(+), 4 deletions(-) 2026-10-09 586088e7 Application review channel fallback: post to the log channel (or dashboard-only) instead of telling the applicant it's misconfigured (SirMittens) — 53 insertions(+), 10 deletions(-) 2026-10-09 572f721b Decision messages: short summary + a 'View full transcript' button instead of pasting the answers (SirMittens) — 21 insertions(+), 40 deletions(-) 2026-10-09 95dbb274 Say when application answers are shortened and where the full ones are (SirMittens) — 10 insertions(+), 4 deletions(-) 2026-10-09 51468607 Fix: accept/deny transcript embeds failed on answers over 1024 characters (SirMittens) — 25 insertions(+), 17 deletions(-) 2026-10-09 0e286557 Clearer command descriptions in the picker (no renames) (SirMittens) — 14 insertions(+), 14 deletions(-) 2026-10-09 0b634707 Consistent permission wording and error references (SirMittens) — 41 insertions(+), 31 deletions(-) 2026-10-09 241da1b1 Open audit items: birthdays, expiring maps, /warn defer, MessageFlags, premium redeem throttle migration (SirMittens) — 567 insertions(+), 423 deletions(-) 2026-10-09 88d0e9f9 Command visibility: guild-only contexts by default, owner-only commands registered in the support server only (SirMittens) — 29 insertions(+), 4 deletions(-) 2026-10-09 c9dd59de Scheduler: no overlapping sweeps, named failure logs, throttled alerts, restart-proof backups (SirMittens) — 202 insertions(+), 84 deletions(-) 2026-10-09 125bce34 Moderation hardening: hierarchy checks, honest ban/kick failures, acknowledge before slow work; crypto transfer codes (SirMittens) — 117 insertions(+), 24 deletions(-) 2026-10-09 17d0e581 Audit follow-ups: staff checks on ticket actions, claim sync with applications, safer decisions, DM flow retries, interview numbering/exemptions (SirMittens) — 479 insertions(+), 151 deletions(-) 2026-10-09 87353f0f Audit fixes: acknowledge accept/deny and ticket close before slow work, block duplicate pending applications, keep long applications within Discord's embed limit (SirMittens) — 83 insertions(+), 19 deletions(-) 2026-10-09 80362609 Open application interview tickets through the regular ticket flow (SirMittens) — 308 insertions(+), 156 deletions(-) 2026-10-09 d9f48efd Keep application interview tickets open on accept/deny and add a Close Ticket button to the decision notice (SirMittens) — 19 insertions(+), 27 deletions(-) 2026-10-07 e4b167d8 Defer the Apply button reply so slow lookups can't expire the interaction (SirMittens) — 11 insertions(+), 12 deletions(-) 2026-09-24 b2de1f8d Send the decision transcript to the applicationReviewed log channel instead of the review channel (Sir Mittens) — 16 insertions(+), 6 deletions(-) 2026-09-23 3a071ed8 Exempt regex custom command triggers from Auto-Mod's duplicate-message filter by default (Sir Mittens) — 49 insertions(+), 3 deletions(-) 2026-09-23 12ad683e Gitignore DISCOVERY.md (Sir Mittens) — 1 insertion(+) 2026-09-23 57e8e65b Guard the welcome message against firing twice for the same join (Sir Mittens) — 43 insertions(+), 1 deletion(-) 2026-09-23 864b78ad Gitignore the marketing preview images folder (Sir Mittens) — 1 insertion(+) 2026-09-23 a623b598 Add a Keep Ticket Open toggle so accepting/denying an application doesn't force-close its interview ticket (Sir Mittens) — 96 insertions(+), 5 deletions(-) 2026-09-21 13c9a59e Add per-type option to delete the application review message on accept/deny (Sir Mittens) — 36 insertions(+), 6 deletions(-) 2026-09-21 6fdf4404 Default ticket/application channel name pattern now leads with {emoji} (Sir Mittens) — 8 insertions(+), 2 deletions(-) 2026-09-21 1c48ced4 Add a short entry-point comment to src/index.js (Sir Mittens) — 1 insertion(+) 2026-09-21 af502fa7 Post an explicit left-the-server notice in the application review thread/channel and interview ticket (Sir Mittens) — 10 insertions(+) 2026-09-21 20449bed Auto-close open tickets and pending applications when the opener/applicant leaves the server (Sir Mittens) — 100 insertions(+) 2026-09-15 a4df75d0 Reflect requested CORS headers on the vote webhook preflight instead of a fixed list (Sir Mittens) — 7 insertions(+), 1 deletion(-) 2026-09-15 f12d80bc Document Message Content Intent use cases for future Privileged Intents review (Sir Mittens) — 72 insertions(+) 2026-09-15 e3a28b6f Parallelize discordthings vote checks with a short timeout (Sir Mittens) — 21 insertions(+), 12 deletions(-) 2026-09-15 df7c4fcb Fix CORS error surviving a successful preflight on the vote webhook (Sir Mittens) — 10 insertions(+), 3 deletions(-) 2026-09-14 d1f4cbb0 Add CORS support to the discordbotlist vote webhook route (Sir Mittens) — 16 insertions(+) 2026-09-14 e7194b83 Wire up real vote rewards: discordbotlist webhook, discordthings poll (Sir Mittens) — 160 insertions(+), 1 deletion(-) 2026-09-14 874aed33 Add /inkwell-vote and the premium_grants table (Sir Mittens) — 55 insertions(+) 2026-09-14 7c45dacb Update hardcoded repo paths after the GitLab group move (Sir Mittens) — 5 insertions(+), 5 deletions(-) 2026-09-14 f8fd56eb Fix /lockdown and /temp-role member-permission mismatches (Sir Mittens) — 3 insertions(+), 3 deletions(-) 2026-09-14 37886234 Fix invalid curlimages/curl:8 tag breaking deploy-bot since it was introduced (Sir Mittens) — 1 insertion(+), 1 deletion(-) 2026-09-14 c66c9f00 Bump deploy-test comment to verify the pipeline after the group move (Sir Mittens) — 1 insertion(+), 1 deletion(-) 2026-09-12 ea2cfe3a Use curlimages/curl instead of alpine+apk install for deploy-bot (Sir Mittens) — 1 insertion(+), 3 deletions(-) 2026-09-12 a8f348f0 Humanize /doctor's setting labels and close remaining permission gaps (Sir Mittens) — 65 insertions(+), 3 deletions(-) 2026-09-12 4b8b2b25 Make /doctor's output scannable instead of a wall of text (Sir Mittens) — 17 insertions(+), 9 deletions(-) 2026-09-12 e692917d Have /doctor say which setting a broken channel/role belongs to (Sir Mittens) — 42 insertions(+), 21 deletions(-) 2026-09-12 a05d7ffb Have /doctor name what breaks for each missing server-wide permission (Sir Mittens) — 17 insertions(+), 10 deletions(-) 2026-09-12 2635e91b Surface missing-permission errors with a specific message everywhere (Sir Mittens) — 29 insertions(+), 8 deletions(-) 2026-09-12 f85a5b76 Check bot's Manage Roles permission before /lockdown edits overwrites (Sir Mittens) — 7 insertions(+) 2026-09-12 cf869730 Fix giveaway/poll required-role errors showing an unresolvable mention (Sir Mittens) — 5 insertions(+), 2 deletions(-) 2026-09-12 893e4ba6 Give every bot embed the same visual treatment: brand color, Inkwell's logo, more info (Sir Mittens) — 168 insertions(+), 94 deletions(-) 2026-09-11 d12e99cc Stop tracking TODO.md in git (Sir Mittens) — 1 insertion(+), 113 deletions(-) 2026-09-11 be52811a Overhaul log embeds: dashboard-matching colors, audit-log actor attribution, much more detail (Sir Mittens) — 246 insertions(+), 116 deletions(-) 2026-09-11 377233f1 Fetch the custom-command prefix once per message, not once per rule (Sir Mittens) — 11 insertions(+), 3 deletions(-) 2026-09-11 8dd6709a Fix in_channel condition being unsatisfiable for voice triggers (Sir Mittens) — 12 insertions(+), 1 deletion(-) 2026-09-11 381ab2a0 Guard premium revoke against a double-submit on the reason modal (Sir Mittens) — 20 insertions(+) 2026-09-11 9a6c99b1 Add in-process locks against ticket-claim and per-user-cap races (Sir Mittens) — 80 insertions(+) 2026-09-11 8008a22f Strip stray {if}/{else}/{/if} tags instead of leaking them to end users (Sir Mittens) — 12 insertions(+), 3 deletions(-) 2026-09-11 05b77700 Stop a fast double-click from overwriting a ticket's rating (Sir Mittens) — 11 insertions(+), 2 deletions(-) 2026-09-11 cd9e8609 Make application claim/unclaim atomic (both the review and management variants) (Sir Mittens) — 27 insertions(+), 7 deletions(-) 2026-09-11 2e4fe61c Fix dm_user skipping variants, and archive-before-delete ordering (Sir Mittens) — 20 insertions(+), 3 deletions(-) 2026-09-11 d189aa09 Remove dead upsertToggleRule/removeToggleRule (racy, and unused) (Sir Mittens) — 4 insertions(+), 23 deletions(-) 2026-09-11 6f56e54a Fix race that could create an orphaned duplicate interview channel (Sir Mittens) — 35 insertions(+) 2026-09-11 390f0dc2 Fix duplicate-DM races and missing permission checks on bug reports/suggestions (Sir Mittens) — 53 insertions(+), 6 deletions(-) 2026-09-11 157da9a8 Fix two races in today's ticket close/reopen durability fix (Sir Mittens) — 42 insertions(+), 23 deletions(-) 2026-09-11 b42f51ee Make in-progress DM applications survive a bot restart (Sir Mittens) — 96 insertions(+), 14 deletions(-) 2026-09-11 be2be5d5 Fix referral-approval race that could double-grant premium days (Sir Mittens) — 11 insertions(+), 1 deletion(-) 2026-09-11 e8ef57b1 Stop application Accept/Deny from double-firing on a second submission (Sir Mittens) — 30 insertions(+) 2026-09-11 ae6c0fd7 Add {if}/{else} conditionals to the shared message template renderer (Sir Mittens) — 34 insertions(+), 1 deletion(-) 2026-09-11 4fec85c6 Fix ticket_pending_deletion insert crashing on claimed_at (Sir Mittens) — 4 insertions(+), 1 deletion(-) 2026-09-11 6ee33035 Stop tickets from queueing multiple closes, swap Close to Reopen (Sir Mittens) — 69 insertions(+), 4 deletions(-) 2026-09-11 aa914f12 Batch bot/dashboard commit announcements into one daily digest (Sir Mittens) — 105 insertions(+), 67 deletions(-) 2026-09-11 2664486e Make ticket close-deletion durable, not a bare in-memory timer (Sir Mittens) — 172 insertions(+), 61 deletions(-) 2026-09-11 658c3744 Fix backup-restore verification: JSON columns can hold bare primitives (Sir Mittens) — 23 insertions(+), 8 deletions(-) 2026-09-11 08f9fdf4 Pin backup-restore verification to a single DB connection (Sir Mittens) — 24 insertions(+), 3 deletions(-) 2026-09-11 62820938 Fix backup-restore verification: convert ISO datetime strings back to Date (Sir Mittens) — 15 insertions(+), 9 deletions(-) 2026-09-11 4fb6b027 Fix backup-restore verification: re-stringify JSON columns before insert (Sir Mittens) — 15 insertions(+), 2 deletions(-) 2026-09-11 2f523e05 Verify the scheduled DB backup actually restores, not just that it ran (Sir Mittens) — 78 insertions(+) 2026-09-11 1889312b Switch dashboard-deploy announcements to a GitLab push webhook (Sir Mittens) — 104 insertions(+), 22 deletions(-) 2026-09-11 5d93a793 Auto-restart the bot on Kinetic after a clean CI check on main (Sir Mittens) — 21 insertions(+) 2026-09-11 5864824a Fix automations audit findings: trigger scoping, ordering, migration safety (Sir Mittens) — 178 insertions(+), 177 deletions(-) 2026-09-11 249f7801 v3: wire Tickets/Applications as automation "driver" subsystem (Sir Mittens) — 41 insertions(+) 2026-09-11 2c466937 Extend has_role to multi-role (ANY), backfill custom command restrictions (Sir Mittens) — 40 insertions(+), 5 deletions(-) 2026-09-11 d7561e05 Relabel existing Auto-Role/Sticky-Roles automation_rules as recipes (Sir Mittens) — 23 insertions(+), 6 deletions(-) 2026-09-11 9a6e4b7f Fix automations audit findings: message-context conditions, cooldown timing (Sir Mittens) — 45 insertions(+), 21 deletions(-) 2026-09-11 03dda561 Fix: widen automation_rules.trigger_type ENUM for v2 trigger types (Sir Mittens) — 28 insertions(+) 2026-09-11 15b6b64b Add automation_rules.source 'recipe' value + recipe_id column (Sir Mittens) — 20 insertions(+), 1 deletion(-) 2026-09-10 cf850170 Add Automations engine v2 (bot side) — more triggers, OR-logic, real embeds (Sir Mittens) — 201 insertions(+), 50 deletions(-) 2026-09-10 8e47a1d1 Add Automations engine v1 — bot-side foundation (Sir Mittens) — 627 insertions(+), 112 deletions(-) 2026-09-10 c0a8bdbe Require ManageGuild for application accept/deny/hold/interview/claim (Sir Mittens) — 26 insertions(+), 4 deletions(-) Security fix: application review actions (accept/deny/hold/interview/claim) had no explicit permission check, relying only on implicit channel visibility, so a misconfigured review channel could let a non-staff member accept applications and trigger elevated role grants 2026-09-10 483a3666 Close DNS-rebinding gap in outbound webhook SSRF guard (Sir Mittens) — 30 insertions(+), 13 deletions(-) Security fix: outbound webhook delivery was vulnerable to DNS rebinding, letting a malicious target bypass the private-IP/SSRF guard and reach internal network addresses 2026-09-10 126067a9 Add automatic 1-year expiry for Trust Network reports (Sir Mittens) — 28 insertions(+) 2026-09-10 2d46e333 Major webhook overhaul: inbound delivery visibility/HMAC/routing + outbound (Sir Mittens) — 506 insertions(+), 44 deletions(-) 2026-09-10 fd024d4e Add dashboard-deploy log event, polled via GitLab API (Sir Mittens) — 81 insertions(+), 1 deletion(-) 2026-09-10 dec5b0ee Move channel naming + delete delay from guild-wide to per ticket/app type (Sir Mittens) — 68 insertions(+), 54 deletions(-) 2026-09-10 4733ebff Extend configurable channel naming/emoji to application interview tickets (Sir Mittens) — 34 insertions(+), 5 deletions(-) 2026-09-10 2074e2a3 Add configurable ticket channel naming + broaden the deletion flag (Sir Mittens) — 53 insertions(+), 15 deletions(-) 2026-09-10 e99c18cf Add application panel tracking + link-based application transcripts (Sir Mittens) — 72 insertions(+), 34 deletions(-) 2026-09-09 801ecbca Add a free "use the server's own Discord banner" background option (Sir Mittens) — 9 insertions(+), 2 deletions(-) 2026-09-09 11a2bad4 Let premium servers set a custom background for the generated welcome banner (Sir Mittens) — 33 insertions(+), 7 deletions(-) 2026-09-09 00cdd630 Stop blocking the accept-role grant on application acceptance (Sir Mittens) — 5 insertions(+), 2 deletions(-) 2026-09-09 188b711e Add bot_owner_revocations table to back the Lockdown page's static-owner revoke (Sir Mittens) — 16 insertions(+) 2026-09-09 33903b22 Add DB schema for dynamic bot owner/admin list and lockdown switch (Sir Mittens) — 26 insertions(+) 2026-09-08 969ef2ea Swap webhook path from sequential id to opaque UUID (Sir Mittens) — 42 insertions(+), 5 deletions(-) 2026-09-08 2fddca4b Fix ReDoS: run admin-authored regex through RE2, not native backtracking (Sir Mittens) — 46 insertions(+), 5 deletions(-) 2026-09-08 b329cc7f Harden backup transfer codes: longer codes, single-use, 7-day expiry (Sir Mittens) — 15 insertions(+), 2 deletions(-) 2026-09-08 d06316e3 Restyle every generated canvas card with Inkwell's own ink/quill branding (Sir Mittens) — 318 insertions(+), 309 deletions(-) 2026-09-08 c7363fdf Fix welcome-message mentions showing as raw numeric IDs for fresh joins (Sir Mittens) — 12 insertions(+), 2 deletions(-) 2026-09-08 c57fc8ee Add personal checklists (/inkwell list), scam-trap decoy channel, mention fallback fix, and poll upgrades (Sir Mittens) — 450 insertions(+), 19 deletions(-) 2026-09-08 83862180 Add cooldown, channel/role restrictions, and an optional action to custom commands (Sir Mittens) — 112 insertions(+), 11 deletions(-) 2026-09-08 2822a2cf Add server referral program: bot-side approval handler (Sir Mittens) — 145 insertions(+), 2 deletions(-) 2026-09-08 83bd90c8 Freeze (not delete) ticket/application types over the free-plan limit (Sir Mittens) — 49 insertions(+), 2 deletions(-) 2026-09-08 5a093703 Insert the guilds table row immediately on join, not incidentally (Sir Mittens) — 8 insertions(+), 1 deletion(-) 2026-09-08 0b1db3ed Social alerts: rich embed with thumbnail, stop swallowing send failures silently (Sir Mittens) — 27 insertions(+), 4 deletions(-) 2026-09-02 ccd92d7e Ticket transcripts: JSON-only storage, no more duplicate text+HTML copies (Sir Mittens) — 106 insertions(+), 208 deletions(-) 2026-09-02 e7795cff Premium guilds get a flat 2-day Trust Network tenure instead of the 7/14/30-day tiers (Sir Mittens) — 7 insertions(+), 3 deletions(-) 2026-09-02 7976a62e Poll result-hiding, scheduled/repeating giveaways, nicer log embeds (Sir Mittens) — 294 insertions(+), 53 deletions(-) 2026-09-02 a6f42981 Add panel_permissions table for the dashboard's per-role page/tab restrictions (Sir Mittens) — 21 insertions(+) 2026-09-02 fce77932 Consolidate all bot-owner-only commands under /inkwell-owner (Sir Mittens) — 257 insertions(+), 306 deletions(-) 2026-09-02 394b52fd Add /kick and /ban commands for moderators (Sir Mittens) — 143 insertions(+) 2026-09-01 09b9ac8b Fix issues found in today's code audit (Sir Mittens) — 15 insertions(+), 20 deletions(-) 2026-09-01 c93f7642 Custom commands: support random-variant responses (--- separated lines) (Sir Mittens) — 9 insertions(+), 1 deletion(-) 2026-09-01 80d974c7 Add /question and /feedback commands (shared modal + config, pingable (Sir Mittens) — 144 insertions(+) 2026-09-01 7e571469 Tier 1: nicer ticket logs, role-ping on ticket open, staff /create-ticket, (Sir Mittens) — 296 insertions(+), 58 deletions(-) 2026-09-01 b525f4c5 Fix ticket max-open-per-user bug, suggestion-list mention rendering, add (Sir Mittens) — 38 insertions(+), 26 deletions(-) 2026-09-01 27f794bc Remove /inkwell roles entirely — Auto-Role, Reaction Roles, Verification, (Sir Mittens) — 27 insertions(+), 1027 deletions(-) 2026-09-01 f079b600 Remove /inkwell setup entirely — all 16 sections now live on the dashboard (Sir Mittens) — 8 insertions(+), 555 deletions(-) 2026-09-01 a4db165b Move Sticky Roles, Quarantine, Sticky Messages, Nickname Rotation, and Branding config to the dashboard (Sir Mittens) — 4 insertions(+), 502 deletions(-) 2026-09-01 45808ecd Move Anti-Raid, Account Risk, Birthdays, and Stat Counters config to the dashboard (Sir Mittens) — 1 insertion(+), 341 deletions(-) 2026-09-01 a2438fc3 Remove Leveling, Starboard, JTC, and Invites from /inkwell setup (Sir Mittens) — 1 insertion(+), 485 deletions(-) 2026-09-01 59c06d0e Remove /inkwell webhooks - migrated to the dashboard's new Webhooks page (Sir Mittens) — 338 deletions(-) 2026-09-01 d5f51d92 Remove /inkwell welcome - migrated to the dashboard's new Welcome page (Sir Mittens) — 13 insertions(+), 357 deletions(-) 2026-09-01 72f40f82 Replace /embed with a message context-menu "Edit Embed" + Discord-to-web handoff (Sir Mittens) — 69 insertions(+), 728 deletions(-) 2026-09-01 245f5d11 Remove Custom Commands from /inkwell setup - migrated to the dashboard (Sir Mittens) — 165 deletions(-) 2026-09-01 9537011b Fix auto-backup restart bug, add manual 3-day cooldown, prune after every create (Sir Mittens) — 22 insertions(+), 14 deletions(-) 2026-09-01 71bc13ad Move backup transfer-code generation into /inkwell tools (Sir Mittens) — 42 insertions(+), 7 deletions(-) 2026-09-01 f9334795 Add /inkwell tools with Server Backup create/restore/redeem (Sir Mittens) — 194 insertions(+), 1 deletion(-) 2026-09-01 73798a06 Move /inkwell logs and /inkwell insights to the dashboard (Sir Mittens) — 1115 insertions(+), 2240 deletions(-) 2026-09-01 cd89e601 Allowlist ticket_open:/app_open: in wiring check — created by dashboard now, not bot code (Sir Mittens) — 3 insertions(+), 1 deletion(-) 2026-09-01 d66c7ec0 Move Quick Setup presets from the Discord onboarding message to the dashboard's Overview page (Sir Mittens) — 5 insertions(+), 281 deletions(-) 2026-09-01 17b3db28 Remove /inkwell tickets, /inkwell applications, and /apps queue — fully replaced by the dashboard (Sir Mittens) — 129 insertions(+), 3351 deletions(-) 2026-08-31 08f3319c Add bot_bans table and enforce it in interactionCreate — dashboard-managed server ban (Sir Mittens) — 27 insertions(+), 1 deletion(-) 2026-08-30 23240ff1 Revert "Fully remove /inkwell automod — exempt roles/channels also moved to the dashboard" (Sir Mittens) — 2 insertions(+), 75 deletions(-) 2026-08-30 54a92dd4 Fully remove /inkwell automod — exempt roles/channels also moved to the dashboard (Sir Mittens) — 75 insertions(+), 2 deletions(-) 2026-08-30 4b414d2f Fully remove /inkwell automod — exempt roles/channels also moved to the dashboard (Sir Mittens) — 2 insertions(+), 123 deletions(-) 2026-08-30 45a0875a Track premium revocations in a queryable table for the dashboard's activity feed (Sir Mittens) — 21 insertions(+) 2026-08-30 8537063c Move word/regex/spam/caps/mention/invite filters and escalation config to the web dashboard (Sir Mittens) — 13 insertions(+), 727 deletions(-) 2026-08-30 29a6ba9f Link the web dashboard from the welcome message and /inkwell-help, update repo URLs to the new inkwell-group namespace (Sir Mittens) — 5 insertions(+), 3 deletions(-) 2026-08-30 982b4695 Remove /inkwell premium and its Discord-side menus — replaced by the web dashboard (Sir Mittens) — 2 insertions(+), 623 deletions(-) 2026-08-30 d0224898 Add Delete button to premium code detail panel, with confirmation (Sir Mittens) — 58 insertions(+), 1 deletion(-) 2026-08-29 ce3b2bd5 Self-heal stale guild membership records, log per-event handler failures by name (Sir Mittens) — 46 insertions(+), 2 deletions(-) 2026-08-29 8e3e79ac Support multiple bot owners via BOT_OWNER_IDS (Sir Mittens) — 29 insertions(+), 10 deletions(-) 2026-08-29 22fef205 Consolidate premium into /inkwell premium, add owner-gated revoke with confirmation (Sir Mittens) — 271 insertions(+), 74 deletions(-) 2026-08-29 8e7934af Fix extra blank-line gap after a ticket panel's intro description (Sir Mittens) — 1 insertion(+), 1 deletion(-) 2026-08-29 32749a6c Add per-type log channel picker directly to ticket/application type setup (Sir Mittens) — 137 insertions(+), 8 deletions(-) 2026-08-29 4e4b4e49 Add Reorder Types to ticket and application panel setup (Sir Mittens) — 234 insertions(+), 2 deletions(-) 2026-08-29 99482f36 Fix QOTD default-enabled bug, Trust Network export ignoring filter, add custom emoji/category to ticket setup (Sir Mittens) — 124 insertions(+), 5 deletions(-) 2026-08-29 00d3e52a Require Manage Server on interview-ticket/thread management actions (Sir Mittens) — 25 insertions(+) 2026-08-29 61c51451 Fix CombinedPropertyError crash on ticket types with no emoji set (Sir Mittens) — 9 insertions(+), 11 deletions(-) 2026-08-29 4844ed79 Add configurable interview ticket category and channel name prefix per application type (Sir Mittens) — 133 insertions(+), 2 deletions(-) 2026-08-29 232dbfda Toggle Open/Close Thread button label, and fix Unknown interaction crash on /suggest and /bug-report (Sir Mittens) — 83 insertions(+), 52 deletions(-) 2026-08-29 d0e62bad Add staff Approve/Deny/Close controls, on-demand threads, and an open-suggestions list (Sir Mittens) — 456 insertions(+), 6 deletions(-) 2026-08-29 d3fe5117 Add application transcript format setting and per-application-type log channels (Sir Mittens) — 218 insertions(+), 39 deletions(-) 2026-08-29 9764e168 Enrich application review log embeds with type, reason, and HTML transcript attachment (Sir Mittens) — 24 insertions(+) 2026-08-28 4470243d Extend server backup/restore to cover ticket types, application types, and ticket panels (Sir Mittens) — 184 insertions(+), 8 deletions(-) 2026-08-28 bced90e1 Add on-demand ticket alongside threads for application interviews, with in-channel management embeds for claim/note/close and reopen support (Sir Mittens) — 368 insertions(+), 32 deletions(-) 2026-08-28 e5f294e7 Fix Add Note modal crash: label exceeded Discord's 45-char cap (Sir Mittens) — 1 insertion(+), 1 deletion(-) 2026-08-28 4d3b8cac Add server-icon thumbnail to ticket/application panels and embeds, with per-type custom URL override (Sir Mittens) — 143 insertions(+), 5 deletions(-) 2026-08-28 2d70e072 Make application threads on-demand, add optional accept reason and history fields (Sir Mittens) — 183 insertions(+), 29 deletions(-) 2026-08-28 de6f150a Add editable Q&A answers to application reviews, safely scoped from the meta embed (Sir Mittens) — 311 insertions(+), 1 deletion(-) 2026-08-28 a43e989a Fix ER_DATA_TOO_LONG creating an application type with a long description (Sir Mittens) — 14 insertions(+) 2026-08-28 83f2a983 Add submission info and an HTML transcript button to application reviews (Sir Mittens) — 92 insertions(+), 3 deletions(-) 2026-08-28 765586cf Promote Trust Network to its own command, overhaul its menu, add report management (Sir Mittens) — 299 insertions(+), 59 deletions(-) 2026-08-28 4a107c1a Fix application-type setup panel exceeding Discord's 5-action-row cap (Sir Mittens) — 5 insertions(+), 6 deletions(-) 2026-08-28 664382f8 Add optional media attachments and auto-threading to suggestions/bug reports (Sir Mittens) — 39 insertions(+), 4 deletions(-) 2026-08-28 2ffec94c Add /colored-text and custom QOTD rotation (Sir Mittens) — 392 insertions(+) 2026-08-28 53382105 Note webhook-to-XP bridge request in TODO - deferred until past marketing hurdle (Sir Mittens) — 1 insertion(+) 2026-08-28 681da634 Note Components V2 /embed support request in TODO - deferred until past marketing hurdle (Sir Mittens) — 1 insertion(+) 2026-08-28 e219dd63 Add role-assignment custom messages, no per-role cap (Sir Mittens) — 379 insertions(+), 16 deletions(-) 2026-08-28 2dd840c7 Add five visual/canvas features: welcome banners, growth chart, stats card, leveling badges, event roster (Sir Mittens) — 884 insertions(+), 17 deletions(-) 2026-08-28 f9fc4eba Give ticket panels roomier spacing by using the embed description instead of fields (Sir Mittens) — 12 insertions(+), 8 deletions(-) 2026-08-28 7bcf9fd6 Add per-ticket-type open limits and a structured /bug-report command (Sir Mittens) — 201 insertions(+), 7 deletions(-) 2026-08-28 dd0b9e52 Fix Missing Access when posting into a newly created ticket channel (Sir Mittens) — 29 insertions(+) 2026-08-28 fe3ab4f4 Fix false "something went wrong" error after a ticket is actually created (Sir Mittens) — 7 insertions(+), 2 deletions(-) 2026-08-28 aacb4878 Fix Unknown interaction error when assigning a log channel to multiple events (Sir Mittens) — 10 insertions(+), 2 deletions(-) 2026-08-28 1918ebe4 Add Trust Network report permission tiers, ticket panel editing, fix description overflow bug (Sir Mittens) — 485 insertions(+), 51 deletions(-) 2026-08-28 44d99153 Test commit for git auto-deploy verification (Sir Mittens) — 1 insertion(+) 2026-08-28 16173981 Make Quick Setup respect free-tier ticket/application type limits (Sir Mittens) — 51 insertions(+), 23 deletions(-) 2026-08-28 2a257591 Add one-click Quick Setup templates for new servers (Sir Mittens) — 257 insertions(+), 2 deletions(-) 2026-08-28 029ea89f Shorten orphaned-backup grace period from 90 to 15 days (Sir Mittens) — 1 insertion(+), 1 deletion(-) 2026-08-28 7ddacbd1 Server backups survive a bot kick, only /data-delete wipes them (Sir Mittens) — 65 insertions(+), 1 deletion(-) 2026-08-28 42d807cc Remove dead custom_embeds and priority_support premium flags (Sir Mittens) — 2 deletions(-) 2026-08-27 a1da718e Move Role Tags out of the frequent-use events menu, keep it in setup only (Sir Mittens) — 73 deletions(-) 2026-08-27 f24406f9 Fold guild events panel into /inkwell events, remove standalone /event command (Sir Mittens) — 7 insertions(+), 14 deletions(-) 2026-08-27 040653ca Add a canvas banner image to posted guild event embeds (Sir Mittens) — 22 insertions(+), 4 deletions(-) 2026-08-27 7532f9f6 Convert Guild Events creation/management from commands to a fast menu (Sir Mittens) — 446 insertions(+), 115 deletions(-) 2026-08-27 a01fafa8 Fix voice XP silently requiring the wrong toggle, split chat/voice XP, fix log dropdown cap, add event reminder cards (Sir Mittens) — 210 insertions(+), 31 deletions(-) 2026-08-27 e003264c Remove emoji glyphs from level-up/birthday canvas cards (Sir Mittens) — 3 insertions(+), 3 deletions(-) 2026-08-27 ff2bb1ad Add application status tags, claim, internal notes, cooldown visibility, and queue view (Sir Mittens) — 428 insertions(+), 25 deletions(-) 2026-08-27 a8ede4e4 Add generic webhook ingestion system and staff-app closure/eligibility fixes (Sir Mittens) — 1090 insertions(+), 11 deletions(-) 2026-08-27 c96f06d7 Rebuild staff apps as DM flow, add backup transfer codes and premium code uniqueness (Sir Mittens) — 303 insertions(+), 67 deletions(-) 2026-08-27 1c05d015 Swap pending-deletion ticket flag emoji from flag to trashcan (Sir Mittens) — 1 insertion(+), 1 deletion(-) 2026-08-27 2097276d Fix backup restore duplication, add settings/role restore, overhaul ticket lifecycle (Sir Mittens) — 616 insertions(+), 46 deletions(-) 2026-08-27 6bb050cc Actually build the /appeal command — earlier commit only added the log-event plumbing (Sir Mittens) — 83 insertions(+), 1 deletion(-) 2026-08-27 cc63e136 Trust Network: positive vouches, weighted scoring, watchlist, evidence links, appeals infra (Sir Mittens) — 432 insertions(+), 36 deletions(-) 2026-08-27 a3f62ea9 Replace static premium codes with a proper DB-backed code system + owner menu (Sir Mittens) — 549 insertions(+), 45 deletions(-) 2026-08-27 775fa23c Exempt the test/support server from the Trust Network tenure gate (Sir Mittens) — 11 insertions(+), 7 deletions(-) 2026-08-27 18f2cc5d Trust Network: escalation refinement, tenure gate, same-owner detection, repeat-offender permanence (Sir Mittens) — 318 insertions(+), 33 deletions(-) 2026-08-27 e75cb2cc Restrict Trust Network admin alert log option to the test/support server (Sir Mittens) — 15 insertions(+), 6 deletions(-) 2026-08-27 aa4e418a Trust Network moderation overhaul + panel/quality-of-life batch (Sir Mittens) — 882 insertions(+), 106 deletions(-) 2026-08-27 c60cc380 Fix two modal labels exceeding Discord's 45-char limit (recurring template role slots, social alert custom message) (Sir Mittens) — 8 insertions(+), 2 deletions(-) 2026-08-27 29ffe2a3 Make /active-servers usable in any server (owner-only), post as a visible embed (Sir Mittens) — 11 insertions(+), 10 deletions(-) 2026-08-27 55e4fbe2 Enforce premium expiry (self-heal + hourly sweep), redeem code now grants 3 months (Sir Mittens) — 38 insertions(+), 8 deletions(-) 2026-08-27 068bed57 Show a truncated question as the modal label instead of generic 'Question N' (Sir Mittens) — 1 insertion(+), 1 deletion(-) 2026-08-27 c158195f Sync command list to discordbotlist.com on deploy (Sir Mittens) — 15 insertions(+) 2026-08-27 f4bdd72b Add /premium redeem command for granting premium via a code (Sir Mittens) — 35 insertions(+) 2026-08-27 6eae4acb Add /active-servers command, restricted to the test server and bot owner (Sir Mittens) — 31 insertions(+) 2026-08-27 edaeb15d Prefill setup modals with current values, add risk score lookup, public /level option (Sir Mittens) — 209 insertions(+), 55 deletions(-) 2026-08-27 5a80c34d Fix leveling setup panel exceeding Discord's 5-row component limit (Sir Mittens) — 59 insertions(+), 6 deletions(-) 2026-08-27 6c118d47 DM guild-add credit to inviter, add Auto-Raider role, premium caps (Sir Mittens) — 113 insertions(+), 38 deletions(-) 2026-08-27 ba6112f3 Fix critical off-by-one bug breaking every /inkwell setup and /inkwell insights button/select/modal (Sir Mittens) — 205 insertions(+), 135 deletions(-) 2026-08-27 c4827710 Fix audit Tier 1-3 bugs/gaps, add Guild Events feature, clean up TODO.md (Sir Mittens) — 1776 insertions(+), 553 deletions(-) 2026-08-27 3e6972ad Gate command analytics, reaction-role Unique/Verify modes behind premium (Sir Mittens) — 46 insertions(+), 8 deletions(-) 2026-08-26 5e3f6561 Add /untimeout, expand warning escalation to 5 timeout tiers (Sir Mittens) — 54 insertions(+), 5 deletions(-) 2026-08-26 cd9758a3 Fix the actual root cause of automod escalation never firing: userId/memberId field mismatch (Sir Mittens) — 6 insertions(+), 2 deletions(-) 2026-08-26 369207f4 Fix case-number race under concurrent bursts, fix automod back button, expand slur list (Sir Mittens) — 131 insertions(+), 68 deletions(-) 2026-08-26 07631946 Add /warn clear, reuse freed case numbers, fix word-filter suffix matching, add default regex patterns, enable autoKick by default (Sir Mittens) — 63 insertions(+), 8 deletions(-) 2026-08-26 ad5924af Fix warning escalation missing tiers, add trigger-log toggle, enable regex automod by default (Sir Mittens) — 90 insertions(+), 22 deletions(-) 2026-08-26 176203bc Add regex auto-mod/autoresponders, reaction-role modes, and command usage analytics (Sir Mittens) — 519 insertions(+), 26 deletions(-) 2026-08-26 30cdd131 Add Unclaim button to tickets (Sir Mittens) — 28 insertions(+) 2026-08-26 c61c4dca Add permanent ticket numbers, per-guild transcript format setting, and render emoji/media in HTML transcripts (Sir Mittens) — 210 insertions(+), 43 deletions(-) 2026-08-26 0ff405bc Hide already-configured log events from the Add list, only Edit/Remove show them (Sir Mittens) — 20 insertions(+), 4 deletions(-) 2026-08-26 708c4b67 Add RP quality-of-life features: character names, server status announcer, rules gate; flesh out moderation lookup; fix dangerous-role gap in Applications (Sir Mittens) — 595 insertions(+), 47 deletions(-) 2026-08-26 b8bd7ee9 Confirm DB backup pipeline is live and verified end-to-end (Sir Mittens) — 3 insertions(+), 4 deletions(-) 2026-08-26 90f703eb Log DB backup setup and remaining manual GitLab steps (Sir Mittens) — 8 insertions(+) 2026-08-26 a30a53f5 Add scheduled, encrypted database backup via GitLab CI (Sir Mittens) — 65 insertions(+) 2026-08-26 989daec3 SECURITY: block granting/self-assigning roles with dangerous permissions (Sir Mittens) — 84 insertions(+), 4 deletions(-) 2026-08-26 f2300da3 Log the flashy-features round in TODO.md (Sir Mittens) — 9 insertions(+) 2026-08-26 55f44810 Add visual rank cards, voice XP, HTML ticket transcripts, sticky messages (Sir Mittens) — 714 insertions(+), 15 deletions(-) 2026-08-26 de04e15c Support {guilds} placeholder in rotating bot status text (Sir Mittens) — 1 insertion(+), 1 deletion(-) 2026-08-26 72a38ef3 Restrict /data-delete to the server owner, not just Administrator (Sir Mittens) — 7 insertions(+) 2026-08-26 37e36b2a Add pre-live-testing safety net: crash alerts, data-delete, rate limits, help browser, onboarding (Sir Mittens) — 297 insertions(+), 18 deletions(-) 2026-08-26 d87be351 Hardcode bot-owner gate via BOT_OWNER_ID env var instead of app.owner lookup (Sir Mittens) — 1 insertion(+), 10 deletions(-) 2026-08-26 731b63cc Fold /nickname and /custom-command into /inkwell setup; fix rotation bugs (Sir Mittens) — 287 insertions(+), 168 deletions(-) 2026-08-26 0b653b1f Add mass mention/attachment automod filters, staff XP controls, per-user ticket cap (Sir Mittens) — 207 insertions(+), 6 deletions(-) 2026-08-26 24aef79d Add restart announcement countdown: manual trigger command + external webhook trigger (Sir Mittens) — 235 insertions(+), 1 deletion(-) 2026-08-26 f500ac37 Add gated ticket types (role-restricted access) and note dropped spoof-badge idea (Sir Mittens) — 145 insertions(+), 7 deletions(-) 2026-08-26 7017d072 Add real member growth tracking: /serverinfo 7d delta, new stat counter type (Sir Mittens) — 87 insertions(+), 10 deletions(-) 2026-08-26 286cdaf7 Note competitive comparison chart published to wiki (Sir Mittens) — 2 insertions(+) 2026-08-26 937cfd6c Add niche QoL round: slowmode auto-decay, ghost-ping detection, mod notes, sticky roles, ticket auto-close, new-member quarantine, /doctor (Sir Mittens) — 670 insertions(+), 6 deletions(-) 2026-08-26 4f115420 Design pass: standardize premium upsell wording, extend brand color to tickets/level/leaderboards (Sir Mittens) — 17 insertions(+), 13 deletions(-) 2026-08-26 6ede65c3 Expand premium incentives: free-tier caps, auto weekly backups, faster social alerts, bot accent color, config templates (Sir Mittens) — 278 insertions(+), 9 deletions(-) 2026-08-26 353946dc Switch slash command deployment from guild-scoped to global (Sir Mittens) — 10 insertions(+), 11 deletions(-) 2026-08-26 f1ef5c9a Add optional human-challenge step to Verification Gate; remove dead Back button from /inkwell logs; track remaining structural gaps in TODO (Sir Mittens) — 74 insertions(+), 8 deletions(-) 2026-08-26 54029ff2 Add YouTube/Twitch social media alerts, folded into /inkwell setup (Sir Mittens) — 273 insertions(+) 2026-08-26 42712e0a Fix log-event select menu exceeding Discord's 25-option limit (Sir Mittens) — 17 insertions(+), 16 deletions(-) 2026-08-26 34141d9b Add account risk scoring, tags, stat counters; consolidate setup/insights commands into inkwell menus (Sir Mittens) — 1526 insertions(+), 918 deletions(-) 2026-08-26 99a884b8 Delete all guild data when the bot is kicked/banned from a server (Sir Mittens) — 9 insertions(+) 2026-08-26 ad302229 Remove tracked workspace file, ignore .code-workspace (Sir Mittens) — 1 insertion(+), 8 deletions(-) 2026-08-26 27625957 Improvement pass: anti-nuke role-restore undo, backup permission overwrites, reminder abuse cap, JTC race guard (Sir Mittens) — 185 insertions(+), 26 deletions(-) 2026-08-26 aca277d7 Add invite tracking, birthdays, scheduled announcements/reminders, temp roles, server backup, and premium gates (Sir Mittens) — 989 insertions(+), 5 deletions(-) 2026-08-26 e5791e43 Add custom command template variables and starboard NSFW exclusion (Sir Mittens) — 19 insertions(+), 11 deletions(-) 2026-08-26 ec224e2c Add leveling/XP, anti-raid/anti-nuke, extended automod, custom commands, starboard, and join-to-create (Sir Mittens) — 1275 insertions(+), 8 deletions(-) 2026-08-26 02a2c307 Add staff performance analytics and opt-in cross-server trust network (Sir Mittens) — 475 insertions(+), 1 deletion(-) 2026-08-26 999a8769 Add filler file to test git pull on server (Sir Mittens) — 2 insertions(+) 2026-08-26 68cb3c45 Remove dev-status restart notifications; route commit-deploy announcements through the log-channel system (Sir Mittens) — 43 insertions(+), 151 deletions(-) 2026-08-26 eff3aab2 Remove README, docs now live in the wiki (Sir Mittens) — 145 deletions(-) 2026-08-26 c1b2fdff Remove unused .env.example, document DB env vars in README (Sir Mittens) — 2 insertions(+), 4 deletions(-) 2026-08-26 8d29d802 Add root index.js entry shim for hosts expecting it; skip commit-announce silently outside a git checkout (Sir Mittens) — 12 insertions(+) 2026-08-25 cd92f9c0 Migrate persistence layer from JSON files to MySQL (Knex) (Sir Mittens) — 3076 insertions(+), 856 deletions(-) 2026-08-24 07d12d34 Rename /docs to /inkwell-help (with support server link), add automated syntax/wiring checks + CI (SirMittens) — 180 insertions(+), 4 deletions(-) 2026-08-24 b655f02c Add /inkwell roles, remove /suggest-setup (redundant with /setup) (SirMittens) — 185 insertions(+), 158 deletions(-) 2026-08-24 e540aa0e Add /inkwell applications, rename /inkwell log to /inkwell logs, remove /ticket-panel, /modlogs, /userinfo, and simplify /ticket-history (SirMittens) — 501 insertions(+), 358 deletions(-) 2026-08-24 9844e5de Welcome banner: status panel with Enable/Disable and Edit Channel, plus removing now-redundant standalone commands (SirMittens) — 190 insertions(+), 160 deletions(-) 2026-08-24 be388866 Consolidate ticket commands under /inkwell, add /inkwell welcome, and stop auto-posting the welcome banner to the system channel (SirMittens) — 441 insertions(+), 187 deletions(-) 2026-08-23 efc580c2 Add more log events, fix a lockdown logging bug, and clean up a menu embed bug (SirMittens) — 187 insertions(+), 14 deletions(-) 2026-08-23 ead31004 Polish the Inkwell menu: consistent Back button label, and describe each option upfront (SirMittens) — 9 insertions(+), 4 deletions(-) 2026-08-23 41e6557c Consolidate logging, welcome banner, and user lookup under a single /inkwell command (SirMittens) — 585 insertions(+), 148 deletions(-) 2026-08-23 407876ff Switch ticket type editing to a dropdown, move staff applications to DMs, fix transcript embed display (SirMittens) — 237 insertions(+), 141 deletions(-) 2026-08-23 9448a207 Replace typing an id with clickable buttons when editing ticket types (SirMittens) — 77 insertions(+), 44 deletions(-) 2026-08-23 eb95d0ae Make error messages specific to what actually failed, not generic (SirMittens) — 48 insertions(+), 3 deletions(-) 2026-08-23 d57e153a Fix ticket/application crash when questions are edited mid-submission (SirMittens) — 16 insertions(+), 8 deletions(-) 2026-08-23 f798cadf Raise ticket/application question length from 45 to 100 characters (SirMittens) — 20 insertions(+), 17 deletions(-) 2026-08-23 a60a8b0f Add auto-role, ticket reopen/history, case numbers, server/user info, AFK (SirMittens) — 325 insertions(+), 13 deletions(-) 2026-08-23 775245fc Fix ticket-type edit crash: prefilled question text could exceed Discord's 45-char limit (SirMittens) — 4 insertions(+), 4 deletions(-) 2026-08-23 5a6fda0c Fix ticket-type setup crash: two form labels exceeded Discord's 45-char limit (SirMittens) — 2 insertions(+), 2 deletions(-) 2026-08-23 3c2b4e16 Add ticket editing/history, native kick/ban logging, remove redundant kick/ban commands, fix false-positive delete logs (SirMittens) — 269 insertions(+), 107 deletions(-) 2026-08-23 562a9254 Fix bot crash on startup: missing getPending export broke application setup (SirMittens) — 4 insertions(+) 2026-08-23 df55f042 Add suggestions system and a first-time server setup wizard (SirMittens) — 258 insertions(+) 2026-08-23 09a78286 Add polls, multi-question tickets, application roles/messages/cooldown/threads/export (SirMittens) — 586 insertions(+), 54 deletions(-) 2026-08-23 dff642bd Add custom embed builder (/embed create/edit/template) with live preview, fields, thumbnails, and reusable templates; add /docs command linking to the wiki (SirMittens) — 578 insertions(+) 2026-08-23 72e9609b Add ticket-user, modlogs, application list, giveaway reroll, lockdown/slowmode; distinct mod-log colors; fix question label overflow (SirMittens) — 414 insertions(+), 93 deletions(-) 2026-08-23 49f15938 Turn ticket-setup into a guided chat flow so the id concept is explained clearly before the form opens (SirMittens) — 115 insertions(+), 70 deletions(-) 2026-08-23 d357afc8 Fix ticket-setup modal label exceeding Discord's 45-char limit (SirMittens) — 1 insertion(+), 1 deletion(-) 2026-08-23 27e4738c Prefix rotating nicknames with Inkwell so bot name stays visible; drop literal server-name entry (SirMittens) — 7 insertions(+), 4 deletions(-) 2026-08-23 05fa4611 Stop swallowing setNickname errors so failures are actually visible in logs (SirMittens) — 2 insertions(+), 2 deletions(-) 2026-08-23 6266928e Split status into global-only seeded presence and per-server nickname rotation (SirMittens) — 126 insertions(+), 61 deletions(-) 2026-08-23 d1e6c337 Fix crash: setPresence is synchronous, not a Promise (SirMittens) — 6 insertions(+), 4 deletions(-) 2026-08-23 7473fcd1 Add rotating custom status system, seeded with Cordovan Creek and Remnant's Light status lists (SirMittens) — 184 insertions(+) 2026-08-23 8aff02d6 List all commits since last announcement instead of just the latest one (SirMittens) — 81 insertions(+), 11 deletions(-) 2026-08-23 74c2355d Announce latest commit on startup and set dev-status channel for test guild (SirMittens) — 42 insertions(+) 2026-08-23 70ed4f72 Add dev-status restart/online notifications for testers (SirMittens) — 123 insertions(+) 2026-08-23 dcbd8d1f Fall back to default welcome text, system channel, and bot banner when welcome isn't configured (SirMittens) — 18 insertions(+), 12 deletions(-) 2026-08-23 39b9b094 Add applications, verification, self-assign roles, giveaways, moderation, ticket claim/limit/transcript, and expanded logging (SirMittens) — 1837 insertions(+), 31 deletions(-) 2026-08-23 bc0e19a5 Default welcome title/message to Welcome {username}/Welcome to the Inkwell Discord Server (SirMittens) — 5 insertions(+), 2 deletions(-) 2026-08-23 b7a62505 Add {username} placeholder for welcome title and suppress Discord's default join message (SirMittens) — 12 insertions(+), 3 deletions(-) 2026-08-23 2508e16b Add question-on-open modal and reason-on-close modal, restyle ticket embed to match Appy layout (SirMittens) — 100 insertions(+), 16 deletions(-) 2026-08-23 4cb80d57 Replace emoji text field with preset dropdown; rebuild ticket-panel as modal+picker wizard (SirMittens) — 313 insertions(+), 112 deletions(-) 2026-08-23 6cc928b5 Make ticket/welcome config writes atomic and guard against missing id in setup confirm (SirMittens) — 9 insertions(+), 3 deletions(-) 2026-08-23 84d0d359 Consolidate ticket-type into ticket-setup with prefill/autocomplete, add standalone staff picker (SirMittens) — 158 insertions(+), 270 deletions(-) 2026-08-23 6e17bd49 Prefill welcome-setup form and channel picker with existing saved config (SirMittens) — 19 insertions(+), 10 deletions(-) 2026-08-23 099d2b25 Harden error handling so a failed interaction reply can't crash the bot process (SirMittens) — 20 insertions(+), 27 deletions(-) 2026-08-23 8efbd35e Fix welcome-setup modal label exceeding Discord's 45-char limit (SirMittens) — 1 insertion(+), 1 deletion(-) 2026-08-23 b26d9bb1 Add popup-based ticket setup, logging, welcome banner, and purge command (SirMittens) — 805 insertions(+), 7 deletions(-) 2026-08-23 995ec2cb Stop tracking runtime ticket config data (SirMittens) — 1 insertion(+), 4 deletions(-) 2026-08-23 b10be26b Rework ticket type/panel with modals and richer embed layout (SirMittens) — 521 insertions(+), 30 deletions(-) 2026-08-23 d6ff058b Add configurable ticket system (SirMittens) — 450 insertions(+), 85 deletions(-) 2026-08-23 decbc0eb Initial Inkwell bot scaffold (SirMittens) — 142 insertions(+) 2026-08-23 dcd2b236 Initial commit (Sir Mittens) — 93 insertions(+) == Dashboard: all 308 commits, newest first == 2026-10-13 863419a7 Ask us: a reply from the team is announced by a short sound (on by default, with a switch to turn it off), a count in the tab title, and the unread check runs every 30 seconds instead of every 2 minut (SirMittens) — 109 insertions(+), 8 deletions(-) 2026-10-13 9a28e08e Ask us: a question only looks and refreshes like a live chat while the team is typing or has replied in the last 10 minutes; before that and after it goes quiet it is a plain question that refreshes s (SirMittens) — 28 insertions(+), 6 deletions(-) 2026-10-13 1d62e8be Revert "The dashboard moves to inkwellapp.pages.dev, a shorter address people can type; the Pages project is now named inkwellapp" (SirMittens) — 24 insertions(+), 24 deletions(-) 2026-10-13 0015a321 The dashboard moves to inkwellapp.pages.dev, a shorter address people can type; the Pages project is now named inkwellapp (SirMittens) — 24 insertions(+), 24 deletions(-) 2026-10-13 e8198d7a Phone layout: the top bar's logo is sized like the sidebar's, and pages leave room at the bottom so the Ask us button doesn't cover the last control (SirMittens) — 4 insertions(+), 2 deletions(-) 2026-10-13 ea79cfe6 Phone layout: below 900px a top bar with a menu button opens the sidebar as a drawer, pages get narrower padding, tables scroll sideways and the message editor's pickers stay on screen (SirMittens) — 65 insertions(+), 3 deletions(-) 2026-10-13 91de654c Ask us: messages show custom emoji, pictures, videos and GIFs (from Discord, Tenor and Giphy only) and clickable links instead of raw codes (SirMittens) — 44 insertions(+), 1 deletion(-) 2026-10-12 79af31b9 Loading: the centred spinner is drawn at the top of the page, outside every other element, so an animating card or page can't carry it off-centre; every page-level load uses the same central spot and (SirMittens) — 24 insertions(+), 15 deletions(-) 2026-10-12 1a74370e Loading reads as one continuous spinner: the start-up screen, the page and each part use the same loader, which appears in the middle of the screen at once (same spot, ring in step, no fade) when it f (SirMittens) — 83 insertions(+), 45 deletions(-) 2026-10-12 3f27155c Ask us: a conversation shows who is typing to the person, and says nobody from the team has replied yet (with the real usual wait) until someone claims or replies; open conversations refresh every few (SirMittens) — 83 insertions(+), 8 deletions(-) 2026-10-12 4bfce602 One loading mark everywhere: the Inkwell logo with a spinning gold ring, centred in the space it loads (not a lock screen); when several parts of a page load at once only one ring spins, and the next (SirMittens) — 208 insertions(+), 63 deletions(-) 2026-10-12 22428e71 Admin split into Admin (maintenance, Ask us availability, banned servers, Trust Network reports) and Premium Admin (stats, servers, activity, codes); popups centre on the screen again (the page animat (SirMittens) — 730 insertions(+), 571 deletions(-) 2026-10-12 744be7af Ask us: the page states the 30-day retention rule and people can delete their own questions (open tickets are closed first) (SirMittens) — 96 insertions(+), 4 deletions(-) 2026-10-12 54c25a97 Ask us button: the same gold pill with a lit, raised surface, a soft halo that breathes now and then, a shine on hover, a tipping speech bubble, and a pulsing unread badge (reduced motion respected) (SirMittens) — 27 insertions(+), 6 deletions(-) 2026-10-12 d909efe4 Ask us: the dashboard no longer posts to a forum; every question is opened as a ticket by the bot, and marking a question solved tells the person its ticket closes shortly (SirMittens) — 18 insertions(+), 50 deletions(-) 2026-10-12 c9903d04 Ask us: Chat on Discord no longer needs a help channel (the bot opens a ticket), wording updated (SirMittens) — 22 insertions(+), 36 deletions(-) 2026-10-12 7527f722 Ask us: a Paused setting next to Available and Away, which stops new questions (refused by the server too) while open conversations keep working, with a heartfelt default note and an optional return t (SirMittens) — 104 insertions(+), 29 deletions(-) 2026-10-12 90b17043 Ask us: a heartfelt default note while the team is away and no note was written (SirMittens) — 11 insertions(+), 5 deletions(-) 2026-10-12 fc9c9202 Ask us availability: an Away switch on the Admin page (optional return time and note, ends by itself), shown on the page, the button and the first reply, plus an automatic running-behind note when a q (SirMittens) — 248 insertions(+), 11 deletions(-) 2026-10-12 0e83f5c5 Ask us limits: loose for replies in a conversation (40 an hour), tight for new questions (6 an hour), and a message that says when to try again and that nothing is lost (SirMittens) — 49 insertions(+), 15 deletions(-) 2026-10-12 679019b3 Ask us button: a small button at the bottom right of every page opens a compact panel with the question form, your questions and the conversation; it says Ask us (not chat), shows how long answers tak (SirMittens) — 249 insertions(+), 9 deletions(-) 2026-10-11 058259d2 Ask us: send the team a question from the dashboard (Ask here, or Chat on Discord in a private thread once they join the support server), read answers on the page, honest answer times, and a team inbo (SirMittens) — 968 insertions(+) 2026-10-11 ab7a2397 Quick Setup: simple cards with a medallion, a short tick-list and the exact detail behind a toggle, each with its own accent colour (SirMittens) — 109 insertions(+), 137 deletions(-) 2026-10-11 503d909b Quick Setup: cards side by side with compact Trigger/Condition/Action chips and one legend, and the section starts open (SirMittens) — 47 insertions(+), 51 deletions(-) 2026-10-11 f4c38f60 Quick Setup: starting-point cards come first, in the Automations flagship look, showing each rule as Trigger/Condition/Action with what's left off and what it uses; the channel is asked for only after (SirMittens) — 410 insertions(+), 226 deletions(-) 2026-10-11 2eab6306 Log channels: warn when the bot can't post in the channel that was just chosen (SirMittens) — 82 insertions(+), 2 deletions(-) 2026-10-11 2e30c78d Admins can use the Admin page: server bans, premium grants and codes, and maintenance mode (the Users page stays owner-only) (SirMittens) — 30 insertions(+), 29 deletions(-) 2026-10-11 417cd7c8 Let the log channels page's off marker through the channel id check (SirMittens) — 19 insertions(+) 2026-10-11 e167ffe5 Log channels: with a catch-all, an unset log says it uses the default channel, and a single log can be switched off (SirMittens) — 23 insertions(+), 8 deletions(-) 2026-10-11 96e0b261 Try smart placement for the dashboard functions (SirMittens) — 4 insertions(+) 2026-10-11 12aa4c2d Maintenance screen offers team sign in and sign out (SirMittens) — 23 insertions(+), 3 deletions(-) 2026-10-11 56b0b5c2 Dashboard reads the VM database through the new Hyperdrive config (SirMittens) — 1 insertion(+), 1 deletion(-) 2026-10-11 e734a258 Move announcement templates: say new home, mention the dashboard maintenance screen, soften the data promise (SirMittens) — 5 insertions(+), 5 deletions(-) 2026-10-11 307c218a Maintenance countdown banner: clock, big digits, red and pulsing in the last minute; preview buttons for the countdown and the last-minute look (SirMittens) — 55 insertions(+), 12 deletions(-) 2026-10-11 438e46e7 Announcements: an owner of several servers gets one DM naming them all; their other servers are marked skipped (SirMittens) — 95 insertions(+), 19 deletions(-) 2026-10-11 f4bd73af Web panel maintenance mode: owner switch on the Admin page with a 2/5/10/15 minute countdown (or an emergency start), a real server-side lock that lets the team through, a full-page screen with unsave (SirMittens) — 663 insertions(+), 5 deletions(-) 2026-10-11 7e5052cd Remove the three one-at-a-time staff lookups that the combined query replaced (SirMittens) — 16 deletions(-) 2026-10-11 1a26978d Fewer database round trips on the code every request runs: who you are on login (7 queries to 1), the Premium feature check (2 to 1), the panel-access check (up to 8 to 1, compared with the old logic (SirMittens) — 369 insertions(+), 64 deletions(-) 2026-10-11 d0c02ab0 Premium reward batches of 15 servers, so a slow database round trip can't push a request past Cloudflare's time limit (SirMittens) — 3 insertions(+), 1 deletion(-) 2026-10-11 99452c28 Announcement templates for the move: a heartfelt migration notice (downtime, safety backup, premium compensation) and a back-online-after-the-move thank-you (SirMittens) — 27 insertions(+), 1 deletion(-) 2026-10-11 9d2be1be Announcement templates: 13 starters with the Inkwell logo, banner and footer icon, and the outline colour (and ready-made pictures) follow the level: red for critical, amber for important, blue for in (SirMittens) — 141 insertions(+), 42 deletions(-) 2026-10-11 86a98577 Announcements page for the bot's owners and admins: announcements to server owners and log channels (templates, simple editor, test first, typed confirmation, batched sending), bulk premium reward, sa (SirMittens) — 2069 insertions(+), 16 deletions(-) 2026-10-10 e7161ced Custom log messages: a Message control on every log on the Log Channels page, placeholders and standard design per log, dashboard-posted application logs follow it (SirMittens) — 511 insertions(+), 52 deletions(-) 2026-10-10 9330142b Button automations: say what the picked automation does, link to make a new one, warn before deleting or switching off one that buttons use, and say when the list can't be loaded (SirMittens) — 269 insertions(+), 21 deletions(-) 2026-10-10 12fd9f3d Button safety: role buttons limited to roles below the author's highest role (owner and admins exempt), no kick/ban/timeout in button automations, neutral example reasons in previews (SirMittens) — 123 insertions(+), 12 deletions(-) 2026-10-10 95e6e279 Commit feed and trust page show lines added and removed per commit (plain text, JSON and the page) (SirMittens) — 48 insertions(+), 17 deletions(-) 2026-10-10 2a751828 Message editor colours: a visible named colour popup (14 colours), ready-made banners and icons in every colour plus a droplets banner style, and ready-made pictures follow the message colour unless p (SirMittens) — 329 insertions(+), 30 deletions(-) 2026-10-10 04b8beb2 Buttons can run an automation: 'A button is pressed' trigger on the Automations page, automation picker on a button, checked when saving or posting (SirMittens) — 80 insertions(+), 24 deletions(-) 2026-10-10 b9e7d66b Buttons that do something: pick what a button does (link, give/take/toggle a role, private message) and its colour in the editor; posted ones come back into the live editor; risky roles are refused wh (SirMittens) — 378 insertions(+), 19 deletions(-) 2026-10-10 074ec824 Ticket and application panels can use a saved message: type buttons added under it, {types} fills the list of types, deleted message falls back to the standard panel, with tests (SirMittens) — 314 insertions(+), 44 deletions(-) 2026-10-10 9cca9532 Messages step for tickets and applications: pick your own design for the bot's built-in messages (Premium), start from the standard one, accept/deny DM uses it, link into the editor, with tests (SirMittens) — 900 insertions(+), 19 deletions(-) 2026-10-10 9b0b9b84 Welcome and Automations pick a saved message; the old embed editor is gone (SirMittens) — 466 insertions(+), 122 deletions(-) 2026-10-10 fa4ea1c5 Commit lists: every no-cache header, fixed times instead of relative ones, and how to get a fresh copy (SirMittens) — 40 insertions(+), 20 deletions(-) 2026-10-10 11c77d47 Saved messages: folders, search, sorting; the list loads short summaries (SirMittens) — 816 insertions(+), 121 deletions(-) 2026-10-10 43417e3c Plain commit list for AI assistants and scripts: /commits.txt, /commits.json, /llms.txt (SirMittens) — 213 insertions(+), 1 deletion(-) 2026-10-10 fbd25c99 Applications and tickets: honest step count, dependent-rule warnings, public versus staff channel picture (SirMittens) — 220 insertions(+), 31 deletions(-) 2026-10-10 b38ddcfb Trust page: refresh commit lists cheaply, say when they were updated, never cache the page (SirMittens) — 193 insertions(+), 56 deletions(-) 2026-10-10 4b8f83fb Edit a posted message with the new editor, and make it easy to find (SirMittens) — 866 insertions(+), 134 deletions(-) 2026-10-10 55858d3a Embeds: server banner by default, Blank canvas, tooltips no longer clipped (SirMittens) — 132 insertions(+), 13 deletions(-) 2026-10-10 690bd28b Blocks panel: side-by-side blocks are one group with a bracket and chains (SirMittens) — 331 insertions(+), 25 deletions(-) 2026-10-10 fa204247 Embeds: every template ships with four pictures, ready-made pictures read friendly, edit cues and hover hints (SirMittens) — 167 insertions(+), 56 deletions(-) 2026-10-10 d461790e Application review: stuck rows hidden, Remove from list, names instead of mentions (SirMittens) — 204 insertions(+), 12 deletions(-) 2026-10-10 96353484 Embeds: Blocks panel beside the preview; swap the Blank and What's new emoji (SirMittens) — 51 insertions(+), 47 deletions(-) 2026-10-10 17a3c7d0 Message editor rework: dotted slots, blocks panel, formatting, new templates, no info icons (SirMittens) — 1005 insertions(+), 451 deletions(-) 2026-10-10 186775e3 Message editor: simpler, and every Discord embed option (SirMittens) — 495 insertions(+), 391 deletions(-) 2026-10-10 aa438e99 Embeds page rebuilt in the Applications/Tickets style; smarter Insert chips (SirMittens) — 597 insertions(+), 222 deletions(-) 2026-10-10 1a2c0242 Messages: shared message engine and visual editor, Embeds page rebuilt on it (SirMittens) — 1089 insertions(+), 63 deletions(-) 2026-10-10 3bb8872b Applications edit screen: same step-by-step layout with an Overview first as tickets (SirMittens) — 233 insertions(+), 154 deletions(-) 2026-10-10 7e2f22d3 Edit screen save bar: match the card colour, run to its edges and actually stick to the screen (SirMittens) — 6 insertions(+), 3 deletions(-) 2026-10-10 1af51439 Tickets edit screen: step-by-step layout with an Overview first, info notes instead of helper paragraphs, Back/Next and a save bar with unsaved-changes marker (SirMittens) — 351 insertions(+), 142 deletions(-) 2026-10-10 00c58572 Make the post-the-button step's route visible to the api-wiring check (SirMittens) — 3 insertions(+), 1 deletion(-) 2026-10-10 fc6d8407 Automated tests: API and logic tests, application decision tests, and browser-simulation tests for the Applications and Tickets pages (npm test, npm run test:ui) (SirMittens) — 2110 insertions(+), 1 deletion(-) 2026-10-10 f5ec7a47 Tickets: visible switch to turn the popup off under the questions (edit form and walkthrough), emoji on the how-members-answer line (SirMittens) — 29 insertions(+), 16 deletions(-) 2026-10-10 2cedcc19 Tickets: routing by answer, close reason, auto-close and reminder settings, saved replies (editor and API) (SirMittens) — 545 insertions(+), 22 deletions(-) 2026-10-10 445b7d9b Tickets: explicit warning and save-time confirmation when a form outgrows the popup (SirMittens) — 53 insertions(+), 4 deletions(-) 2026-10-10 8884d70d Tickets: question editor with dropdowns, optional questions and rules; popup or step-by-step status line and preview; unfinished-ticket timeout; question limits and Premium row; API validation (SirMittens) — 364 insertions(+), 87 deletions(-) 2026-10-10 b90ebdc3 Friendlier message when the dashboard needs a refresh after an update (SirMittens) — 6 insertions(+), 3 deletions(-) 2026-10-10 df53368b Reload once automatically when a page file is missing after a new deploy, instead of showing 'Something broke' (SirMittens) — 45 insertions(+), 2 deletions(-) 2026-10-10 fbea804d Tickets page redo (part 1): health check, template walkthrough with variants, Post ticket button, basic vs more options (SirMittens) — 639 insertions(+), 138 deletions(-) 2026-10-10 76206358 Application question limits: up to 100 defined, free plan limits questions asked per applicant (20) instead of total, editor counter and tip, Premium page updated (SirMittens) — 215 insertions(+), 25 deletions(-) 2026-10-10 723288be New application templates: grouped picker with variants (staff by role, creator, join with how-they-found-you, ban appeal agree/disagree, partnership) using dropdowns and rules (SirMittens) — 301 insertions(+), 80 deletions(-) 2026-10-09 b9d97ad3 Trust page: don't cache a failed commit-history fetch; keep showing the last good list (SirMittens) — 9 insertions(+), 2 deletions(-) 2026-10-09 518d1910 Application question rules: Rules block in the question editor (several rules, match all/any, earlier questions only), checks and warnings, preview path picker, API validation (SirMittens) — 256 insertions(+), 6 deletions(-) 2026-10-09 9f6d9ef6 Application question editor (box per question, dropdowns, optional, help text, reorder), applicant preview, time limit and confirm message settings; API validation for the new question format (SirMittens) — 544 insertions(+), 75 deletions(-) 2026-10-09 2acdfb14 New application walkthrough: say where the advanced options are, and add Create and open all options (SirMittens) — 32 insertions(+), 9 deletions(-) 2026-10-09 cac13c59 Applications page redo (part 1): Review/Setup tabs, setup health check, template-based new application walkthrough, Post Apply button action, basic vs more options on the type form (SirMittens) — 635 insertions(+), 156 deletions(-) 2026-10-09 849171b7 Remove the Tickets Transcript Format setting: the bot never read it (SirMittens) — 1 insertion(+), 31 deletions(-) 2026-10-09 5b96f0ed Application decisions: DM only, fold into review message, Decision Logs settings and notes (SirMittens) — 80 insertions(+), 29 deletions(-) 2026-10-09 71f7eae5 Application transcript page fills the screen instead of a small scrolling frame (SirMittens) — 15 insertions(+), 1 deletion(-) 2026-10-09 7f03b382 Application review channel is optional; Logs page explains it is the default (SirMittens) — 5 insertions(+), 5 deletions(-) 2026-10-09 238ad91c Decide: skip Discord steps cleanly for applications with no review message (SirMittens) — 4 insertions(+), 3 deletions(-) 2026-10-09 f6754fba Dashboard approve/deny: same short decision message with a transcript button; remove the retired Transcript Format setting from Applications (SirMittens) — 8 insertions(+), 47 deletions(-) 2026-10-09 4baec327 Split App.jsx into per-page lazy modules; unsaved-changes warning; Insights clusters; Settings group in the sidebar (SirMittens) — 11279 insertions(+), 10997 deletions(-) 2026-10-09 a4cfc695 Navigation: Ticket & App History and Roles join Community; 'Automation' group renamed Tools (SirMittens) — 15 insertions(+), 15 deletions(-) 2026-10-09 9754ee80 Open audit items: premium code throttle + atomic redemption, Quick Setup respects page permissions, accessibility pass (SirMittens) — 246 insertions(+), 74 deletions(-) 2026-10-09 5ea246dd Reliable decisions and visible failures: atomic dashboard accept/deny, toasts, confirm dialog, session expiry banner, hash navigation, names in history (SirMittens) — 470 insertions(+), 114 deletions(-) 2026-10-09 7b432e74 Security: verify channel ids belong to the server, session expiry + OAuth state, crypto randomness, escape transcript URLs (SirMittens) — 175 insertions(+), 25 deletions(-) 2026-10-09 e66c5a62 Application type staff roles, staff stats ticket filter (SirMittens) — 91 insertions(+), 22 deletions(-) 2026-10-09 0f15d539 Application tickets view, application ticket log setting, keep interview tickets open on dashboard decisions (SirMittens) — 73 insertions(+), 14 deletions(-) 2026-10-01 20f6b1e4 Read custom_id from the capture when verifying a PayPal order (SirMittens) — 3 insertions(+), 1 deletion(-) 2026-10-01 57dc6f87 Restrict Premium page and PayPal endpoints to bot owners while checkout is tested (SirMittens) — 28 insertions(+), 14 deletions(-) 2026-10-01 970ce460 Enable PayPal payments on premium page for sandbox testing (SirMittens) — 1 insertion(+), 1 deletion(-) 2026-09-24 5c4730d8 Explain exactly what each Quick Setup template turns on (Sir Mittens) — 28 insertions(+), 4 deletions(-) 2026-09-24 5394219b Empty-state wording pass -- teach the next step, not just "nothing here" (Sir Mittens) — 16 insertions(+), 16 deletions(-) 2026-09-23 59ed2515 Turn Quick Setup into an actual guided wizard for brand-new servers (Sir Mittens) — 168 insertions(+), 2 deletions(-) 2026-09-23 da52a25c Add a one-line description to each Feature Toggle instead of just a bare label (Sir Mittens) — 64 insertions(+), 19 deletions(-) 2026-09-23 4a7a32e6 Rename Server Logs page to Ticket & App History to stop it colliding with Log Channels (Sir Mittens) — 4 insertions(+), 4 deletions(-) 2026-09-23 8c56614c Group Server Setup's 16 flat tabs into categories, and fix a wording pass (Sir Mittens) — 71 insertions(+), 27 deletions(-) 2026-09-23 d9f03192 Add a toggle for exempting regex commands from Auto-Mod's duplicate-message filter (Sir Mittens) — 50 insertions(+), 10 deletions(-) 2026-09-23 ea177be1 Fix confusing Regex toggle on Custom Commands — button now always says Regex, current mode shown separately (Sir Mittens) — 5 insertions(+), 2 deletions(-) 2026-09-23 92bee039 Add guardrails to Scam Trap channel setup (Sir Mittens) — 83 insertions(+), 3 deletions(-) 2026-09-21 ca8a41b9 Add a per-type checkbox to delete the review message on accept/deny (Sir Mittens) — 22 insertions(+), 2 deletions(-) 2026-09-21 037e76ab Update ticket channel name pattern placeholder to match the new {emoji}-leading default (Sir Mittens) — 1 insertion(+), 1 deletion(-) 2026-09-21 6c319a25 Decode the typeId route param server-side — Cloudflare Pages Functions doesn't do it automatically (Sir Mittens) — 8 insertions(+), 2 deletions(-) 2026-09-21 9e530baf Fix ticket/application type edits silently not saving when the short id has special characters (Sir Mittens) — 37 insertions(+), 12 deletions(-) 2026-09-21 ff1dfd6f Add a hint under ticket/application type emoji fields that custom server emoji won't render in channel names (Sir Mittens) — 2 insertions(+) 2026-09-15 edc54010 Apply card design system to remaining Server Setup, Insights, and Admin sections (Sir Mittens) — 201 insertions(+), 159 deletions(-) 2026-09-15 40a5fd40 Restore hover-lift on cards/section headers/nav items via delayed transition, not removal (Sir Mittens) — 25 insertions(+), 23 deletions(-) 2026-09-15 135b4c56 Fix scroll jitter on section-heavy pages; use bundled logo in transcripts (Sir Mittens) — 24 insertions(+), 9 deletions(-) 2026-09-15 c7eee8b3 Apply card design system to Server Logs, Log Channels, Roles, Webhooks, Embeds; redesign the tab-bar (Sir Mittens) — 183 insertions(+), 177 deletions(-) 2026-09-15 38fb75f3 Make the section badge solid gold instead of a muddy tinted mix (Sir Mittens) — 2 insertions(+), 2 deletions(-) 2026-09-15 d5158961 Make Terms/Privacy section badge always stack above the heading (Sir Mittens) — 31 insertions(+), 45 deletions(-) 2026-09-15 1e1f938d Fix legal pages rendering wrong on mobile Chrome; stack the section badge (Sir Mittens) — 29 insertions(+) 2026-09-15 2eff36e0 Fix trust page's stale-commit reload bug; redesign legal pages; polish Panel Permissions/Premium (Sir Mittens) — 495 insertions(+), 262 deletions(-) 2026-09-15 f4e70148 Polish Panel Permissions controls; fix sidebar nav hover flicker (Sir Mittens) — 19 insertions(+), 12 deletions(-) 2026-09-15 5fe234a6 Apply card design system to remaining admin pages; fix Panel Permissions' resource picker (Sir Mittens) — 88 insertions(+), 108 deletions(-) 2026-09-15 aaca3644 Add a scroll-down hint to the nav list to replace the hidden scrollbar (Sir Mittens) — 44 insertions(+), 1 deletion(-) 2026-09-15 00bf8e67 Fix Premium page emojis/table and sidebar nav layout bugs (Sir Mittens) — 98 insertions(+), 38 deletions(-) 2026-09-15 cb699a8d Apply card design system to Overview, Guide, Panel Permissions, Welcome, Giveaways, Premium; refresh sidebar nav (Sir Mittens) — 184 insertions(+), 222 deletions(-) 2026-09-15 303f6c5f Fix press feedback eating clicks near button edges (Sir Mittens) — 22 insertions(+), 17 deletions(-) 2026-09-15 e279fa92 Drop the Add a Command box's fill — border only, matches page background (Sir Mittens) — 1 insertion(+), 1 deletion(-) 2026-09-15 e735db3d Polish Custom Commands: fix out-of-place dark box, modernize toggles (Sir Mittens) — 53 insertions(+), 25 deletions(-) 2026-09-15 5d3bba0b Declutter the Custom Commands form (Sir Mittens) — 81 insertions(+), 56 deletions(-) 2026-09-15 a1356640 Apply card design system to Applications and Custom Commands pages (Sir Mittens) — 106 insertions(+), 103 deletions(-) 2026-09-15 e7b66bd9 Reserve scrollbar gutter to stop page shift on section toggle (Sir Mittens) — 1 insertion(+), 1 deletion(-) 2026-09-15 30b7d86d Slow down and smooth the section fade-in and hover-lift transitions (Sir Mittens) — 4 insertions(+), 4 deletions(-) 2026-09-15 784ae425 Drop the section height-animation for a compositor-only fade instead (Sir Mittens) — 16 insertions(+), 41 deletions(-) 2026-09-15 b070111b Fix hover-lift never showing and jittery press feedback (Sir Mittens) — 13 insertions(+), 4 deletions(-) 2026-09-15 0a8ec8b8 Fix collapsible section jitter with a measured-height animation (Sir Mittens) — 45 insertions(+), 11 deletions(-) 2026-09-15 c194d9dc Add smooth section expand/collapse, staggered card entrance, hover lift, focus outlines (Sir Mittens) — 27 insertions(+), 7 deletions(-) 2026-09-15 1fd171b2 Simplify Document and Embed icons to plain silhouettes like the ticket one (Sir Mittens) — 4 insertions(+), 3 deletions(-) 2026-09-15 c6e21959 Bump icon size/stroke and simplify shapes after first look was too muddy (Sir Mittens) — 7 insertions(+), 7 deletions(-) 2026-09-15 1d3b3db8 Replace Tickets page emoji with gold SVG line icons (Sir Mittens) — 47 insertions(+), 7 deletions(-) 2026-09-15 bd4d5194 Add empty states, skeleton loading, section counts, and card entrance animation (Sir Mittens) — 60 insertions(+), 5 deletions(-) 2026-09-15 79da81ca Modernize collapsible section headers, fix selected-server contrast, use Discord's default install link (Sir Mittens) — 40 insertions(+), 18 deletions(-) 2026-09-15 5aed9e1a Migrate the Tickets page (and Applications' shared panel list) to Card (Sir Mittens) — 84 insertions(+), 66 deletions(-) 2026-09-15 bb32b98b Add a shared Card component for the Automations-style card look (Sir Mittens) — 43 insertions(+), 9 deletions(-) 2026-09-15 561afd8f Add embedded Quick Setup banners to Anti-Raid and Verification tabs (Sir Mittens) — 41 insertions(+), 3 deletions(-) 2026-09-15 8d7ad9ca Modernize the 3 Overview quick-setup templates with newer safe features (Sir Mittens) — 39 insertions(+) 2026-09-14 56ff935f Carry the rule-card visual language into GuildPicker (Sir Mittens) — 32 insertions(+), 28 deletions(-) 2026-09-14 5ac3b0ea Restyle server cards to match the Automations rule-card look (Sir Mittens) — 45 insertions(+), 60 deletions(-) 2026-09-14 d54cec9a Retry Discord API calls on 429 instead of failing outright (Sir Mittens) — 14 insertions(+), 1 deletion(-) 2026-09-14 6dfa443c Turn the Admin page's server list into cards instead of a scrolling table (Sir Mittens) — 56 insertions(+), 57 deletions(-) 2026-09-14 b4a2deb6 Add a root-admin-only System Webhooks page (Sir Mittens) — 81 insertions(+) 2026-09-14 1674f963 Replace admin grants' synthetic premium_codes rows with a real audit table (Sir Mittens) — 78 insertions(+), 53 deletions(-) 2026-09-14 5fd6171d Fetch commit pages in parallel instead of sequentially (Sir Mittens) — 34 insertions(+), 23 deletions(-) 2026-09-14 5ea14f69 Fix crash from old-format cache entries surviving the stale-while-revalidate change (Sir Mittens) — 9 insertions(+), 1 deletion(-) 2026-09-14 6b53b7b3 Serve /trust's commit history stale-while-revalidate instead of blocking (Sir Mittens) — 29 insertions(+), 8 deletions(-) 2026-09-14 dda1e769 Document automation placeholders on the DM actions too (Sir Mittens) — 13 insertions(+), 3 deletions(-) 2026-09-14 54451430 Fix trust page repo paths after the group move, and stale lockdown/permission info (Sir Mittens) — 7 insertions(+), 6 deletions(-) 2026-09-14 2b575246 Exclude synthetic admin-grant/PayPal codes from the Manage Codes list (Sir Mittens) — 10 insertions(+), 1 deletion(-) 2026-09-11 d6cafbed Add missing pending states, stable keys, and load-error handling (Sir Mittens) — 621 insertions(+), 295 deletions(-) 2026-09-11 737328ab Close FloatingPanel popovers on outside click/Escape, clamp vertically (Sir Mittens) — 33 insertions(+), 5 deletions(-) 2026-09-11 970903c4 Make panel-permissions save atomic and validate resource/role ids (Sir Mittens) — 28 insertions(+), 8 deletions(-) 2026-09-11 93e8a3d9 Fix RuleCard's Enable/Disable/Delete buttons getting stuck permanently disabled (Sir Mittens) — 19 insertions(+), 8 deletions(-) 2026-09-11 fc91c028 Fix free-tier limit and custom-command limit bypasses on rule edit (Sir Mittens) — 34 insertions(+), 3 deletions(-) 2026-09-11 448f2ad6 Close free-tier limit race and custom-command trigger-collision gap (Sir Mittens) — 59 insertions(+), 30 deletions(-) 2026-09-11 1495ae2c Fix Auto-Role/Sticky-Roles/Custom-Commands permission checks not matching real data access (Sir Mittens) — 50 insertions(+), 11 deletions(-) 2026-09-11 ac11f49e Add a click-to-try examples helper for Custom Commands' {if} syntax (Sir Mittens) — 69 insertions(+), 3 deletions(-) 2026-09-11 b7428ba9 Document the new {if}/{else} template syntax in action/command help text (Sir Mittens) — 5 insertions(+), 4 deletions(-) 2026-09-11 4b40991e Add a flagship Automations banner to the landing page, small copy edits (Sir Mittens) — 100 insertions(+), 2 deletions(-) 2026-09-11 5082b740 Shrink the inline Powered-by-Automations badge in the docs copy (Sir Mittens) — 9 insertions(+), 5 deletions(-) 2026-09-11 d1ddfc6d Surface role/channel/type fetch failures in the rule builder (Sir Mittens) — 38 insertions(+), 12 deletions(-) 2026-09-11 430e9b16 Group triggers by category, fix Automations UX/design audit findings (Sir Mittens) — 178 insertions(+), 45 deletions(-) 2026-09-11 681ffdfc v3: Tickets/Applications conditions + recipe search (Sir Mittens) — 118 insertions(+), 9 deletions(-) 2026-09-11 c9627f03 Redesign "Your Rules" as proper cards instead of flat list rows (Sir Mittens) — 27 insertions(+), 7 deletions(-) 2026-09-11 09da6f33 Give Automations flagship visual treatment: promoted nav spot + hero redesign (Sir Mittens) — 145 insertions(+), 69 deletions(-) 2026-09-11 1a15cb1d Fix stale "Built-in toggle" docs text, add the Tickets/Apps boundary note (Sir Mittens) — 10 insertions(+), 3 deletions(-) 2026-09-11 d6043966 Add a prominent "Powered by Automations" badge to the three quick-edit pages (Sir Mittens) — 26 insertions(+) 2026-09-11 b9830e93 Give the "Open in Automations" button a distinct, consistent look (Sir Mittens) — 31 insertions(+), 12 deletions(-) 2026-09-11 654f643e Add the missing "Open in Automations" button for non-customized commands (Sir Mittens) — 6 insertions(+), 1 deletion(-) 2026-09-11 6b31773e Retire the dedicated Sticky Roles + Custom Commands backends (Sir Mittens) — 318 insertions(+), 309 deletions(-) 2026-09-11 c8ad455c Add a real "Open in Automations" button, deep-linking to the exact rule (Sir Mittens) — 67 insertions(+), 14 deletions(-) 2026-09-11 5b48ad4d Add the missing "open in full builder" hint to Auto-Role's quick form (Sir Mittens) — 17 insertions(+), 9 deletions(-) 2026-09-11 5e1ee077 Retire the dedicated Auto-Role backend — quick-edit form rides Automations directly (Sir Mittens) — 118 insertions(+), 75 deletions(-) 2026-09-11 90fc72b6 Require an explicit channel for send_message/send_embed on channel-less triggers (Sir Mittens) — 37 insertions(+), 16 deletions(-) 2026-09-11 60dd39df Fix: recipe/from-scratch rule creation hit PATCH /automations/undefined (Sir Mittens) — 6 insertions(+), 3 deletions(-) 2026-09-11 0807b18d Make recipes free-and-editable, converting to a full rule only on shape change (Sir Mittens) — 155 insertions(+), 14 deletions(-) 2026-09-11 0931a6e6 Add Automations engine v2 (dashboard) — operators, OR-groups, real embeds (Sir Mittens) — 417 insertions(+), 101 deletions(-) 2026-09-10 358dcc15 Add Automations engine v1 — dashboard builder UI + API (Sir Mittens) — 958 insertions(+), 7 deletions(-) 2026-09-10 e02c6f39 Add self-maintaining Security History section to /trust (Sir Mittens) — 36 insertions(+), 2 deletions(-) 2026-09-10 124b004c Add OAuth permissions table to /trust; hardcode the invite link's bitfield (Sir Mittens) — 24 insertions(+), 2 deletions(-) 2026-09-10 0a0a5596 Trust page: explicit moderation/ban/auto-suspension detail + expiry update (Sir Mittens) — 13 insertions(+), 4 deletions(-) 2026-09-10 a918058a Add Trust & Transparency page: Trust Network, gateway intents, panel (Sir Mittens) — 212 insertions(+), 8 deletions(-) 2026-09-10 68412e83 Add per-delivery embed viewer + squirrel-proof onboarding to Webhooks page (Sir Mittens) — 265 insertions(+), 18 deletions(-) 2026-09-10 aed51276 Make Privacy Policy exhaustive; add robots.txt/sitemap for public legal pages (Sir Mittens) — 51 insertions(+), 24 deletions(-) 2026-09-10 11b5c100 Major webhook overhaul: delivery log, HMAC, routing, test preview, outbound (Sir Mittens) — 937 insertions(+), 44 deletions(-) 2026-09-10 96c7817c Move deploy log events into a new "Git" section, add web panel deploys (Sir Mittens) — 7 insertions(+), 1 deletion(-) 2026-09-10 e4ad49c1 Fix silent duplicate log channel rows for generic (non-per-type) events (Sir Mittens) — 16 insertions(+), 6 deletions(-) 2026-09-10 f2321a23 Move channel naming + delete delay from guild-wide settings to per type (Sir Mittens) — 82 insertions(+), 136 deletions(-) 2026-09-10 38b6cb90 Add emoji field + channel naming pattern for application types (Sir Mittens) — 70 insertions(+), 18 deletions(-) 2026-09-10 8170cf4d Add channel name pattern setting, split it out from Transcript Format (Sir Mittens) — 43 insertions(+), 7 deletions(-) 2026-09-10 1782b07f Auto-fill title/description/types when adopting an existing panel (Sir Mittens) — 131 insertions(+), 4 deletions(-) 2026-09-10 eef8035a Fix stale ticket/application type edit form, add panel refresh/adopt (Sir Mittens) — 502 insertions(+), 172 deletions(-) 2026-09-09 291ad1c6 Add free "use server's Discord banner" mode alongside premium custom link (Sir Mittens) — 39 insertions(+), 15 deletions(-) 2026-09-09 d621f108 Add premium background-image field for the generated welcome banner (Sir Mittens) — 31 insertions(+), 1 deletion(-) 2026-09-09 d64c78ab Stop blocking the accept-role grant when accepting an application (Sir Mittens) — 6 insertions(+), 5 deletions(-) 2026-09-09 d2db29be Add button-only mode to Rules Gate for servers with pre-existing rules posts (Sir Mittens) — 40 insertions(+), 19 deletions(-) 2026-09-09 5c524355 Fix real permission bug: a dynamic grant is now authoritative over revocation (Sir Mittens) — 46 insertions(+), 18 deletions(-) 2026-09-09 24fc93d8 Lockdown page: change a person's role in place, no delete-then-re-add (Sir Mittens) — 62 insertions(+), 10 deletions(-) 2026-09-09 35be85e4 Lockdown page: show and revoke static env-var owners too (Sir Mittens) — 103 insertions(+), 27 deletions(-) 2026-09-09 915bfb32 Add root-admin lockdown page: dynamic owner/admin list + emergency pause (Sir Mittens) — 346 insertions(+), 43 deletions(-) 2026-09-08 0f00f13c Use opaque webhook UUID instead of sequential id in displayed URL (Sir Mittens) — 7 insertions(+), 5 deletions(-) 2026-09-08 bcd77cde Persist selected server across page navigation (Sir Mittens) — 45 insertions(+), 16 deletions(-) 2026-09-08 3618afa0 Fix legal-doc feedback and harden config template codes (Sir Mittens) — 19 insertions(+), 10 deletions(-) 2026-09-08 9aa18503 Remove ToS governing-law clause; correct Privacy Policy on backup retention (Sir Mittens) — 6 insertions(+), 8 deletions(-) 2026-09-08 0a07be33 Give the landing page its own full-width dark identity (Sir Mittens) — 34 insertions(+), 34 deletions(-) 2026-09-08 d64cc04f Make the landing page feature showcase interactive (Sir Mittens) — 192 insertions(+), 17 deletions(-) 2026-09-08 4d37339c Add feature showcase grid to the logged-out landing page (Sir Mittens) — 89 insertions(+), 88 deletions(-) 2026-09-08 53094275 Add Terms/Privacy links to sidebar and landing page; refresh stale landing copy (Sir Mittens) — 65 insertions(+), 13 deletions(-) 2026-09-08 508da6e2 Restore Terms of Service and Privacy Policy as public dashboard pages (Sir Mittens) — 249 insertions(+) 2026-09-08 99582e94 Add Scam Trap decoy-channel config tab to Server Setup (Sir Mittens) — 85 insertions(+) 2026-09-08 85d00fa4 Add cooldown/channel/role restrictions and an action to the Custom Commands form (Sir Mittens) — 118 insertions(+), 8 deletions(-) 2026-09-08 8de2ac26 Add server referral program: dashboard submission UI + activity feed (Sir Mittens) — 239 insertions(+), 11 deletions(-) 2026-09-08 05960635 Rich embed DMs for grant/revoke, separate internal vs. owner-facing reasons (Sir Mittens) — 90 insertions(+), 27 deletions(-) 2026-09-08 9fbf2ab7 Add Grant Premium to the Admin page (Sir Mittens) — 182 insertions(+), 2 deletions(-) 2026-09-08 d281f715 Revert destination-owner requirement on premium transfer per feedback (Sir Mittens) — 5 insertions(+), 8 deletions(-) 2026-09-08 85dd7a6c Require real owner on both ends of a premium transfer, not just the source (Sir Mittens) — 9 insertions(+), 8 deletions(-) 2026-09-08 5e803ef6 Add premium transfer between servers (Sir Mittens) — 113 insertions(+), 2 deletions(-) 2026-09-02 c75ad271 Actually fix the background leak: legacy transcripts were the real culprit (Sir Mittens) — 8 insertions(+), 4 deletions(-) 2026-09-02 8585cd85 Fix: expanding a ticket transcript recolored the entire dashboard (Sir Mittens) — 28 insertions(+), 4 deletions(-) 2026-09-02 428cb491 Persist current page across refresh, add User Bans to Trust Network Admin, update Premium comparison (Sir Mittens) — 60 insertions(+), 34 deletions(-) 2026-09-02 dbc66256 Add unified Server Logs page (tickets + applications), public transcript viewer (Sir Mittens) — 404 insertions(+), 115 deletions(-) 2026-09-02 be09bfc0 Add guild-ban action to Trust Network Admin page (Sir Mittens) — 125 insertions(+) 2026-09-02 9295dbb0 Trust Network admin: resolve usernames/guild names, collapsible report cards (Sir Mittens) — 73 insertions(+), 33 deletions(-) 2026-09-02 b1c791f8 Trust Network admin page + narrower Trust Network Admin permission tier (Sir Mittens) — 297 insertions(+), 79 deletions(-) 2026-09-02 6d69ce83 Add FAQ entries, persistent Invite/Support sidebar links, Giveaways page (Sir Mittens) — 393 insertions(+) 2026-09-02 a5003785 Restructure Panel Permissions layout: always-visible compact help, grouped resource cards (Sir Mittens) — 60 insertions(+), 48 deletions(-) 2026-09-02 505049bf Let Administrators use Panel Permissions too, with an owner-only bypass toggle (Sir Mittens) — 142 insertions(+), 64 deletions(-) 2026-09-02 fbeddfaa Replace permissions dropdown with an always-visible tab-bar-style toggle list (Sir Mittens) — 45 insertions(+), 84 deletions(-) 2026-09-02 0bff7d67 Make Panel Permissions dropdown legible, add heavy onboarding (Sir Mittens) — 62 insertions(+), 21 deletions(-) 2026-09-02 8329243e Redesign Panel Permissions as role-centric with a dropdown, restore standalone page (Sir Mittens) — 150 insertions(+), 49 deletions(-) 2026-09-02 3119de91 Move Panel Permissions from its own page into Overview (Sir Mittens) — 2 insertions(+), 34 deletions(-) 2026-09-02 cb1b0de0 Move Panel Permissions from a Server Setup tab button to its own page (Sir Mittens) — 40 insertions(+), 27 deletions(-) 2026-09-02 14fe02bc Add per-role panel permissions: restrict pages/tabs, grant extra viewers (Sir Mittens) — 498 insertions(+), 6 deletions(-) 2026-09-02 2ccfe348 Redesign Guide commands list: remove gold-edge, add search + card grid (Sir Mittens) — 42 insertions(+), 7 deletions(-) 2026-09-02 4fc6aeaf Fix Guide page crash + make Commands section and per-command entries collapsible (Sir Mittens) — 78 insertions(+), 35 deletions(-) 2026-09-02 256012f0 Add owner-only command list to Admin page, exclude it from the public Guide (Sir Mittens) — 137 insertions(+), 37 deletions(-) 2026-09-02 269f2f0b Onboarding pass: explain what Branding and Config Templates actually do (Sir Mittens) — 7 insertions(+), 1 deletion(-) 2026-09-02 48306f8c Add Guide page: live auto-generated command list + FAQ (Sir Mittens) — 162 insertions(+) 2026-09-02 e4702bc1 Add Social Media Alerts to Server Setup (was dropped, never migrated) (Sir Mittens) — 202 insertions(+) 2026-09-02 e113406a Disable Ko-fi donate buttons alongside PayPal until account issues are sorted (Sir Mittens) — 20 insertions(+), 6 deletions(-) 2026-09-02 54b7e785 Disable PayPal buy buttons until account verification/card issues are sorted (Sir Mittens) — 18 insertions(+), 2 deletions(-) 2026-09-01 64088c98 Fix Overview layout: push donate button to the right edge, let Quick Setup cards fill the row instead of leaving an empty column (Sir Mittens) — 2 insertions(+), 2 deletions(-) 2026-09-01 0f4e650f Fix premium trend sparkline day-boundary bug found in code audit (Sir Mittens) — 19 insertions(+), 11 deletions(-) 2026-09-01 73300695 Document the random-variant response syntax on the Custom Commands form (Sir Mittens) — 4 insertions(+) 2026-09-01 1acd93dc Add ticket type ping-on-open toggle and role picker to the dashboard's ticket type form (Sir Mittens) — 25 insertions(+), 2 deletions(-) 2026-09-01 343b1afa Fix ticket panel edit dropping the channel field, allowing repost to a new channel from Edit (Sir Mittens) — 27 insertions(+), 9 deletions(-) 2026-09-01 e403bd0c Surface PayPal's specific error detail (issue code + description) instead of just its generic top-level message (Sir Mittens) — 3 insertions(+), 1 deletion(-) 2026-09-01 3e96606c Fix PayPal capture error handling + rework Premium page selection (Sir Mittens) — 59 insertions(+), 32 deletions(-) 2026-09-01 448c969a Add PayPal checkout for premium purchases (sandbox) (Sir Mittens) — 279 insertions(+), 10 deletions(-) 2026-09-01 5cb2de87 Fix critical regression: restore AutomodSection (deleted by mistake while (Sir Mittens) — 101 insertions(+), 26 deletions(-) 2026-09-01 9aebac16 Move donate card to very top of Overview; drive Quick Setup off the shared server picker instead of its own dropdown (Sir Mittens) — 22 insertions(+), 35 deletions(-) 2026-09-01 24c46ded Add Roles page (Auto-Role, Reaction Roles, Verification, Rules Gate, (Sir Mittens) — 765 insertions(+), 75 deletions(-) 2026-09-01 eb3ed566 Add Ko-fi donate link (sidebar + heartfelt Overview card) (Sir Mittens) — 36 insertions(+), 4 deletions(-) 2026-09-01 e8fca80b Fix managed-role name resolution, regroup sidebar, modernize Auto-Mod, add Overview feature toggles (Sir Mittens) — 199 insertions(+), 56 deletions(-) 2026-09-01 4b0d4e99 Add Server Status and Guild Events config tabs; fold Nickname Rotation into Branding (Sir Mittens) — 580 insertions(+), 138 deletions(-) 2026-09-01 e692ba17 Add Sticky Roles, Quarantine, Sticky Messages, Nickname Rotation, and Branding tabs to Server Setup (Sir Mittens) — 518 insertions(+), 1 deletion(-) 2026-09-01 27a9e44e Split the sidebar's Account dump into Billing/Community/Moderation/Automation/Analytics groups (Sir Mittens) — 35 insertions(+), 15 deletions(-) 2026-09-01 d2b8585f Add Anti-Raid, Account Risk, Birthdays, and Stat Counters tabs to Server Setup (Sir Mittens) — 470 insertions(+), 1 deletion(-) 2026-09-01 5bff305a Add Server Setup page (Leveling, Starboard, JTC, Invites) - first slice of /inkwell setup (Sir Mittens) — 575 insertions(+) 2026-09-01 9a04f686 Center main content and harden full-viewport sizing for large/ultrawide screens (Sir Mittens) — 6 insertions(+), 1 deletion(-) 2026-09-01 7829171d Retrofit Ticket/Application panel editors onto the shared preview + drag-to-reorder buttons (Sir Mittens) — 32 insertions(+), 4 deletions(-) 2026-09-01 08232721 Add Webhooks page - migrated from /inkwell webhooks (Sir Mittens) — 399 insertions(+) 2026-09-01 9412830d Add Welcome page - migrated from /inkwell welcome (Sir Mittens) — 216 insertions(+) 2026-09-01 12306b21 Add the web side of the embed edit Discord handoff (Sir Mittens) — 178 insertions(+) 2026-09-01 8fcacb8f Auto-Mod: replace its own bespoke server-list markup with the shared GuildPicker (Sir Mittens) — 7 insertions(+), 48 deletions(-) 2026-09-01 27073467 Fix .gold-edge gradient being silently overridden by .panel's later CSS rule (Sir Mittens) — 4 insertions(+) 2026-09-01 d33d3730 Fix .gold-edge: the diagonal amber glow was missing, only the border/shadow applied (Sir Mittens) — 1 insertion(+), 1 deletion(-) 2026-09-01 eb2d8d60 Gold edge on every server list + plan pills everywhere + sidebar/page animations (Sir Mittens) — 49 insertions(+), 45 deletions(-) 2026-09-01 e340b433 Move regex countdown to per-command, make the limit failure impossible to miss (Sir Mittens) — 38 insertions(+), 17 deletions(-) 2026-09-01 8d3e1b44 Cap regex custom commands separately (3 free / 6 premium) with real onboarding (Sir Mittens) — 69 insertions(+), 7 deletions(-) 2026-09-01 fd26f7c1 Add Embeds page: create, send, and save/load templates (Sir Mittens) — 212 insertions(+) 2026-09-01 4bacbd4f Fix Custom Commands page stuck loading forever - trigger is a MySQL reserved word (Sir Mittens) — 7 insertions(+), 5 deletions(-) 2026-09-01 c15233dd Add Custom Commands page - migrated from /inkwell setup (Sir Mittens) — 234 insertions(+) 2026-09-01 e12d8a88 Add shared EmbedEditor + Discord-dark preview + drag-to-reorder buttons (Sir Mittens) — 178 insertions(+) 2026-09-01 636d05a7 Fix panel button/description order not matching the submitted type order (Sir Mittens) — 10 insertions(+), 3 deletions(-) 2026-09-01 ab02feb5 Update premium comparison table: backup cadence (3-day manual) and fix stale free-tier claim (Sir Mittens) — 1 insertion(+), 1 deletion(-) 2026-09-01 8f9345b4 Add member name resolution, per-user drill-down modals, and a real sparkline (Sir Mittens) — 389 insertions(+), 119 deletions(-) 2026-09-01 88c8c797 Rebuild Log Channels as its own page; fix Insights tab-bar styling; show guild name in admin activity (Sir Mittens) — 237 insertions(+), 84 deletions(-) 2026-09-01 11e0bb1c Move Server Backup create/restore to /inkwell tools, fix transfer/template code retry bug (Sir Mittens) — 32 insertions(+), 63 deletions(-) 2026-09-01 2d865db4 Fix crash: TrustNetworkTab treated the wrapped {locked, reports} response as the array itself (Sir Mittens) — 3 insertions(+), 1 deletion(-) 2026-09-01 2496101d Scope Trust Network dashboard tab to settings + own-report management, add owner override (Sir Mittens) — 185 insertions(+), 169 deletions(-) 2026-09-01 af355457 Add Insights tab: log channels, staff stats, trust network, backups, templates, command analytics (Sir Mittens) — 1330 insertions(+), 1 deletion(-) 2026-09-01 f7dc1d0f Enforce ticket question limits (5 free / 25 premium) and bump 3-month pricing to $12 (Sir Mittens) — 27 insertions(+), 5 deletions(-) 2026-09-01 09548841 Enforce free-tier limits, add pricing, and finish the remaining tweaks batch (Sir Mittens) — 587 insertions(+), 33 deletions(-) 2026-09-01 7906bf8d Capitalize and strip digits from the Welcome back display name (sidebar avatar/name still shows the raw username) (Sir Mittens) — 7 insertions(+), 1 deletion(-) 2026-08-31 d475a12f Add Ticket History/Post Panel and Application Post Panel/Review — full parity with the remaining Discord staff-management features (Sir Mittens) — 1173 insertions(+) 2026-08-31 cabfa5c9 Add Tickets and Applications config pages, reusing the roles/channels endpoints Auto-Mod already established (Sir Mittens) — 1085 insertions(+), 16 deletions(-) 2026-08-31 ec05761a Fix crash-to-blank-page bug: guard every fetched array against non-array error responses, add a top-level ErrorBoundary (Sir Mittens) — 53 insertions(+), 9 deletions(-) 2026-08-31 6500138b Split Premium into a page identical for everyone, move admin power to a new Owner-only Admin page (Sir Mittens) — 291 insertions(+), 101 deletions(-) 2026-08-30 b8bc5bdf Hide premium code, label, usage count, and creator from non-owner activity feed (Sir Mittens) — 12 insertions(+), 8 deletions(-) 2026-08-30 a884819f Add Exempt Roles/Channels to the Auto-Mod page — completes the move off Discord (Sir Mittens) — 98 insertions(+) 2026-08-30 51c39efe Redesign Premium page to match the mockup: stat row, global admin server table, activity feed, revoke modal (Sir Mittens) — 604 insertions(+), 31 deletions(-) 2026-08-30 08565b36 Use bot icon as favicon, filter out servers Inkwell isn't actually in, collapsible Auto-Mod sections with Other Filters first (Sir Mittens) — 63 insertions(+), 44 deletions(-) 2026-08-30 5f3a6665 Full Auto-Mod page: word/regex/spam/caps/mention/invite filters, escalation tiers, and regex explanation (Sir Mittens) — 364 insertions(+), 66 deletions(-) 2026-08-30 a5014f08 Add Auto-Mod banned-words page, feature comparison table on Premium, consistent server-table layout everywhere (Sir Mittens) — 286 insertions(+), 15 deletions(-) 2026-08-30 88e1d9a3 Initial commit: Inkwell web dashboard (Cloudflare Pages + Functions) (Sir Mittens) — 2932 insertions(+)