← back to Dw Boardroom Governance
Fix meeting phase auto-advance to use per-phase durations instead of a fixed 120s
a6dac820ae5b57ddb596eed0f129c500e40be13c · 2026-05-18 20:16:44 -0700 · Steve Abrams
Files touched
M src/engine/meetingEngine.ts
Diff
commit a6dac820ae5b57ddb596eed0f129c500e40be13c
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Mon May 18 20:16:44 2026 -0700
Fix meeting phase auto-advance to use per-phase durations instead of a fixed 120s
---
src/engine/meetingEngine.ts | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/src/engine/meetingEngine.ts b/src/engine/meetingEngine.ts
index 8ba1d9b..a682e79 100644
--- a/src/engine/meetingEngine.ts
+++ b/src/engine/meetingEngine.ts
@@ -71,7 +71,7 @@ export async function startMeeting(meetingType: string, agendaItems?: AgendaItem
console.log(`[Meeting] Started ${meetingType} meeting: ${id}`);
// Start auto-advance timer
- schedulePhaseAdvance(id);
+ schedulePhaseAdvance(id, 'caucus');
return (await queryOne<Meeting>('SELECT * FROM gov_meetings WHERE id = $1', [id]))!;
}
@@ -100,7 +100,7 @@ export async function advancePhase(meetingId: string): Promise<MeetingPhase | nu
console.log(`[Meeting] ${meetingId} → ${nextPhase}`);
// Schedule next advance
- schedulePhaseAdvance(meetingId);
+ schedulePhaseAdvance(meetingId, nextPhase);
return nextPhase;
}
@@ -163,10 +163,11 @@ export async function addMessage(
broadcast('meeting_message', { meetingId, agentId, agentName, message, messageType });
}
-function schedulePhaseAdvance(meetingId: string): void {
+function schedulePhaseAdvance(meetingId: string, phase: string): void {
if (phaseTimer) clearTimeout(phaseTimer);
- // Auto-advance after phase duration
+ // Auto-advance after this phase's configured duration
+ const duration = PHASE_DURATION_MS[phase] || 120_000;
phaseTimer = setTimeout(async () => {
try {
const meeting = await queryOne<Meeting>('SELECT * FROM gov_meetings WHERE id = $1', [meetingId]);
@@ -176,7 +177,7 @@ function schedulePhaseAdvance(meetingId: string): void {
} catch (err: any) {
console.error('[Meeting] Auto-advance error:', err.message);
}
- }, PHASE_DURATION_MS['current_business'] || 120_000);
+ }, duration);
}
function formatPhase(phase: string): string {
← 1e62bab initial scaffold (gitify-all 2026-05-06)
·
back to Dw Boardroom Governance
·
Harden basic-auth middleware: timing-safe compare, malformed 79f893e →