Commit graph

122 commits

Author SHA1 Message Date
ValueOn AG
35852f691b Voice: ensure mic on in auth join, add track diagnostics
Made-with: Cursor
2026-02-27 11:51:38 +01:00
ValueOn AG
2ce93c58a5 Fix authenticated launcher anon removal in Teams hash-routed meeting URLs.
Remove anon from hash-query form (/_#/meet/...?...&anon=true) so auth sessions no longer drift into anon-like launch behavior.

Made-with: Cursor
2026-02-27 10:13:00 +01:00
ValueOn AG
77ca96e23c Add root-cause diagnostics for authenticated launch and WebRTC audio uplink.
Log anon flag presence in auth launch URL and record outbound WebRTC sender stats (delta bytes/packets) around each TTS playback to prove whether audio is transmitted to the meeting.

Made-with: Cursor
2026-02-27 08:23:24 +01:00
ValueOn AG
7aaaf10b3b Remove fallback/workaround audio paths and keep root-cause-focused flow.
Drop mic preflight auto-toggle and WebRTC sender replaceTrack fallback to avoid masking defects while preserving diagnostics and auth launch URL corrections.

Made-with: Cursor
2026-02-27 08:11:49 +01:00
ValueOn AG
e6d0cfdad2 Add robust WebRTC sender fallback for TTS audio injection.
Track active RTCPeerConnections and force-replace outgoing audio sender tracks with the TTS track before playback to handle flows where getUserMedia override is bypassed.

Made-with: Cursor
2026-02-27 08:01:55 +01:00
ValueOn AG
3eaebae2a3 Fix authenticated launch URL anon leak and add audio override diagnostics.
Remove lingering anon=true from encoded launcher url parameter in auth mode and log getUserMedia override activation details to verify Teams receives the injected audio stream.

Made-with: Cursor
2026-02-27 07:56:49 +01:00
ValueOn AG
4437576acc Add playback acknowledgement from bot to gateway.
Send ttsPlaybackAck events (queued/completed/failed) from bot and forward them as ttsDeliveryStatus SSE updates for session diagnostics.

Made-with: Cursor
2026-02-26 21:45:47 +01:00
ValueOn AG
5caa5a047e Prevent historical Teams chat replay as fresh transcript input.
Add chat warmup guard and key-based deduplication so old thread messages are not re-emitted with new timestamps after join.

Made-with: Cursor
2026-02-26 21:41:56 +01:00
ValueOn AG
abf38eada3 Restore bot voice output with TTS mic preflight.
Run a one-time best-effort mic enable before first playback so injected TTS audio is audible even when Teams starts muted.

Made-with: Cursor
2026-02-26 21:27:15 +01:00
ValueOn AG
3863063984 Improve audio capture chunking for more stable STT.
Increase captured WebRTC audio chunk duration to reduce fragmented transcriptions and improve recognition quality in meetings.

Made-with: Cursor
2026-02-26 21:18:07 +01:00
ValueOn AG
77aa4f3d07 feat: enforce aggressive hybrid mode for names-only captions
Made-with: Cursor
2026-02-26 09:22:07 +01:00
ValueOn AG
39a422af25 feat: add hybrid speaker hints for audio-mode transcripts
Made-with: Cursor
2026-02-26 09:05:21 +01:00
ValueOn AG
79c1555e0c fix: capture active teams audio track with diagnostics
Replace first-track audio lock with multi-track capture management, add RMS-based activity detection, and propagate capture diagnostics (trackId, readyState, rms, nativeSampleRate) to gateway logs for root-cause analysis.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-24 14:55:16 +01:00
ValueOn AG
f47b3c5682 ci: restore build and deploy workflow
Restore .github/workflows/build-deploy.yml so pushes to main trigger automated ACR build and Azure Container App deployment again.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-24 07:41:09 +01:00
ValueOn AG
2985b0db51 fix: stabilize browser audio playback path
Prevent renderer crashes during voice greeting playback by hardening Chromium launch flags and disconnecting finished WebAudio sources.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-23 23:18:17 +01:00
ValueOn AG
dbecc602b7 fixed voice 2026-02-23 23:01:25 +01:00
ValueOn AG
9e4aad973f fix: WS auto-reconnect, reduce keepalive to 15s, downgrade ChatDOM to debug
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-19 00:47:02 +01:00
ValueOn AG
48c5c33f63 Merge branch 'main' of https://github.com/valueonag/service-teams-browser-bot 2026-02-19 00:31:49 +01:00
ValueOn AG
597631a08b sync features a and p 2026-02-19 00:31:46 +01:00
ValueOn AG
9a2994672c feat: add debugMode flag to gate screenshots, filter bot own captions
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-18 23:52:50 +01:00
ValueOn AG
003e21efcd fix: use resolveLaunchUrl to put suppress params on launcher URL, not inside encoded meeting URL
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-18 22:32:45 +01:00
ValueOn AG
bb304f3db1 fix: add suppressPrompt/msLaunch params to auth join URL, add joinOnWeb selector
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-18 22:10:27 +01:00
ValueOn AG
23cb8c890f feat: add screenshot list and file serving endpoints for debug viewer
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-18 22:00:33 +01:00
ValueOn AG
c93bce1b8b debug: add forced screenshots at every auth-join step, disable mic toggle
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-18 21:49:12 +01:00
ValueOn AG
dddf1cd970 refactor: central _pollForElement utility (500ms interval), remove all fixed waits and snapshot checks
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-18 21:41:48 +01:00
ValueOn AG
a981ae6bd8 fix: poll for interstitial buttons instead of one-shot check, race all selectors
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-18 21:37:15 +01:00
ValueOn AG
72f57f062d fix: navigate to meeting URL after auth instead of waiting for chat Join button
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-18 20:58:40 +01:00
ValueOn AG
bfabc3dbe9 fix: set minReplicas=1 to prevent scale-to-zero, improve deploy verification
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-18 18:17:57 +01:00
ValueOn AG
6b4172c46a docs: add documentation, update README, add marketing page
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-18 17:51:28 +01:00
ValueOn AG
777bc198a2 feat: fix chat in both-mode, add TeamsActionsService for AI commands
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-18 17:50:13 +01:00
ValueOn AG
4120a97e9f fix: force revision restart on Azure Container App deploy
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-18 00:56:22 +01:00
ValueOn AG
6da5e3d3b9 perf: skip language dropdown search (-35s join delay)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-18 00:21:49 +01:00
ValueOn AG
ad8c858ce4 feat: ensure mic ON on pre-join + voice greeting via Gateway TTS
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-18 00:17:41 +01:00
ValueOn AG
aec15602c2 fix: prevent chat panel toggle-off in authenticated Teams join
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-18 00:12:47 +01:00
ValueOn AG
df0763d840 feat: send greeting message in meeting chat after joining, skip camera toggle
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 23:44:13 +01:00
ValueOn AG
8487e723d4 fix: disable camera and remove Y4M fake video to prevent browser crash when audio flows
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 23:29:25 +01:00
ValueOn AG
8f0b739308 fix: Language and speech opens SUBMENU with closed-captions-button menuitemcheckbox, not a panel with switches
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 23:15:23 +01:00
ValueOn AG
b0dffb49dd fix: revert to Record+transcribe as primary, add noise filter for body fallback, fix chat debug logging
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 23:01:00 +01:00
ValueOn AG
80747d4aac feat: white Y4M fake video feed + prioritize live captions over transcription panel
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 22:47:48 +01:00
ValueOn AG
4c0afa3a12 fix: handle Stop transcription (already running), click Show transcript to open panel, fix wildcard container matching to exclude buttons
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 22:38:57 +01:00
ValueOn AG
c36c954ac8 fix: add transcript panel detection with wildcard selector, debug logging, and structural extraction
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 22:22:30 +01:00
ValueOn AG
aef99057b2 fix: verify camera is ON after joining meeting using in-meeting video-button
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 22:03:57 +01:00
ValueOn AG
6e712858dc fix: use Record and transcribe > Start transcription flow with language dialog for auth Teams
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 22:00:36 +01:00
ValueOn AG
252775a4b4 fix: enable captions via Language and speech panel, add body fallback observers, add keepalive
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 21:10:00 +01:00
ValueOn AG
6647de8ae7 fix: use exact data-tid=toggle-video selector for camera toggle on pre-join screen
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 20:39:56 +01:00
ValueOn AG
06ff78d2f8 fix: improve camera toggle detection with better logging and state verification
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 20:17:01 +01:00
ValueOn AG
50f1f1977e fix: captions enabling for authenticated Teams UI - add submenu path, reduce timeouts, add debug logging
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 20:14:51 +01:00
ValueOn AG
04abaf9402 feat: authenticated join flow, audio capture, camera activation, transferMode support
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 18:43:30 +01:00
ValueOn AG
35dd781d90 refactor: drastically shortened auth test flow - direct login to chat to pre-join to meeting
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 17:25:40 +01:00
ValueOn AG
68cf43c5fa feat: only Chromium Minimal variant + click Join in chat header (step 6+7)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 17:13:09 +01:00