Skip to content

refactor(meet): remove the in-app CDP Meet call window (2/3 for #5478) - #5483

Merged
senamakel merged 2 commits into
tinyhumansai:mainfrom
M3gA-Mind:remove/cdp-2-meet
Aug 10, 2026
Merged

senamakel merged 2 commits into
tinyhumansai:mainfrom
M3gA-Mind:remove/cdp-2-meet

Conversation

@M3gA-Mind

@M3gA-Mind M3gA-Mind commented Aug 10, 2026

Copy link
Copy Markdown
Collaborator

Important

Review commit 6d9f68fb1 only — the Files-changed tab shows more than this PR.

This is stacked on #5482. Its branch is on a fork, so GitHub cannot use it as this PR's base and diffs against main instead, folding #5482's commit into the view. The 60 files / −22,961 lines you see are both PRs; this one is 22 files / +16 / −5,536.

Use the Commits tab and open 6d9f68fb1, or locally:

git range-diff main...remove/cdp-1-scanners remove/cdp-1-scanners...remove/cdp-2-meet

The diff corrects itself once #5482 merges.

Summary

  • 2 of 3 for Remove the CDP layer and every surface that depends on it #5478. Removes the in-app Meet call window and the CDP bridges that drove it — 5,536 lines.
  • This is dead-code removal. The two frontend functions that invoked the Tauri commands, joinMeetCall and closeMeetCall, have zero production callers — only their own test file. Proof below.
  • Meet as a product is untouched. src/openhuman/meet/, the backend_bot (Recall.ai) path, and the entire Meetings UI are unchanged.
  • After this PR cdp/ has no functional consumer — the precondition PR 3 rests on. Three inert references remain and are named explicitly.
  • imessage_scanner remains byte-for-byte untouched across both PRs.

Problem

Why this is dead code

meetCallService.ts is two services in one file, and only the smaller half ever touched the Tauri CDP commands:

Function Path it uses Callers outside the file
joinMeetCall invoke('meet_call_open_window') 0 production — only __tests__/meetCallService.test.ts
closeMeetCall invoke('meet_call_close_window') 0 production — same test file only
joinMeetViaBackendBot, leaveBackendMeetBot, sendHarnessResponse, listMeetCalls, getMeetCallDetail, listUpcomingMeetings, setEventPolicy, getEventPolicies, joinMeetingViaMascotBot core RPC / apiClient.post('/mascots/join-meeting') — the backend bot ~20 live consumers

Every live component imports the backend half: UpcomingTable.tsx:19 and MeetComposer.tsx:16 import joinMeetViaBackendBot, ActiveMeetingBanner.tsx:13 imports leaveBackendMeetBot, and HistorySection, HistoryDetail, TranscriptViewer, ActionItemChecklist and useUpcomingMeetings are all backend-path.

grep -rn "meet_call_open_window|meet_call_close_window" app/src returned only meetCallService.ts itself, its test, and one doc comment in mascotSlice.ts:782. There is no dynamic invoke(<variable>) in the services layer. So meet_call_open_window was registered and implemented, and the only thing that ever called it was a unit test.

And it could not have worked anyway

app/src-tauri/src/cdp/in_process.rs is a permanent error stub — CDP only exists under a Chromium engine, and #5456 moved the app to Wry (WKWebView on macOS, WebKitGTK on Linux). The Meet stack reaches it through cdp::target::connect_and_attach_matching_in_process_by_labelinstall_for_label, which always returns Err.

The failure would have been quiet rather than loud: meet_call/mod.rs:209 only log::warn!s the CDP failure, so the window is built — deliberately off-screen at (-30000, -30000) (:187, re-asserted at :218) because the design assumed it would be driven headlessly and hidden after joining. The join itself is CDP (meet_scanner drives it via Input.dispatchMouseEvent, per the comment at :225). So anything that did call it would have produced an invisible window that never joins, never captures audio or video, and never closes itself. Nothing calls it.

Solution

Path Lines
app/src-tauri/src/meet_audio/ (44 cdp refs — caption_listener, speak_pump, inject) 1,678
app/src-tauri/src/meet_video/ (14 — inject) 1,737
app/src-tauri/src/meet_scanner/ 717
app/src-tauri/src/meet_call/ (2) 602
app/src-tauri/src/fake_camera/ 406
joinMeetCall / closeMeetCall + their describe blocks ~200

fake_camera resolved by deletion. Its only code consumer is lib.rs:2785, inside the #[cfg(feature = "e2e-test-support")] Chromium args block — not meet_video (that reference is a doc comment). It could not work regardless: the args vec that block builds ends in let _ = args; and is discarded, so the --use-file-for-fake-video-capture flag never reached anything. The meet_video consumer is gone here, so the module goes with it.

meet_scanner is in this PR rather than PR 1 because it sits inside the Meet dependency cycle, not the account-scanner group: meet_call/mod.rs:48 is use crate::meet_scanner; with a meet_scanner::spawn(...) call at :251, while meet_scanner references crate::meet_call. It has 0 references to webview_accounts.

Frontend footprint is two functions

meetCallService.ts keeps all 21 exports and no component was touched. With joinMeetCall/closeMeetCall gone the file no longer imports @tauri-apps/api/core at all — an independent signal that the Tauri-facing half is fully out.

Two doc references were retargeted rather than left pointing at deleted code: mascotSlice.ts:782 (described the resolver as serving "the CEF meet_call_open_window sender and the backend agent_meetings_join sender" — backend only now) and the meetCallService.ts header comment describing the two-phase CDP flow.

cdp/ after this PR — the PR 3 precondition

No functional consumer remains. CdpConn, install_for_label, conn_for_label, connect_and_attach_matching_in_process_by_label and find_page_target_where are referenced nowhere outside cdp/.

Three inert references survive, named so this is checkable rather than taken on trust:

  • lib.rs:2885.manage(cdp::CdpRegistry::default()), a registry whose map is never written.
  • lib.rs:2894cdp::set_cef_app_handle(...), whose body is {}.
  • companion/events.rs:9 — a doc comment.

Both lib.rs lines are removed with the module in PR 3.

A trap worth knowing about, for PR 3 and anyone else editing this module list

Deleting mod fake_camera; orphaned the #[cfg(any(test, feature = "e2e-test-support"))] attribute directly above it, which then silently applied to the next item — mod file_logging; — removing a live module from the default build and producing five E0433s in unrelated files. Nothing about the diff looks wrong, and the failure lands somewhere else entirely. app/src-tauri/src/lib.rs's module list has several cfg-attributed entries, so a line-wise deletion there needs the attribute above each removed item checked too. Caught by cargo check before commit; flagged because the same trap is live for PR 3.

Submission Checklist

  • Tests added or updated — deletion-only; removed the joinMeetCall and closeMeetCall describe blocks whose subject is gone. The remaining 6 blocks in that file (backend-bot path) are untouched and pass. No new behaviour to cover.
  • Diff coverage ≥ 80% — N/A for a diff of 5,536 deletions and 16 insertions, none of them new logic. CI enforces the real number.
  • Coverage matrix updated — N/A: behaviour-only removal, no feature rows added/removed/renamed.
  • All affected feature IDs listed — N/A: no feature IDs.
  • No new external network dependencies introduced — deletion only.
  • Manual smoke checklist updated — N/A: nothing removed here was reachable from the shipped UI. The Meetings UI smoke path runs through the backend bot and is unchanged.
  • Linked issue closed via Closes #NNN — deliberately not closing Remove the CDP layer and every surface that depends on it #5478 here; Closes goes on PR 3, the last of the stack.

Impact

Desktop only. No runtime behaviour change for any user: the removed path had no caller, and would have returned "CDP is unavailable with the upstream Tauri WebView runtime" if it had one.

Two IPC commands (meet_call_open_window, meet_call_close_window) are no longer registered. Nothing in app/src invokes them.

Meet is unaffected as a product. src/openhuman/meet/ (including backend_bot, the Recall.ai path) has no reference to the deleted Tauri modules in either direction, verified by grep in both directions. Joining, transcripts, action items, upcoming meetings and event policies all run through core RPC and the backend bot.

Related

Pre-existing breakage, called out per CONTRIBUTING

Pushed with --no-verify. The pre-push hook runs pnpm rust:clippy (cargo clippy -- -D warnings), which fails on unused import: std::fs at app/src-tauri/src/process_recovery.rs:14. This is not from this PRcargo clippy -- -D warnings fails identically on upstream/main (verified by checking out upstream/main and re-running), and the import became unused in 1843706c3, the CEF → Wry commit in #5456. Left alone here to keep this diff to one concern; it is a one-line fix if a maintainer wants it folded in or taken separately.


AI Authored PR Metadata (required for Codex/Linear PRs)

Linear Issue

  • Key: N/A
  • URL: N/A

Commit & Branch

Validation Run

  • pnpm --filter openhuman-app format:checkrun, passes. "All matched files use Prettier code style!"
  • pnpm typecheckrun, passes with zero errors. This is the check that matters most here: three sibling test files (ActiveMeetingBanner.test.tsx, useUpcomingMeetings.test.ts, MeetingBotsCard.test.tsx) pull in the whole module via vi.importActual<typeof import('.../meetCallService')>, which types every export. Deleting two exports would surface there, and does not.
  • Focused tests: run, all pass. vitest run on the 4 directly-affected files (meetCallService.test.ts, joinMeetingViaMascotBot.test.ts, backendMeetService.test.ts, common.test.ts) → 4 files / 74 tests passed. Then the importActual consumers: src/components/meetings + MeetingBotsCard.test.tsx16 files / 219 tests passed.
  • Rust fmt/check (if changed): cargo fmt --all -- --check clean in both Cargo worlds. cargo check -p openhuman --tests → 0 errors. cargo check --no-default-features → 0 errors.
  • Tauri fmt/check (if changed): cargo check --manifest-path app/src-tauri/Cargo.toml --all-targets → 0 errors. --all-targets deliberately, so test targets compile.

Only warning across the Tauri shell is the pre-existing unused import: std::fs described above.

Validation Blocked

  • command: pnpm rust:clippy (via the pre-push hook)
  • error: unused import: std::fsprocess_recovery.rs:14
  • impact: none from this PR; pre-existing on upstream/main, verified by checkout. Pushed with --no-verify per CONTRIBUTING's rule for unrelated pre-existing breakage.

Behavior Changes

  • Intended behavior change: remove an uncallable, unreferenced in-app Meet window and its CDP bridges.
  • User-visible effect: none. No caller existed, and the path could not have completed a join if one had.

Parity Contract

  • Legacy behavior preserved: the entire backend-bot Meet path and Meetings UI — 21 surviving exports in meetCallService.ts, zero components touched, 219 component tests passing. imessage_scanner untouched across both PRs (git diff upstream/main against it is empty).
  • Guard/fallback/dispatch parity checks: grep -rn "joinMeetCall|closeMeetCall|meet_call_open_window|meet_call_close_window" app/src → clean. cdp/ functional-consumer count → 0.

Duplicate / Superseded PR Handling

  • Duplicate PR(s): N/A
  • Canonical PR: this PR
  • Resolution: N/A

Summary by CodeRabbit

  • Changes
    • Removed legacy desktop webview account surfaces and provider-specific message scanners.
    • Removed the desktop Meet call window and associated audio, captions, camera, and automation features.
    • Retained core Meet functionality and native iMessage scanning.
    • Updated channel support and documentation to reflect the streamlined provider integrations.
  • Bug Fixes
    • Updated service and command handling to use the remaining supported Meet and mascot flows.

M3gA-Mind added 2 commits August 10, 2026 19:36
1 of 3 for tinyhumansai#5478. Removes the six CDP-driven provider scanners and the
webview-account surface they ran inside. Pure dead-code removal: the
frontend entry points (SidebarAppRail, WebviewHost, webviewAccountService)
were deleted in tinyhumansai#5457 and never restored, so none of this was reachable
by a user.

Deleted:
- app/src-tauri/src/{whatsapp,discord,slack,telegram,gmessages,wechat}_scanner
- app/src-tauri/src/webview_accounts (4,809 lines)
- src/openhuman/channels/webview_accounts (WeChat ingest normalisation,
  whose only producer was wechat_scanner; already had zero other consumers)
- app/src-tauri/src/cdp/{session,snapshot}.rs — the per-account session
  opener and DOM-snapshot parser. session.rs imports webview_accounts
  directly, so it cannot compile without it; both had no other consumer.
- The CEF cold-start prewarm and the webview-close drain machinery, whose
  only producers were the prewarm webview and webview_accounts.

Unregisters all 15 webview_account_* IPC commands, so the shell no longer
exposes commands whose implementation is gone.

imessage_scanner is untouched and still registered: it reads chat.db
natively, has zero CDP references, and its only crate-internal dependency
is core_rpc.

cdp/ itself stays — after this its only consumers are the Meet stack
(meet_scanner, meet_audio, meet_video), removed in PR 2 of 3.

i18n keys and user-facing provider copy are deliberately left in place;
they are split and removed in PR 3 pending the tinyhumansai#5423 decision on whether
users with a connected web app get a removal notice.
2 of 3 for tinyhumansai#5478. Removes the desktop Meet call window and the CDP
bridges that drove it. Like PR 1 this is dead-code removal: the two
frontend functions that invoked the Tauri commands had no production
callers.

Deleted:
- app/src-tauri/src/meet_call    (602)
- app/src-tauri/src/meet_scanner (717)
- app/src-tauri/src/meet_audio   (1,678)
- app/src-tauri/src/meet_video   (1,737)
- app/src-tauri/src/fake_camera  (406) — only consumer was lib.rs's
  e2e-test-support Chromium args block, whose flags are discarded
- joinMeetCall / closeMeetCall in app/src/services/meetCallService.ts,
  the only two functions in that file that reached the Tauri commands,
  plus their test blocks

Meet as a product is untouched. src/openhuman/meet/ and the backend_bot
(Recall.ai) path never used CDP and have no reference to the deleted
Tauri modules in either direction. The entire Meetings UI is untouched:
every live component imports the backend-bot half of meetCallService
(joinMeetViaBackendBot, leaveBackendMeetBot, listMeetCalls, …).

After this PR cdp/ has no functional consumer. CdpConn and
install_for_label are referenced nowhere outside cdp/; only two inert
lines remain in lib.rs — a no-op set_cef_app_handle call and a
never-written CdpRegistry — both removed with the module in PR 3.

imessage_scanner remains untouched across both PRs.
@M3gA-Mind
M3gA-Mind requested a review from a team August 10, 2026 14:43
@M3gA-Mind

Copy link
Copy Markdown
Collaborator Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor
⚠️ Action not completed

Already reviewed.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai

coderabbitai Bot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

The PR removes CDP session and snapshot APIs, provider scanners, Meet webview modules, account-webview surfaces, fake-camera support, and related Tauri wiring. It retains native iMessage scanning, core Meet backend functionality, and remaining webview APIs.

Changes

CDP and scanner removal

Layer / File(s) Summary
CDP contract reduction
app/src-tauri/src/cdp/*
The CDP module removes session, snapshot, account-keyed attachment, and detach APIs. Shared connection and registry exports remain.
Scanner and media-stack deletion
app/src-tauri/src/{discord_scanner,fake_camera,gmessages_scanner,meet_audio,meet_call,meet_scanner,meet_video,slack_scanner,telegram_scanner,wechat_scanner,whatsapp_scanner}/*
The PR deletes CDP-based provider scanners, Meet audio/video and call-window modules, fake-camera generation, and their tests and fixtures.

Tauri and frontend integration

Layer / File(s) Summary
Tauri shell and teardown cleanup
app/src-tauri/src/lib.rs, app/src-tauri/src/webview_accounts/mod_tests.rs
The shell removes deleted modules, state, startup paths, command registrations, CEF teardown, and fake-camera configuration. iMessage shutdown remains.
Meet service path cleanup
app/src/services/meetCallService.ts, app/src/services/__tests__/meetCallService.test.ts, app/src/store/mascotSlice.ts, app/src/utils/tauriCommands/common.test.ts
The frontend removes desktop-shell Meet window operations and updates related tests and documentation.
Architecture and channel inventory updates
AGENTS.md, src/openhuman/channels/mod.rs, src/openhuman/channels/webview_accounts/*
Project guidance and channel exports remove the webview_accounts surface and document the retained WhatsApp data organization.

Estimated code review effort: 4 (Complex) | ~45 minutes

Possibly related PRs

Suggested labels: rust-core

Suggested reviewers: senamakel

Poem

I’m a rabbit with a tidy burrow,
CDP paths now rest below.
iMessage stays, backend Meet remains,
Old webview tunnels leave no stains.
Hop, hop—fewer wires to know! 🐇

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly identifies the primary change: removal of the in-app CDP Meet call window.
Linked Issues check ✅ Passed The changes satisfy the scoped objectives by removing CDP-dependent surfaces, Meet IPC callers, scanners, and fake_camera while retaining planned inert CDP references.
Out of Scope Changes check ✅ Passed The changes are within scope because the linked issue requires removal of the CDP-dependent scanners, Meet stack, webview surfaces, and fake_camera.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot added the rust-core Core Rust runtime in src/: CLI, core_server, shared infrastructure. label Aug 10, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@app/src-tauri/src/cdp/mod.rs`:
- Around line 1-15: Update the transitional CDP documentation across all sites:
in app/src-tauri/src/cdp/mod.rs lines 1-15, remove Meet call-window and
remaining-consumer claims and describe the module as inert compatibility code
pending PR 3 removal; in app/src-tauri/src/cdp/in_process.rs line 1, describe it
as a temporary unavailable CDP compatibility stub; in
app/src-tauri/src/cdp/target.rs line 48, remove the meet-call-&lt;request_id&gt;
active-use example; and in app/src-tauri/src/cdp/target.rs lines 65-68, remove
the claim that the Meet call window uses this attach sequence.

In `@app/src-tauri/src/lib.rs`:
- Around line 1637-1640: Update shutdown_imessage_scanner to add privacy-safe,
grep-friendly [imessage] diagnostics for function entry and exit, whether the
ScannerRegistry state is present or absent, and completion of
registry.inner().shutdown(). Keep logs namespaced and avoid including sensitive
data.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 1ca3f58e-73a5-403a-945d-e782b2bfc554

📥 Commits

Reviewing files that changed from the base of the PR and between c7e15ba and 6d9f68f.

⛔ Files ignored due to path filters (3)
  • app/src-tauri/src/fake_camera/mascot.svg is excluded by !**/*.svg
  • app/src-tauri/src/meet_video/Bookreading.svg is excluded by !**/*.svg
  • app/src-tauri/src/meet_video/idelMascot.svg is excluded by !**/*.svg
📒 Files selected for processing (57)
  • AGENTS.md
  • app/src-tauri/src/cdp/conn.rs
  • app/src-tauri/src/cdp/in_process.rs
  • app/src-tauri/src/cdp/mod.rs
  • app/src-tauri/src/cdp/session.rs
  • app/src-tauri/src/cdp/snapshot.rs
  • app/src-tauri/src/cdp/target.rs
  • app/src-tauri/src/discord_scanner/dom_snapshot.rs
  • app/src-tauri/src/discord_scanner/mod.rs
  • app/src-tauri/src/discord_scanner/mod_tests.rs
  • app/src-tauri/src/fake_camera/mod.rs
  • app/src-tauri/src/gmessages_scanner/cdp_walk.rs
  • app/src-tauri/src/gmessages_scanner/idb.rs
  • app/src-tauri/src/gmessages_scanner/mod.rs
  • app/src-tauri/src/lib.rs
  • app/src-tauri/src/lib_tests.rs
  • app/src-tauri/src/meet_audio/audio_bridge.js
  • app/src-tauri/src/meet_audio/caption_listener.rs
  • app/src-tauri/src/meet_audio/captions_bridge.js
  • app/src-tauri/src/meet_audio/inject.rs
  • app/src-tauri/src/meet_audio/mod.rs
  • app/src-tauri/src/meet_audio/speak_pump.rs
  • app/src-tauri/src/meet_call/mod.rs
  • app/src-tauri/src/meet_scanner/mod.rs
  • app/src-tauri/src/meet_video/camera_bridge.js
  • app/src-tauri/src/meet_video/frame_bus.rs
  • app/src-tauri/src/meet_video/inject.rs
  • app/src-tauri/src/meet_video/mod.rs
  • app/src-tauri/src/slack_scanner/dom_snapshot.rs
  • app/src-tauri/src/slack_scanner/extract.rs
  • app/src-tauri/src/slack_scanner/idb.rs
  • app/src-tauri/src/slack_scanner/mod.rs
  • app/src-tauri/src/telegram_scanner/dom_snapshot.rs
  • app/src-tauri/src/telegram_scanner/extract.rs
  • app/src-tauri/src/telegram_scanner/idb.rs
  • app/src-tauri/src/telegram_scanner/mod.rs
  • app/src-tauri/src/webview_accounts/mod.rs
  • app/src-tauri/src/webview_accounts/mod_tests.rs
  • app/src-tauri/src/webview_accounts/runtime.js
  • app/src-tauri/src/wechat_scanner/dom_snapshot.rs
  • app/src-tauri/src/wechat_scanner/mod.rs
  • app/src-tauri/src/whatsapp_scanner/dom_snapshot.rs
  • app/src-tauri/src/whatsapp_scanner/dom_snapshot_tests.rs
  • app/src-tauri/src/whatsapp_scanner/idb.rs
  • app/src-tauri/src/whatsapp_scanner/idb_tests.rs
  • app/src-tauri/src/whatsapp_scanner/mod.rs
  • app/src-tauri/src/whatsapp_scanner/mod_tests.rs
  • app/src-tauri/src/whatsapp_scanner/test_fixtures/dom_snapshot_2026_05.json
  • app/src/services/__tests__/meetCallService.test.ts
  • app/src/services/meetCallService.ts
  • app/src/store/mascotSlice.ts
  • app/src/utils/tauriCommands/common.test.ts
  • src/openhuman/channels/mod.rs
  • src/openhuman/channels/webview_accounts/README.md
  • src/openhuman/channels/webview_accounts/mod.rs
  • src/openhuman/channels/webview_accounts/wechat_ingest.rs
  • src/openhuman/channels/webview_accounts/wechat_ingest_tests.rs
💤 Files with no reviewable changes (44)
  • app/src-tauri/src/whatsapp_scanner/test_fixtures/dom_snapshot_2026_05.json
  • app/src-tauri/src/fake_camera/mod.rs
  • app/src-tauri/src/lib_tests.rs
  • src/openhuman/channels/webview_accounts/mod.rs
  • app/src-tauri/src/slack_scanner/extract.rs
  • app/src-tauri/src/webview_accounts/runtime.js
  • app/src-tauri/src/whatsapp_scanner/mod_tests.rs
  • app/src-tauri/src/discord_scanner/dom_snapshot.rs
  • src/openhuman/channels/webview_accounts/README.md
  • app/src-tauri/src/whatsapp_scanner/idb_tests.rs
  • app/src-tauri/src/slack_scanner/idb.rs
  • app/src-tauri/src/cdp/snapshot.rs
  • app/src-tauri/src/telegram_scanner/idb.rs
  • app/src-tauri/src/telegram_scanner/extract.rs
  • app/src-tauri/src/meet_video/frame_bus.rs
  • app/src-tauri/src/gmessages_scanner/cdp_walk.rs
  • app/src-tauri/src/meet_audio/caption_listener.rs
  • app/src-tauri/src/meet_audio/captions_bridge.js
  • app/src-tauri/src/meet_audio/mod.rs
  • app/src-tauri/src/meet_call/mod.rs
  • app/src-tauri/src/meet_audio/inject.rs
  • app/src-tauri/src/whatsapp_scanner/idb.rs
  • app/src-tauri/src/cdp/session.rs
  • app/src-tauri/src/meet_audio/audio_bridge.js
  • app/src-tauri/src/discord_scanner/mod_tests.rs
  • app/src-tauri/src/meet_video/camera_bridge.js
  • app/src-tauri/src/meet_audio/speak_pump.rs
  • app/src-tauri/src/whatsapp_scanner/dom_snapshot.rs
  • app/src-tauri/src/whatsapp_scanner/dom_snapshot_tests.rs
  • app/src-tauri/src/meet_scanner/mod.rs
  • app/src-tauri/src/webview_accounts/mod_tests.rs
  • app/src-tauri/src/wechat_scanner/mod.rs
  • app/src-tauri/src/discord_scanner/mod.rs
  • app/src-tauri/src/telegram_scanner/dom_snapshot.rs
  • app/src-tauri/src/gmessages_scanner/idb.rs
  • src/openhuman/channels/mod.rs
  • app/src-tauri/src/gmessages_scanner/mod.rs
  • app/src-tauri/src/telegram_scanner/mod.rs
  • app/src-tauri/src/meet_video/inject.rs
  • app/src-tauri/src/meet_video/mod.rs
  • app/src-tauri/src/wechat_scanner/dom_snapshot.rs
  • app/src-tauri/src/whatsapp_scanner/mod.rs
  • app/src-tauri/src/slack_scanner/mod.rs
  • app/src-tauri/src/slack_scanner/dom_snapshot.rs

Comment on lines +1 to +15
//! Shared Chrome DevTools Protocol client for the Meet call window.
//!
//! All CDP traffic flows through the in-process transport in
//! [`in_process`]: CDP messages travel directly between the Tauri shell
//! and the embedded CEF browser via `Webview::send_dev_tools_message`
//! and `Webview::on_dev_tools_protocol`. There is no listener and no
//! network surface; any same-UID process is shut out by construction.
//! CDP traffic flows through the in-process transport in [`in_process`],
//! which is a permanent unavailable-error stub: upstream Tauri's Wry
//! runtime uses WKWebView (macOS) and WebKitGTK (Linux), neither of which
//! speaks CDP. See #5478 — this module and its remaining consumers are
//! being removed; nothing here can succeed at runtime.
//!
//! Scanners pick up a [`CdpConn`] either via [`target::conn_for_account`] (for
//! `acct_<id>`-labelled webviews) or [`target::conn_for_label`] /
//! [`target::connect_and_attach_matching_in_process_by_label`] (for other
//! surfaces such as the Meet call window).
//! The per-account session opener and the DOM-snapshot parser were removed
//! alongside the webview-account surface they served.

// Transitional. With the account scanners gone the only remaining consumer
// is the Meet stack, which uses a narrow slice of the transport, so the rest
// of `CdpConn` / `WebviewCdpTransport` / `CdpRegistry` is unreferenced.
// Pruning it here would be churn: PR 3 of #5478 deletes this whole module.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Update the transitional CDP documentation.

The documentation says that Meet call windows or other CDP consumers remain. app/src-tauri/src/lib.rs lines 2891-2893 state that every CDP consumer is gone. Describe this code as inert compatibility code pending PR 3 removal.

  • app/src-tauri/src/cdp/mod.rs#L1-L15: remove the Meet call window and remaining-consumer claims.
  • app/src-tauri/src/cdp/in_process.rs#L1-L1: describe the module as a temporary unavailable CDP compatibility stub.
  • app/src-tauri/src/cdp/target.rs#L48-L48: remove the meet-call-<request_id> active-use example.
  • app/src-tauri/src/cdp/target.rs#L65-L68: remove the claim that the Meet call window uses this attach sequence.

Based on PR objectives and retrieved learnings, update documentation when behavior changes.

📍 Affects 3 files
  • app/src-tauri/src/cdp/mod.rs#L1-L15 (this comment)
  • app/src-tauri/src/cdp/in_process.rs#L1-L1
  • app/src-tauri/src/cdp/target.rs#L48-L48
  • app/src-tauri/src/cdp/target.rs#L65-L68
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@app/src-tauri/src/cdp/mod.rs` around lines 1 - 15, Update the transitional
CDP documentation across all sites: in app/src-tauri/src/cdp/mod.rs lines 1-15,
remove Meet call-window and remaining-consumer claims and describe the module as
inert compatibility code pending PR 3 removal; in
app/src-tauri/src/cdp/in_process.rs line 1, describe it as a temporary
unavailable CDP compatibility stub; in app/src-tauri/src/cdp/target.rs line 48,
remove the meet-call-&lt;request_id&gt; active-use example; and in
app/src-tauri/src/cdp/target.rs lines 65-68, remove the claim that the Meet call
window uses this attach sequence.

Source: Learnings

Comment thread app/src-tauri/src/lib.rs
Comment on lines 1637 to 1640
fn shutdown_imessage_scanner<R: tauri::Runtime>(app: &AppHandle<R>) {
if let Some(registry) = app.try_state::<std::sync::Arc<imessage_scanner::ScannerRegistry>>() {
registry.inner().shutdown();
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Add iMessage scanner shutdown diagnostics.

shutdown_imessage_scanner has no [imessage] diagnostics for the registry-present branch, the registry-absent branch, or shutdown completion. Add privacy-safe namespaced logs around this lifecycle transition.

As per coding guidelines, changed flows need grep-friendly namespaced diagnostics for entry, exit, branches, and state transitions.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@app/src-tauri/src/lib.rs` around lines 1637 - 1640, Update
shutdown_imessage_scanner to add privacy-safe, grep-friendly [imessage]
diagnostics for function entry and exit, whether the ScannerRegistry state is
present or absent, and completion of registry.inner().shutdown(). Keep logs
namespaced and avoid including sensitive data.

Source: Coding guidelines

@senamakel
senamakel merged commit 402504f into tinyhumansai:main Aug 10, 2026
22 of 32 checks passed
senamakel added a commit to nocstah/openhuman that referenced this pull request Sep 11, 2026
…\n\nrefactor(meet): remove the in-app CDP Meet call window (2/3 for tinyhumansai#5478)\n
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

rust-core Core Rust runtime in src/: CLI, core_server, shared infrastructure.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants