Skip to content

feat: Add meeting detection and fix console warnings - #10

Merged
r3dbars merged 1 commit into
mainfrom
feature/meeting-detection
Jan 4, 2026
Merged

r3dbars merged 1 commit into
mainfrom
feature/meeting-detection

Conversation

@r3dbars

@r3dbars r3dbars commented Jan 4, 2026

Copy link
Copy Markdown
Owner

Summary

  • Meeting Detection: Intelligent detection of calendar events and audio activity to prompt recording when meetings start
  • Console Warning Fixes: Clean up SwiftUI and CoreAudio console warnings
  • Reliability Testing: Add monitoring script for long recording sessions

Changes

Meeting Detection Feature

  • Add MeetingDetector class that monitors:
    • Calendar events (via EventKit)
    • System audio activity patterns
  • Add MeetingDetectedOverlay UI component showing "Meeting detected - Record?" prompt
  • Integrate with PillStateManager for seamless state transitions
  • Add Settings toggle to enable/disable meeting detection (defaults to enabled)

Console Warning Fixes

  • Fix onChange(of: DisplayStatus) action tried to update multiple times per frame by debouncing rapid status updates with Task { @MainActor in ... }
  • Improve CoreAudio cleanup sequence in SystemAudioCapture to minimize internal framework warnings
  • Document expected HALC warnings (cannot be suppressed from user code)

Documentation

  • Add "Expected Console Warnings" section to MEMORY.md explaining:
    • HALC_ShellObject::SetPropertyData - normal during aggregate device creation
    • throwing -10877 - internal format negotiation
    • AudioObjectRemovePropertyListener - cleanup race condition (harmless)

Testing Tools

  • Add monitor-recording.sh script for monitoring long recording sessions

Test Plan

  • Start app and verify meeting detection prompt appears when calendar event is active
  • Test dismiss button hides prompt and starts cooldown
  • Test record button starts recording and dismisses prompt
  • Verify Settings toggle enables/disables meeting detection
  • Run 30+ minute recording and verify no console warnings affect audio quality
  • Verify build compiles without warnings

🤖 Generated with Claude Code

Meeting Detection:
- Add MeetingDetector that monitors calendar events and audio activity
- Add MeetingDetectedOverlay UI component for recording prompts
- Integrate detection with PillStateManager for seamless UX
- Add setting toggle to enable/disable meeting detection

Console Warning Fixes:
- Fix SwiftUI onChange warning by debouncing rapid DisplayStatus updates
- Improve CoreAudio cleanup sequence to minimize internal framework warnings
- Document expected HALC warnings in SystemAudioCapture and MEMORY.md

Also includes:
- monitor-recording.sh script for reliability testing

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@r3dbars
r3dbars merged commit ed48a01 into main Jan 4, 2026
@r3dbars
r3dbars deleted the feature/meeting-detection branch January 4, 2026 19:09
r3dbars added a commit that referenced this pull request Mar 18, 2026
feat: Add meeting detection and fix console warnings
claude Bot pushed a commit that referenced this pull request Sep 23, 2026
Review item #10. When the mail app can't open a support email, the
fallback used NSAlert.runModal(), the pattern 6ca9139 removed from the
duplicate-launch notice because a modal loop can keep Stop from running
during a capture.

Show the same alert's window as a normal floating window and route its
buttons to a callback. A second failure while it's up brings the
existing one forward. Same copy, same buttons, and the clipboard still
only changes on Copy Address. The injectable presentFallback now takes
a completion; tests updated to match.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QEji7nWg5mSyPSXzn3eb85
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants