Phase4 dualchannel#5
Merged
srprasanna merged 9 commits intomainfrom Jan 24, 2026
Merged
Conversation
- Added AudioTester component for testing speaker and microphone capture. - Introduced AudioDeviceSelector for selecting audio devices. - Created AudioPlayer for playback of meeting recordings. - Updated Settings page to include an Audio Testing tab. - Enhanced dual audio capture functionality in the backend. - Documented audio capture implementation plan and critical issues in AUDIO_CAPTURE_TODO.md. - Added MarkdownEditor for editing insights with live preview.
Contributor
There was a problem hiding this comment.
Pull request overview
This PR lays groundwork for “dual-channel” meeting recordings (speaker loopback + microphone), adds an in-app audio testing UI, introduces editable AI insights with markdown preview, and wires up Tauri desktop notification + tray support.
Changes:
- Added dual-capture APIs and a Windows WASAPI dual-capture/mixing implementation, plus UI tooling to test capture and play back recordings.
- Added insight editing (markdown editor) and improved markdown rendering behavior/styling.
- Added Tauri notification plugin + tray/icon configuration and updated generated ACL schemas.
Reviewed changes
Copilot reviewed 24 out of 26 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| apps/desktop/src/pages/Settings.tsx | Adds “Audio Testing” tab and Select tweaks. |
| apps/desktop/src/pages/MeetingHistory.tsx | Adds audio playback, transcript/insights tabs, insight editing flow. |
| apps/desktop/src/components/MarkdownEditor.tsx | New markdown editor w/ preview + save/cancel. |
| apps/desktop/src/components/MarkdownContent.tsx | Markdown rendering preprocessing + improved list/heading styles. |
| apps/desktop/src/components/AudioTester.tsx | New UI to test speaker/mic capture and show level meters. |
| apps/desktop/src/components/AudioPlayer.tsx | New audio playback UI for saved meeting recordings. |
| apps/desktop/src/components/AudioDeviceSelector.tsx | New reusable device selector component. |
| apps/desktop/src/api/insights.ts | Adds updateInsight frontend binding. |
| apps/desktop/src-tauri/tauri.conf.json | Enables tray + asset protocol scope. |
| apps/desktop/src-tauri/src/ports/storage.rs | Adds storage port API for updating insights. |
| apps/desktop/src-tauri/src/ports/mocks.rs | Implements insight updates in mock storage. |
| apps/desktop/src-tauri/src/ports/audio.rs | Extends audio port with dual capture + current level. |
| apps/desktop/src-tauri/src/main.rs | Adds notification plugin, tray menu, close-to-tray behavior. |
| apps/desktop/src-tauri/src/commands/transcription.rs | Fetch Deepgram models via API instead of static list. |
| apps/desktop/src-tauri/src/commands/meeting.rs | Uses dual capture for meetings; adds audio test commands and level endpoint. |
| apps/desktop/src-tauri/src/commands/llm.rs | Adds command to update insight content. |
| apps/desktop/src-tauri/src/adapters/storage/sqlite.rs | Implements insight content update in SQLite adapter. |
| apps/desktop/src-tauri/src/adapters/services/asr/deepgram.rs | Adds Deepgram model listing types + API call. |
| apps/desktop/src-tauri/src/adapters/audio/windows.rs | Implements WASAPI dual capture, mixing, RMS level, test tone playback. |
| apps/desktop/src-tauri/gen/schemas/windows-schema.json | Adds notification permissions to generated schema. |
| apps/desktop/src-tauri/gen/schemas/desktop-schema.json | Adds notification permissions to generated schema. |
| apps/desktop/src-tauri/gen/schemas/acl-manifests.json | Updates ACL manifests to include notification plugin. |
| apps/desktop/src-tauri/Cargo.toml | Enables Tauri tray/asset features and adds notification plugin dep. |
| apps/desktop/src-tauri/Cargo.lock | Lockfile updates for notification + transitive deps. |
| AUDIO_CAPTURE_TODO.md | Adds phased plan/TODO doc for proper dual audio capture. |
| .github/workflows/ci.yml | Adjusts CI step label (currently introduces typo). |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…e into phase4-dualchannel
… add placeholder for missing frontend dist
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.
This pull request introduces two main sets of changes: (1) a comprehensive plan and TODO for implementing proper dual audio capture (microphone plus speaker output) for meeting recordings, and (2) the addition of notification-related permissions and dependencies to support desktop notifications. There are also minor adjustments to workflows and dependency lists.
Key changes:
Audio Capture Improvements
AUDIO_CAPTURE_TODO.mdoutlining a critical missing feature: current meeting recordings only capture speaker output, not the user's microphone. The document details a phased implementation plan for dual audio capture and mixing, including technical considerations and verification steps. This is marked as a production blocker.Notification Feature Support
tauri-plugin-notificationdependency and enabled relevant Tauri features (protocol-asset,tray-icon) inCargo.tomlto support desktop notifications.desktop-schema.json) with a wide range of notification-related permissions (e.g.,notification:default,notification:allow-notify,notification:allow-show, and their corresponding deny permissions), enabling fine-grained control over notification capabilities in the app.Minor Fixes
Check Rust formattin→ should beCheck Rust formatting).These changes collectively set the groundwork for critical improvements in meeting recording quality and add robust support for desktop notifications, while also improving configuration and workflow clarity.