-
Notifications
You must be signed in to change notification settings - Fork 3.4k
fix(meet-audio): caption pipeline + echo prevention + mascot rendering #2775
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Closed
YellowSnnowmann
wants to merge
73
commits into
tinyhumansai:main
from
YellowSnnowmann:feat/mascot-meet-flowA-fixes
Closed
Changes from all commits
Commits
Show all changes
73 commits
Select commit
Hold shift + click to select a range
92ad9dc
refactor(meeting-bots): point modal submit at Flow A (CEF webview)
oxoxDev 8e9b7b2
feat(human): add join-meeting pill that opens Flow A modal
oxoxDev 54333fc
fix(meet-call): force off-screen position post-build + minimize
oxoxDev 0260c16
fix(meet-call): drop minimize, close stale windows, log post-build pos
oxoxDev c322dc7
fix(meet-call): hide window post-build instead of positioning off-screen
oxoxDev e98dbd1
fix(meet-call): hide window post-join (not post-build) to keep scanne…
oxoxDev 34bdd11
fix(meet-scanner): flip camera + mic toggles ON before Ask to join
oxoxDev 7a72279
fix(meet-scanner): widen aria-label matchers + dump on toggle miss
oxoxDev ea08f76
fix(meet-scanner): only click 'Turn ON' variants; never click 'Turn off'
oxoxDev be8f61b
diag(meet-scanner): drop post-join hide to isolate pipeline regression
oxoxDev 6b11c96
fix(meet-agent): bare-wake (no tail) replies with greeting ack, not s…
oxoxDev 2152db9
feat(meet-scanner): scanner-side admission watch + captions force-enable
oxoxDev 309301a
diag(meet-agent): log every push_caption text + wake_fired outcome
oxoxDev 62014ab
feat(meet-scanner): cycle mic off→on after Ask-to-join to force fresh…
oxoxDev 298094c
Merge remote-tracking branch 'upstream/main' into feat/mascot-meet-flowA
oxoxDev 356f27c
fix(meet-agent): widen wake matcher — accept 'hi/hello openhuman' + b…
oxoxDev ea61575
fix(meet-scanner): cycle mic off→on BEFORE Ask-to-join, not after
oxoxDev b4897bd
fix(meet-scanner): clear browser cookies pre-join to drop leaked Goog…
oxoxDev 576173c
fix(meet-agent): filter 'You'-speaker noise, strip <think> blocks, in…
oxoxDev 9055241
fix(meet-agent): break echo loop — speaking gate, caption dedup, TTS cap
oxoxDev 96346a8
fix(meet-agent): tighten reply length — 80-token cap + strict spoken-…
oxoxDev 8f7e371
fix(meet-agent): switch model agentic-v1 → chat-v1 + strip leaked rea…
oxoxDev 44d1bbe
feat(meet-agent): route bot through orchestrator agent — second brain…
oxoxDev 71d5036
fix(meet-agent): switch to with_profile builder to pick up connected …
oxoxDev ef7e648
fix(meet-agent): per-turn unique definition_name to bypass corrupt tr…
oxoxDev 5d97de2
fix(meet-agent): rewrite voice directive to encourage tool use
oxoxDev d8de1f3
fix(meet-agent): per-speaker caption dedup + turn_in_progress gate + …
oxoxDev cb4117b
fix(meet-agent): 60s→90s timeout + drop basic-LLM hallucination fallback
oxoxDev 3c864a4
feat(meet-agent): inject current date/time into orchestrator system p…
oxoxDev b20e466
fix(meet-scanner): broaden CC auto-enable matchers + double attempt b…
oxoxDev ded0bfc
feat(meet-agent): pre-roll "On it." ack to bridge 30-60s tool-call si…
oxoxDev 89b3372
feat(meet-agent): cache orchestrator Agent per meet for cross-turn me…
oxoxDev 8560d22
feat(meet-agent): barge-in — JS audio flush + relaxed wake gate
oxoxDev 12bc5e7
fix(meet-agent): force English-only TTS + log reply preview
oxoxDev 273e390
fix(meet-agent): triple-up dedup — 30s cooldown + 15s min-turn-gap + …
oxoxDev cab2e75
chore: apply auto-fixes from pre-push hook
oxoxDev 26c65fc
fix(meet-agent): skip pre-roll ack for short prompts (greetings / tim…
oxoxDev 257646c
fix(meet-agent): cooldown + min-turn-gap → 60s each to kill residual-…
oxoxDev 140f371
test(skills): update MeetingBotsCard tests for Flow A (joinMeetCall)
oxoxDev d2fcda7
test(meet-agent): poll for audio up to 30s instead of single 50ms sleep
oxoxDev 42834af
feat(meet-agent): owner-only wake gate (privacy lock)
oxoxDev 6b1c7a8
feat(meet-agent): plumb owner+bot display names into start_session RPC
oxoxDev 994e666
feat(tauri/meet): forward owner display name from shell to core wake …
oxoxDev 6e44f16
feat(skills): owner-name input + privacy hint on MeetingBotsCard modal
oxoxDev 683f3e2
feat(tauri/meet-audio): emit speaking-state edges from speak_pump
oxoxDev 93912b1
feat(meet): animate the in-call mascot's mouth while the bot speaks
oxoxDev f26e25b
feat(meet-agent): JSONL store for completed call records
oxoxDev a39bf38
feat(meet-agent): capture meet_url + started_at_ms on session start
oxoxDev 0eebe5b
feat(meet-agent): persist on stop_session + new list_calls RPC
oxoxDev 0f46ed0
feat(tauri/meet-audio): forward meet_url into start_session
oxoxDev b4e1747
feat(meet): listMeetCalls() service + tests
oxoxDev 2a5014a
feat(skills): inline recent-calls list in MeetingBotsCard modal
oxoxDev 0e5e2ec
chore: apply auto-fixes
oxoxDev 18e70f3
feat(meet-agent): CaptionOutcome enum + soft-deny + owner-grant state
oxoxDev 1c29cff
feat(meet-agent): run_soft_deny_turn + run_grant_turn
oxoxDev 4e52b0a
feat(meet-agent): dispatch CaptionOutcome to soft-deny / wake / ignore
oxoxDev 7969b4d
chore: apply auto-fixes
oxoxDev 62a70b4
fix(skills): drop {label} placeholder from sendTo/comingSoon i18n str…
oxoxDev 60916bb
fix(meet-agent): declare owner_display_name / bot_display_name / meet…
oxoxDev 6d1e365
chore: apply auto-fixes
oxoxDev 62732c7
fix(meet-agent): dedup unauthorized wakes before soft-deny dispatch
oxoxDev 52a22d3
fix(meet-agent): session-wide soft-deny cooldown + greeting/refusal s…
oxoxDev 17dd6c9
fix(meet-audio): route bot PCM to local speakers in addition to Meet …
oxoxDev 9a3c2db
feat(meet-agent): toolless LLM for non-owner non-greeting wakes
oxoxDev 15df969
chore: apply auto-fixes
oxoxDev 6e312ce
fix(meet-audio): caption pipeline reliability + echo prevention + re-…
YellowSnnowmann d0e719a
chore: apply auto-fixes
YellowSnnowmann f11af29
merge: resolve upstream/main conflicts
YellowSnnowmann d0ad4b5
fix(meet-video): use RiveMascot from upstream + speaking state
YellowSnnowmann 9545335
fix(meet-video): position producer at opacity:0 instead of off-screen
YellowSnnowmann 13d6023
fix(meet-video): match speaking-state payload key casing (requestId)
YellowSnnowmann d5e84dd
fix(meet-audio): intercept WebRTC layer to silence incoming call audio
YellowSnnowmann 41c3723
refactor(meet-scanner): change log level from warn to info for aria-l…
YellowSnnowmann File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[major]
addEventListenerwrapping breaksremoveEventListener. The browser's event listener registry storeswrappedListener, so any caller that later doesremoveEventListener('track', originalHandler)silently fails — the old wrapped listener stays live and fires alongside any new one added after the remove. This is a problem if Meet renegotiates WebRTC mid-call (remove + readd track listeners) or if its teardown path calls removeEventListener for cleanup.The
ontracksetter interception below (which you already have) is the right approach for this. Consider dropping theaddEventListenerwrap entirely and relying solely on theontrackproperty setter — Meet usesontrackexclusively in the builds I've seen, and you don't need removeEventListener to work with a setter.