# Service Configuration PORT=4100 NODE_ENV=development # Gateway WebSocket Connection GATEWAY_WS_URL=wss://api-int.poweron.swiss/api/teamsbot/ws # Bot Configuration BOT_NAME=PowerOn AI BOT_HEADLESS=true # Static avatar tile (replaces Teams' green/spinning "no video" placeholder). # Colors only used when BOT_USE_CANVAS_VIDEO=true. BOT_USE_CANVAS_VIDEO=true BOT_AVATAR_BG_COLOR=#a8d4f0 BOT_AVATAR_TEXT_COLOR=#1a3552 # DEBUG history (12 May 2026): # - BOT_DISABLE_MEDIA_WRAPPERS=true: same crash, wrappers innocent # - BOT_ANON_USE_AUTH_BROWSER_SETUP=true: same crash, args/stealth innocent # Manual anon test in real Chrome incognito: NO lobby, joins fine. # => Teams detects Playwright's bundled Chromium as automation, FORCES the # bot into a lobby + the buggy preheated-PC code path that crashes # (rejectMediaDescriptionsUpdateAsync). Real Chrome avoids both. BOT_DISABLE_MEDIA_WRAPPERS=false BOT_ANON_USE_AUTH_BROWSER_SETUP=false # Use the locally installed Chrome instead of Playwright's bundled # Chromium. Empty = bundled Chromium (default). # Try: chrome | msedge BOT_BROWSER_CHANNEL=chrome # Logging LOG_LEVEL=info LOG_DIR=./output/logs # Screenshots (for debugging) SCREENSHOT_DIR=./output/screenshots SCREENSHOT_ON_ERROR=true