Gladious — Feature Catalog
Living document for the Gladious Discord bot platform. Served at /features on the dashboard (same file — no duplicate copy).
Version: 0.1.0 · Last updated: 2026-07-19 (Discord personal panel + local RPC)
Status legend
| Status | Meaning |
|---|
| Done | Shipped vertical slice in this repo |
| Partial | Core path works; extras still expanding |
| Planned | Schema/API hooks present; deeper UI/automation TBD |
A — Infrastructure
| Feature | Status |
|---|
pnpm + Turborepo monorepo (apps/*, packages/*) | Done |
| PostgreSQL via Docker Compose | Done |
| Prisma schema (core + feature tables) | Done |
| PM2 ecosystem (bot, web, watchdog, worker) | Done |
.env / .env.example / .gitignore (token only in .env) | Done |
Health endpoints: bot :4001/health, web https://gladious.kozehub.point2this.com/api/health (binds 0.0.0.0; public NEXTAUTH_URL) | Done |
/features + /terms markdown routes | Done |
| Interactive animated backgrounds + theme switcher (Nebula / Circuit Grid / Aurora / Data Stream / Void; localStorage + cookie; optional NEXT_PUBLIC_DEFAULT_BG_THEME) | Done |
B — Auth & Permissions
| Feature | Status |
|---|
| Discord OAuth (NextAuth) | Partial — needs DISCORD_CLIENT_ID / DISCORD_CLIENT_SECRET; public origin NEXTAUTH_URL=https://gladious.kozehub.point2this.com |
Owner list (OWNER_DISCORD_IDS ∪ DB owners) hard override | Done |
/admin/owners | Done |
| LuckPerms-style groups, tri-state nodes, bulk copy | Done |
| Role → group mappings table | Done (API/schema; UI mapping editor Partial) |
| Bot permission middleware on slash commands | Done |
C — Logging & Analytics
| Feature | Status |
|---|
| Message create/edit/delete logs | Done |
| Voice join/leave/move/mute logs | Done |
| Profile change logs | Done |
| Invite lifecycle + vanity + risk score dashboard | Done |
| Ghost ping detection | Done |
| Full-text log search UI | Partial |
| Activity heatmaps / word cloud / emoji stats | Partial — data available via log events |
| Immutable audit hash chain | Done (writer in bot) |
D — Commands & Workers
| Feature | Status |
|---|
Shared command registry (@gladious/shared) | Done |
| Slash registration + audit trail | Done |
Custom commands CRUD + {executor} variables | Done |
| Worker queue, kill, dependencies, AMP/PC jobs | Done |
CLI (packages/cli) status/jobs | Done |
| Bot REST API keys + rate limits | Partial — api_keys table present |
Slash commands (inventory — 2026-07-13)
Registry: @gladious/shared COMMAND_REGISTRY (24 top-level). Bot wires all via apps/bot/src/commands/handlers.ts + router.ts. Owners (OWNER_DISCORD_IDS, e.g. 909943727173292052) bypass permission nodes.
| Command | Status | Notes |
|---|
/ping | Working | Latency + WS ping |
/help | Working | Lists registry |
/warn /kick /ban /timeout | Working | Needs bot Discord perms; creates mod cases |
/purge /lockdown | Working | Text channel; purge max 100 |
/cases /restore /shadowban /snipe | Working | Restore needs member archive |
| `/ticket claim | close` | Working |
/reactionroles list/publish/delete | Working | Defer-first; dashboard /admin/reaction-roles |
| `/troll autodelete | stop` | Working |
/panel | Working | Ephemeral embed: home, guilds, amp, logs, ports dashboard links |
/ask | Working | Needs Ollama (OLLAMA_URL); deferred reply + error if down |
| `/myserver status | start | stop |
| `/jobs list | status | kill` |
| `/nation register | info | list |
/lfp | Working | Creates LFP post |
| `/pet adopt | status | feed` |
/rps | Working | Mini-game score logged |
/port * | Working | All subcommands wired; kill owner-only |
Silent-failure fixes (2026-07-13): owner env short-circuit (no DB wait); permission/DB errors always reply; router acknowledges empty handlers; slash re-register before guild sync; audit log failures do not crash replies. Bot health: :4001/health.
E — Watchdog
| Feature | Status |
|---|
| Health polling + terminal status line | Done |
| Heartbeat samples + dashboard graph | Done |
| Webhook / log notification rules | Done |
| Blueprint export table | Done (schema; export UI Partial) |
F — Moderation & Members
| Feature | Status |
|---|
| Warn / kick / ban / timeout / cases / purge / lockdown | Done |
| AutoMod: word, regex, link cooldown, mention limits | Done |
Shadowban, snipe, sticky roles + member archive /restore | Done |
| Tickets open/claim/close + transcripts | Done |
| Troll toolkit (duration + stop) | Done |
| Appeals + AI summary | Partial — appeals table; Ollama hook via /ask |
G — Integrations
| Feature | Status |
|---|
Ollama /ask | Done |
AMP assignment + /myserver + /amp + worker jobs | Done — rich UI at /admin/amp (controls, metrics, ports, versions, guild link, panel deep links); DB integration_configs + .env / AMP_PANEL_URL |
| PC whitelist runner (worker) | Done |
| n8n / Home Assistant | Partial — env + permission nodes reserved |
Spotify owner player (/admin/spotify) | Done — Connect OAuth, encrypted tokens in integration_configs, Now Playing + transport/volume/seek/devices; owners only (requireOwner); Premium needed for control; see docs/SPOTIFY.md |
Discord personal panel (/admin/me) | Done — Owner OAuth guilds/connections + bot VC/presence + optional local Discord RPC (IPC); OAuth alone cannot see VC; see docs/DISCORD_PERSONAL.md |
H — Operations & Embeds
| Feature | Status |
|---|
/panel Discord remote menu | Done (sections: home/guilds/amp/logs/ports) |
| Incident mode (+ bulk AMP stop job) | Done |
| Macros / watchlists / staff notes / short links schema | Done |
| Automations (IFTTT) — /admin/automations, bot+worker triggers, n8n webhook docs | Done |
OG embed route /embed/guild/[id]/stats | Done |
| Port Manager (host diagnostics) | Done (vertical slice) |
Port Manager
Operator tooling for the Gladious Windows host (permission-gated; owners always pass).
| Capability | How |
|---|
| Check what is on a port (PID, name, path) | /port check, /admin/ports, GET /api/ports?port= |
| Search by process / app name | /port find name: |
| Live listening feed | /admin/ports, /port list, worker ports.live, GET /api/ports |
| Diagnose unreachable ports (listen / bind / firewall / refuse vs timeout) | /port diagnose, dashboard Diagnose |
| Batch check | /port batch ports:3773,4001, dashboard Batch |
Watchlist (Prisma PortWatchlist + samples) | `/port watch |
| Kill process on port | /port kill owner-only + ports.kill; admin Kill button |
| Permission nodes | ports.view, ports.diagnose, ports.kill, ports.* (default deny; owners override) |
| Dashboard URL | https://gladious.kozehub.point2this.com/admin/ports |
Suggestions backlog (not yet built)
- Port change history / timelines (who bound which port over days)
- Auto Discord/webhook alerts when a watched port dies or flips bind scope
- Reserve / conflict detection vs AMP game-server port ranges
- CSV / JSON export of listening snapshots
- UDP listener inventory (TCP-first today)
- Compare snapshot diffs in the live worker feed UI
- Suggested free ports in a range for new services
- Soft-lock "claimed" ports in dashboard to reduce accidental collisions
- Correlate ports with PM2 process names / ecosystem apps
- One-click "open firewall allow rule" (elevated) for a watched port
Community
Vertical slice live on dashboard (/admin/reaction-roles) and Discord (/reactionroles, defer-first). Guild-scoped via server switcher.
| Feature | Status |
|---|
| Reaction-role panels (create / edit / delete) | Done |
| Bot posts embed or attaches to existing message ID | Done |
| Emoji → role mappings (multiple) + reaction add/remove | Done |
| Button roles (toggle) when mode is button/both | Done |
Slash /reactionroles list / publish / delete | Done |
Permission node reactionroles.manage | Done |
I - Nations
Vertical slice live on dashboard (/admin/nations) and Discord (/nation, defer-first). Guild-scoped via server switcher.
| Feature | Status |
|---|
| List active / fallen / pending (+ denied) | Done |
| Register + admin approve / deny with reason | Done |
| Members, default ranks, invite / join / leave (+ leader succession) | Done |
Advertise profile (motto, colors, banner/icon, join mode) + /nation advertise embed | Done |
| Leaderboard (members / age / invites) | Done |
| Nation history event log | Done (basic) |
| Territory claim slash (seeded keys only) | Partial |
| Interactive map / wars / alliances economy | Planned (later) |
| Auto Discord roles/channels, dual profile-approval, export/import | Planned |
| Contracts / polls / news / merge | Partial - schema present |
J - Gaming Hub
| Feature | Status |
|---|
| LFP posts | Done |
| Levels / XP on messages | Done |
| Soundboard / temp VC / price alerts | Partial — schema + temp VC lobby create |
K — Fun
| Feature | Status |
|---|
Virtual pets (/pet) | Done |
| Trivia mini-game | Done |
| Nation wars / freeform map | Planned |
L — Remote Access
| Feature | Status |
|---|
| Cloudflare Tunnel / Tailscale / LAN Wi-Fi guide | Done — see docs/REMOTE_ACCESS.md |
Runbook (summary)
cd "L:\Gladious project"
docker compose up -d
pnpm install
pnpm db:generate
pnpm db:push
pnpm --filter @gladious/bot register # optional if bot auto-registers
pnpm dev # or: pnpm pm2:start
Bot token: only in .env as DISCORD_BOT_TOKEN. Never commit .env.
Web dashboard: https://gladious.kozehub.point2this.com (WEB_PORT / WEB_HOST=0.0.0.0 bind; OAuth / public URL via NEXTAUTH_URL).