feat: split text and voice channel selection

Separate text moderation and voice recording guild/channel state so each workflow can persist and operate independently.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
MythEclipse
2026-05-15 15:58:38 +07:00
co-authored by Claude Opus 4.7
parent 6859eb3f50
commit ed438e6fc0
12 changed files with 250 additions and 40 deletions
+11 -5
View File
@@ -54,20 +54,26 @@ async function syncChannelMessages(
}
export async function syncBacklogMessages(client: Client): Promise<void> {
if (!config.MONITOR_GUILD_ID) {
logger.warn("MONITOR_GUILD_ID not configured, skipping backlog sync");
const textGuildId = config.EFFECTIVE_TEXT_GUILD_ID;
if (!textGuildId) {
logger.warn("TEXT_GUILD_ID not configured, skipping backlog sync");
return;
}
const guild = client.guilds.cache.get(config.MONITOR_GUILD_ID);
const guild = client.guilds.cache.get(textGuildId);
if (!guild) {
logger.warn(
{ guildId: config.MONITOR_GUILD_ID },
"Monitor guild not found, skipping backlog sync",
{ guildId: textGuildId },
"Text guild not found, skipping backlog sync",
);
return;
}
if (config.TEXT_CHANNEL_ID) {
await syncSelectedChannelBacklog(client, guild.id, config.TEXT_CHANNEL_ID);
return;
}
logger.info(
{ guildId: guild.id },
"Backlog sync ready (will sync on-demand per selected channel)",