feat(bots): built-in bot runner + steamfree from UI

- BotRunner: server-side goroutine manager for built-in bot types
- steamfree bot embedded in server (polls Steam API, posts free games)
- bot_type + config JSONB columns on bots table
- Create/Update/Delete handlers manage runner lifecycle
- GET /bots/types returns registered bot types
- BotManager: type selector dropdown + config fields on create
- No SSH needed: create a 'Steam Free Games' bot from /bots/manage
This commit is contained in:
2026-07-15 14:14:02 -04:00
parent c839e67c47
commit 4b32655e67
8 changed files with 488 additions and 30 deletions
+5
View File
@@ -569,5 +569,10 @@ CREATE INDEX IF NOT EXISTS idx_feature_request_votes_fr ON feature_request_votes
-- Bot messages: track which bot authored a message
ALTER TABLE messages ADD COLUMN IF NOT EXISTS bot_id UUID REFERENCES bots(id) ON DELETE SET NULL;
CREATE INDEX IF NOT EXISTS idx_messages_bot ON messages(bot_id) WHERE bot_id IS NOT NULL;
-- Built-in bot types: bot_type + config for server-managed bots
ALTER TABLE bots ADD COLUMN IF NOT EXISTS bot_type VARCHAR(32) DEFAULT '';
ALTER TABLE bots ADD COLUMN IF NOT EXISTS config JSONB DEFAULT '{}';
CREATE INDEX IF NOT EXISTS idx_bots_type ON bots(bot_type) WHERE bot_type != '';
`