fix: resolve architecture disconnects and codebase weaknesses

- Add TEXT_CHANNEL_ID and TEXT_GUILD_ID to config schema (fix silent channel monitoring)
- Remove dead files: message-capture/broadcaster.ts, voice-recording/index.ts
- Fix WebSocket voice_command payload to forward from frontend
- Implement moderation:action handler in commandHandler
- Fix useMascotChat to use canonical request() wrapper
- Fix useAudioPlayback userId hash collision (use string not parseInt)
- Add catch blocks to useMediaControl.skip/stop
- Add typed broadcast functions (messageAnalyzed, voicePcmData, voiceActiveUser)
- Apply Biome formatting and lint fixes

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
MythEclipse
2026-06-09 16:36:23 +07:00
co-authored by Claude Opus 4.8
parent 30c9e86edc
commit 3a7b005d95
13 changed files with 171 additions and 109 deletions
@@ -1,9 +1,6 @@
import "dotenv/config";
import type { AppConfig as SharedAppConfig } from "@bete/shared/config";
import {
config as sharedConfig,
loadConfig as sharedLoadConfig,
} from "@bete/shared/config";
import { loadConfig as sharedLoadConfig } from "@bete/shared/config";
// Re-export the unified config with EFFECTIVE_* fields added
export type AppConfig = SharedAppConfig & {
@@ -15,7 +12,7 @@ export function loadConfig(env: NodeJS.ProcessEnv = process.env): AppConfig {
const parsed = sharedLoadConfig(env);
return {
...parsed,
EFFECTIVE_TEXT_GUILD_ID: parsed.MONITOR_GUILD_ID,
EFFECTIVE_TEXT_GUILD_ID: parsed.TEXT_GUILD_ID ?? parsed.MONITOR_GUILD_ID,
EFFECTIVE_VOICE_GUILD_ID: parsed.VOICE_GUILD_ID ?? parsed.GUILD_ID,
};
}