- TypeScript 92.6%
- CSS 4.3%
- Python 1.9%
- Shell 1.1%
- HTML 0.1%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
- Keep activity filters stable when Discord resets its member cache - Add a regression test for roster retention |
||
| .agents/skills/guildmaster-policy | ||
| .forgejo/workflows | ||
| deploy | ||
| docs | ||
| src | ||
| .dockerignore | ||
| .env.example | ||
| .gitignore | ||
| .oxfmtrc.json | ||
| .oxlintrc.json | ||
| bun.lock | ||
| components.json | ||
| compose.cloudflare.yaml | ||
| compose.yaml | ||
| Dockerfile | ||
| gamers-hall-channel-permissions-review.md | ||
| GLOSSARY.md | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
| turbo.json | ||
| vite.config.test.ts | ||
| vite.config.ts | ||
| wrangler.jsonc | ||
Guildmaster
Guildmaster manages Discord permissions independently for each server where it is installed. Message logging, archiving, and activity reports are enabled only for Gamers Hall. Set ACTIVITY_ENABLED=false for permissions management without activity collection.
Set up
-
Create a Discord application and bot. Enable Server Members Intent and Message Content Intent in the Developer Portal.
-
Copy
.env.exampleto.envand setDISCORD_BOT_TOKEN.DISCORD_GUILD_IDselects the default dashboard server and existing session storage; it does not restrict which servers the bot manages. -
Invite the bot with the
botandapplications.commandsscopes. Give it View Channels and Read Message History in each channel to scan. Private channels and threads must be visible to the bot. -
Install dependencies and start the bot:
bun install bun run start
Each server gets its own permission policy, member mirror, and reconciliation queue under reports/GUILD_ID/permissions.sqlite. Sign in as the server owner or an Administrator to configure a new server, then select its management role in the policy. The dashboard server selector opens /servers/GUILD_ID/permissions. New servers receive no policy or permission changes automatically.
For Gamers Hall only, the bot also scans history, saves reports under reports/GUILD_ID/, then continues tracking new messages. Permissions are available independently of that scan. The bot API runs at http://localhost:3000/api/status. The dashboard runs separately on the Cloudflare Worker, or at http://127.0.0.1:5173 during local development. Large servers may take hours to scan. Keep the process running.
Documentation
- Operations: scans, reports, stored data, verification, and the member cleanup command.
- Dashboard: dashboard pages, Officer access, permission management, and public mode.
- Deployment: Osiris, Docker Compose, and Cloudflare.
- Development: checks, local dashboard development, and code layout.
- Permission policy: policy model and reviewed Discord permission changes.
- Cloudflare dashboard: host all dashboard pages on the Worker while keeping the bot as the data and Discord API backend.
- Model training: prepare local datasets and train or evaluate adapters.