Repository navigation
Prompt to record Helium Google Meet calls, including the Meet shortcut - #2279
Open
jdustinlewis wants to merge 2 commits into
Open
jdustinlewis wants to merge 2 commits into
jdustinlewis wants to merge 2 commits into
Conversation
Refs r3dbars#2278. Not ready to merge: in real Helium Meet calls the prompt still sometimes doesn't show. - Recognize the net.imput.helium bundle family (shared helper owns the mic). - Count only the frontmost app's window as focused. - Classify Chromium shortcut start URLs; a Meet shortcut in front, or opened within 15s of mic start, counts as a call site. - Returning to a call-site window clears an early "not a call" sticky. - Cap the first title read at 1s so a hung AX read can't hold the prompt.
12 of 20 tasks
From an independent review of the Helium change (three P2s): - The 1 s cap on the first title read only applied when something else re-evaluated. A hung read with steady mic use held every prompt. A re-check at the 1 s mark now ends the hold. - A Meet shortcut could claim another browser's mic, or claim it after it quit. The shortcut now has to belong to the browser holding the mic, and a quit clears its recent activation. - Calendar "meeting tab is active" counted every PWA in front (Chrome, Edge, Safari web apps) after the switch to family prefixes. It now counts a browser's own app or a Helium web app. Each has a test that fails without its fix.
jdustinlewis
marked this pull request as ready for review
October 31, 2026 04:46
This branch has not been deployed
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Fixes #2278. Needs #2281 for back-to-back calls (see "Why testing was inconsistent" below).
Why
Auto-call detection doesn't recognize Helium. Helium's mic and playback run on one shared helper (
net.imput.helium.helper), which the main browser and every installed shortcut (net.imput.helium.app.*) all use. So "the helper has the mic" doesn't mean "this is Meet", and "the Meet shortcut is running" doesn't mean "a call is on". Details are in #2278.Product Impact
meetingsmeeting reliabilityWhat changed
MeetingPromptProvider.browserBundleIDPrefixesnow includesnet.imput.helium. The mic check, the probe filter and the calendar "meeting tab is active" check all use that one list. The exact browser-ID set on the runtime snapshot is gone.docs/auto-call-detection-spec.md.Why testing was inconsistent
Earlier live tests kept going the same way: the first Meet call prompted, and later calls never did. It looked like a Helium detection problem, but it wasn't.
Hitting Record on a detected call muted prompts for that provider for 30 minutes (or until the matching calendar event ended), and the mute stayed on after the call ended. So the first call prompted, and every Meet call after it within 30 minutes stayed quiet, whatever Helium was doing. A watch of mic owners showed it plainly: Helium's helper held the mic for minutes with Helium in front, and no prompt showed. Skip and Remind me set their own mutes too, which explains the earlier runs where the prompt was dismissed instead.
That's a
mainbug that affects every app, so it's fixed separately in #2281 (issue #2280). Without #2281, this PR still prompts for the first call, but not the next one within 30 min.How I checked it
scripts/dev/agent-preflight.shbash scripts/dev/linux-checks.sh(runs without Swift).agents/test-matrix.ymlfor the files changed (bash check.shata1d87fa89: all 50,121 tests passed. Itsbuild.shstep refused to rebuild over the test app that was running, so the build ran separately, below)bash build.sh --no-openata1d87fa89, in a clean worktree: passedbash run-tests.shfiltered: BrowserCallEvidence 85/85, MeetingPromptDetector 153/153, MeetingPromptHeuristics 128/128, MicActivityMonitorProbeFilter 40/40bash run-integration-smoke.shif I touchedSources/Meeting/orSources/TranscriptedCore/swift testif I touchedPackage.swift,Sources/TranscriptedCore/, or the public core seambash run-e2e-smoke.sh/swift test --package-path Tools/<Package>if the matrix maps thema1d87fa89. They're small and covered by tests, but haven't been live-tested.Live results:
A second quiet run (ChatGPT for 2+ min, then the Meet home screen for 1–2 min) also stayed quiet. That one doesn't prove much, though: it came right after the false prompt above, and how that prompt was answered affects what happens next.
The Meet app is slower because its window title doesn't use the in-call pattern a tab does, so it falls back to waiting for steady mic use.
Checks I could not run, and why:
run-integration-smoke.shwasn't run on its own;check.shpicked the checks for this diff.Mac or hardware test still needed? Only to recheck the rows above on another Mac. Steps: Helium plus Accessibility permission, then each scenario in the table. On
main, none of the call rows prompt, because Helium isn't recognized.Known limitation
If you bring the Meet app forward while it's on its home screen and another Helium tab (ChatGPT voice) holds the mic, the app prompts. The shortcut's title looks the same on the home screen as in a call, and the "Meet shortcut in front counts as a call site" rule takes over. It's a narrow case (you have to switch to Meet while something else is talking) and was accepted for this PR. Dropping that rule is the likely fix if it turns out to matter. The Meet app already takes about a minute to prompt, which suggests real calls aren't relying on that rule.
Risk Review
check-source-pins.py --changed-only: pass)a1d87fa89with tests that fail without each fix: a 1 s title-read cap that never fired on its own; a Meet shortcut claiming another browser's mic, or claiming after it quit; and calendar "meeting tab is active" counting every Chrome/Safari web app. The second round came back cleanNotes
com.apple.CoreSpeechshows up holding the mic beside the Helium helper in every call. It didn't affect detection, and I didn't look into it further.🤖 Generated with Claude Code