Combined PR: Intel Mac support, Windows console fix, sound on recording end, recording indicator settings, audio timeout fix#54
Merged
moinulmoin merged 22 commits intomoinulmoin:mainfrom Jan 29, 2026
Conversation
Add CREATE_NO_WINDOW flag to PowerShell process that plays the recording start sound on Windows. This prevents a brief black console window from appearing each time recording begins. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Plays a distinct lower-pitched beep (600Hz) when recording stops, separate from the recording start sound (800Hz). Includes a toggle in Settings > General to enable/disable. Also includes Windows console flash fix for sound playback. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…ng options Replace boolean show_pill_indicator toggle with a dropdown that provides three modes: - Never: pill is always hidden - Always: pill is shown on startup and stays visible - When Recording: pill only appears during recording (default) Windows 11 fixes: - Move pill position above the taskbar to prevent overlay issues where the pill would lose focus when clicking the taskbar or system tray icon - Add subtle outline (ring-1 ring-white/30) to improve pill visibility Also fixes window management to properly handle orphaned/stale webview windows by closing them before creating new ones and ensuring mutex guards are dropped before async await points. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add a new dropdown setting to configure where the recording indicator appears on screen: top, center, or bottom. Position dropdown is hidden when indicator visibility is set to "never". Implementation details: - Add PillIndicatorPosition type and setting field - Recreate pill window when position changes for immediate visual feedback - Make settings updates truly optimistic to fix dropdown responsiveness - Add fallback in get_pill_window for reliable window access - Add unit tests for position calculation and mode migration logic - Add frontend tests for RecordingPill and GeneralSettings indicator options Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Includes: - fix(windows): hide console window flash when starting recording - feat: add sound on recording end with toggle option - feat: add recording indicator visibility settings (Never/Always/When Recording) - feat: add recording indicator position setting (Top/Center/Bottom) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…ility The pnpm-workspace.yaml was missing the required `packages` field, causing pnpm commands to fail with "packages field missing or empty" error. This fix adds the root package to the workspace configuration. Also includes Cargo.lock sync for version 1.11.2. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- FFmpeg sidecar: Download x86_64 binaries from evermeet.cx alongside ARM64 - Whisper: Force CPU-only mode on Intel Macs (Metal GPU causes error -6) - Parakeet: Filter out V2 model on Intel (CoreML crashes with SIGFPE) - Parakeet sidecar: Add architecture logging for debugging Intel Macs now work with all Whisper models and Parakeet V3. Parakeet V2 is hidden on Intel due to incompatible CoreML compilation. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Adds 300ms delay after playing the recording start sound before initializing the microphone. This allows the sound to complete before Bluetooth headsets (e.g., AirPods) switch audio modes, which would otherwise cut off the sound. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add comprehensive logging throughout the pill visibility flow to help diagnose issues with the recording indicator appearing/hiding: - Log pill_indicator_mode resolution (stored vs legacy vs default) - Log should_hide_pill decisions with caller location - Log RecordingConfig pill settings when loaded - Log start_recording pill visibility decisions - Log mode changes in save_settings - Log startup pill mode resolution Also makes resolve_pill_indicator_mode pub(crate) for reuse. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
…release build - Fix Parakeet models.rs: Return empty list on Intel Macs since FluidAudio throws ASRError.unsupportedPlatform (requires Apple Neural Engine) - Update release-separate.sh: Add x86_64-apple-darwin build target - Update latest.json generation to include darwin-x86_64 for auto-updater - Add notarization verification for x86_64 builds - Intel Mac users can only use Whisper (CPU-only mode) Note: Parakeet V3 was incorrectly marked as Intel-compatible. FluidAudio explicitly requires Apple Silicon for ALL ASR models.
…anup Some audio devices (especially USB/wireless headsets like Astro A50) can hang indefinitely during stream cleanup on Windows. This causes the app to freeze when stopping a recording. Changes: - Wrap drop(stream) in a separate thread with 1-second timeout - If timeout fires, abandon the hung thread and continue gracefully - Enhanced error callback to trigger stop on device errors (e.g., disconnection) - Added detailed logging for debugging audio device issues When the timeout fires: - App recovers instead of freezing - User sees "no audio recorded" feedback - Recording state properly resets to idle - User can immediately start a new recording Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
12 tasks
|
Hello, is there a way to install a preview version of this? |
…osition - Remove duplicate #[cfg(test)] attribute in tests/mod.rs - Simplify get_available_models() filter (was always returning true) - Fix ESLint no-unused-expressions in RecordingPill.tsx - Add missing pill_indicator_mode/position to test mock - Revert pill edge_offset from 60.0 to original 10.0 - Update unit test expected values for edge_offset change
Owner
sorry, atm no |
The previous approach tried to drop cpal::Stream in a separate thread, but cpal::Stream is not Send (contains Box<dyn FnMut()> callback). New approach: - Pause stream first (stops audio capture immediately) - On Windows: use mem::forget to prevent potential driver hang (some USB/wireless devices like Astro A50 hang indefinitely during drop) - On macOS/Linux: normal drop() which is reliable Resources are reclaimed by OS when process exits on Windows. This prevents app freeze while maintaining proper cleanup on macOS.
Reverts the ring-1 ring-white/30 class that was added to the pill, restoring the original clean black pill appearance without border.
…window shadow - Add ring-1 ring-white/30 to RecordingPill for subtle border definition - Add matching ring styling to FeedbackToast for visual consistency - Add .shadow(false) to toast window to prevent macOS window outline
Replace 3 positions (top/center/bottom) with 6 positions: - top-left, top-center, top-right - bottom-left, bottom-center, bottom-right Changes: - Update PillIndicatorPosition type with 6 options - Update calculate_pill_position() with horizontal + vertical logic - Update GeneralSettings dropdown with 6 options - Default: bottom-center (maintains expected behavior) - Add 7 unit tests for all positions + fallback
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.
Summary
This PR combines and resolves merge conflicts between the following open/closed pull requests:
All features work together without conflicts. This combined PR can be merged in place of the individual PRs.
Features Included
From #56 - Audio Device Timeout Fix (NEW)
From #53 - Intel Mac (x86_64) Support
From #49 - Windows Console Flash Fix
Hides the console window flash that briefly appears when starting a recording on Windows.
From #50 - Sound on Recording End
From #51 - Recording Indicator Settings
Test plan
Tested and working on all three platforms:
Feature tests:
Notes
Parakeet V2's CoreML model causes a
SIGFPE(floating point exception) on Intel Macs due to ARM64-specific model compilation. V3 works on both architectures, so V2 is simply hidden on Intel.🤖 Generated with Claude Code