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

StatusMeaning
DoneShipped vertical slice in this repo
PartialCore path works; extras still expanding
PlannedSchema/API hooks present; deeper UI/automation TBD

A — Infrastructure

FeatureStatus
pnpm + Turborepo monorepo (apps/*, packages/*)Done
PostgreSQL via Docker ComposeDone
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 routesDone
Interactive animated backgrounds + theme switcher (Nebula / Circuit Grid / Aurora / Data Stream / Void; localStorage + cookie; optional NEXT_PUBLIC_DEFAULT_BG_THEME)Done

B — Auth & Permissions

FeatureStatus
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 overrideDone
/admin/ownersDone
LuckPerms-style groups, tri-state nodes, bulk copyDone
Role → group mappings tableDone (API/schema; UI mapping editor Partial)
Bot permission middleware on slash commandsDone

C — Logging & Analytics

FeatureStatus
Message create/edit/delete logsDone
Voice join/leave/move/mute logsDone
Profile change logsDone
Invite lifecycle + vanity + risk score dashboardDone
Ghost ping detectionDone
Full-text log search UIPartial
Activity heatmaps / word cloud / emoji statsPartial — data available via log events
Immutable audit hash chainDone (writer in bot)

D — Commands & Workers

FeatureStatus
Shared command registry (@gladious/shared)Done
Slash registration + audit trailDone
Custom commands CRUD + {executor} variablesDone
Worker queue, kill, dependencies, AMP/PC jobsDone
CLI (packages/cli) status/jobsDone
Bot REST API keys + rate limitsPartialapi_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.

CommandStatusNotes
/pingWorkingLatency + WS ping
/helpWorkingLists registry
/warn /kick /ban /timeoutWorkingNeeds bot Discord perms; creates mod cases
/purge /lockdownWorkingText channel; purge max 100
/cases /restore /shadowban /snipeWorkingRestore needs member archive
`/ticket claimclose`Working
/reactionroles list/publish/deleteWorkingDefer-first; dashboard /admin/reaction-roles
`/troll autodeletestop`Working
/panelWorkingEphemeral embed: home, guilds, amp, logs, ports dashboard links
/askWorkingNeeds Ollama (OLLAMA_URL); deferred reply + error if down
`/myserver statusstartstop
`/jobs liststatuskill`
`/nation registerinfolist
/lfpWorkingCreates LFP post
`/pet adoptstatusfeed`
/rpsWorkingMini-game score logged
/port *WorkingAll 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

FeatureStatus
Health polling + terminal status lineDone
Heartbeat samples + dashboard graphDone
Webhook / log notification rulesDone
Blueprint export tableDone (schema; export UI Partial)

F — Moderation & Members

FeatureStatus
Warn / kick / ban / timeout / cases / purge / lockdownDone
AutoMod: word, regex, link cooldown, mention limitsDone
Shadowban, snipe, sticky roles + member archive /restoreDone
Tickets open/claim/close + transcriptsDone
Troll toolkit (duration + stop)Done
Appeals + AI summaryPartialappeals table; Ollama hook via /ask

G — Integrations

FeatureStatus
Ollama /askDone
AMP assignment + /myserver + /amp + worker jobsDone — 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 AssistantPartial — 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

FeatureStatus
/panel Discord remote menuDone (sections: home/guilds/amp/logs/ports)
Incident mode (+ bulk AMP stop job)Done
Macros / watchlists / staff notes / short links schemaDone
Automations (IFTTT) — /admin/automations, bot+worker triggers, n8n webhook docsDone
OG embed route /embed/guild/[id]/statsDone
Port Manager (host diagnostics)Done (vertical slice)

Port Manager

Operator tooling for the Gladious Windows host (permission-gated; owners always pass).

CapabilityHow
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 nodesports.view, ports.diagnose, ports.kill, ports.* (default deny; owners override)
Dashboard URLhttps://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.

FeatureStatus
Reaction-role panels (create / edit / delete)Done
Bot posts embed or attaches to existing message IDDone
Emoji → role mappings (multiple) + reaction add/removeDone
Button roles (toggle) when mode is button/bothDone
Slash /reactionroles list / publish / deleteDone
Permission node reactionroles.manageDone

I - Nations

Vertical slice live on dashboard (/admin/nations) and Discord (/nation, defer-first). Guild-scoped via server switcher.

FeatureStatus
List active / fallen / pending (+ denied)Done
Register + admin approve / deny with reasonDone
Members, default ranks, invite / join / leave (+ leader succession)Done
Advertise profile (motto, colors, banner/icon, join mode) + /nation advertise embedDone
Leaderboard (members / age / invites)Done
Nation history event logDone (basic)
Territory claim slash (seeded keys only)Partial
Interactive map / wars / alliances economyPlanned (later)
Auto Discord roles/channels, dual profile-approval, export/importPlanned
Contracts / polls / news / mergePartial - schema present

J - Gaming Hub

FeatureStatus
LFP postsDone
Levels / XP on messagesDone
Soundboard / temp VC / price alertsPartial — schema + temp VC lobby create

K — Fun

FeatureStatus
Virtual pets (/pet)Done
Trivia mini-gameDone
Nation wars / freeform mapPlanned

L — Remote Access

FeatureStatus
Cloudflare Tunnel / Tailscale / LAN Wi-Fi guideDone — 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).