From 51a2320ddbb2fbe79bacb1c1792412446fda7850 Mon Sep 17 00:00:00 2001
From: ValueOn AG
Date: Sun, 1 Mar 2026 09:31:29 +0100
Subject: [PATCH] fix(teamsbot): add debug screenshots to anonymous join flow
Made-with: Cursor
---
src/bot/orchestrator.ts | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/src/bot/orchestrator.ts b/src/bot/orchestrator.ts
index 176f742..d4dcc53 100644
--- a/src/bot/orchestrator.ts
+++ b/src/bot/orchestrator.ts
@@ -199,19 +199,24 @@ export class BotOrchestrator {
this._setState('navigating');
// STEP 1: Navigate to meeting URL and click "Continue on this browser"
+ await this._takeScreenshot('anon-step1-before-launcher', this._isDebugMode);
await this._joinProcedure!.startMeetingLauncherFlow(this._meetingUrl);
+ await this._takeScreenshot('anon-step1-after-launcher', this._isDebugMode);
// Ensure microphone is ON (required for voice playback)
await this._ensureMicOn();
// STEP 2: Enter bot name and click "Join now"
+ await this._takeScreenshot('anon-step2-before-join', this._isDebugMode);
await this._joinProcedure!.joinMeetingLobbyFlow();
+ await this._takeScreenshot('anon-step2-after-join', this._isDebugMode);
// Check if we're in lobby
const inLobby = await this._joinProcedure!.isInMeetingLobby({ waitForSeconds: 10 });
if (inLobby) {
this._setState('in_lobby');
this._logger.info('Bot is in lobby, waiting to be admitted...');
+ await this._takeScreenshot('anon-step3-in-lobby', this._isDebugMode);
}
// Wait to be admitted to the meeting
@@ -219,6 +224,7 @@ export class BotOrchestrator {
this._setState('in_meeting');
this._logger.info(`Bot joined the meeting as "${this._botName}"`);
+ await this._takeScreenshot('anon-step4-in-meeting', this._isDebugMode);
// Start keepalive to prevent idle disconnect
this._startKeepAlive();
@@ -234,6 +240,7 @@ export class BotOrchestrator {
// Enable chat monitoring
await this._enableChat();
+ await this._takeScreenshot('anon-step5-ready', this._isDebugMode);
// Send greeting in meeting chat
await this._sendJoinGreeting();