feat(discord-gateway): implement voice & push improvements
- Voice disconnect broadcast on stopRecording - Multi-guild voice support (VoiceController Map<guildId>) - Session finalization + auto-enqueue muxer job - Recordings API: duration field, channelId/userId filters - Transmitter Redis connection reuse (shared conn) - FFmpeg stderr memory cap (4KB limit) - 10 new Redis event channels + Redis bridge subscriptions - New DB tables: message_reactions, message_edits - Webhook notification module - Gateway metrics / Prometheus endpoint - Multi-guild message capture (MONITOR_GUILD_IDS array) - Thread tracking, presence, channel topic, guild member events - Edit history snapshot on message update - Muxer audio post-processing worker Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -210,24 +210,24 @@ export class DashboardRepository {
|
||||
[...params, limit + 1],
|
||||
);
|
||||
|
||||
const data = ((rows as Record<string, unknown>[]) || []).slice(0, limit).map((r) => ({
|
||||
channel_id: String(r.channel_id),
|
||||
channel_name: r.channel_name as string | null,
|
||||
guild_id: r.guild_id as string | null,
|
||||
total_messages: Number(r.total_messages),
|
||||
flagged_count: Number(r.flagged_count),
|
||||
last_message_at: r.last_message_at ? Number(r.last_message_at) : null,
|
||||
culture_summary: r.culture_summary as string | null,
|
||||
last_analyzed_at: r.last_analyzed_at
|
||||
? Number(r.last_analyzed_at)
|
||||
: null,
|
||||
}));
|
||||
const data = ((rows as Record<string, unknown>[]) || [])
|
||||
.slice(0, limit)
|
||||
.map((r) => ({
|
||||
channel_id: String(r.channel_id),
|
||||
channel_name: r.channel_name as string | null,
|
||||
guild_id: r.guild_id as string | null,
|
||||
total_messages: Number(r.total_messages),
|
||||
flagged_count: Number(r.flagged_count),
|
||||
last_message_at: r.last_message_at ? Number(r.last_message_at) : null,
|
||||
culture_summary: r.culture_summary as string | null,
|
||||
last_analyzed_at: r.last_analyzed_at
|
||||
? Number(r.last_analyzed_at)
|
||||
: null,
|
||||
}));
|
||||
|
||||
const lastRow = rows[limit - 1] as Record<string, unknown> | undefined;
|
||||
const nextCursor =
|
||||
rows.length > limit
|
||||
? String(lastRow?.total_messages ?? "")
|
||||
: null;
|
||||
rows.length > limit ? String(lastRow?.total_messages ?? "") : null;
|
||||
|
||||
return { data, nextCursor };
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user