Add native macOS Notetaker and managed Google Calendar connection - #125
Draft
vood wants to merge 5 commits into
Draft
Add native macOS Notetaker and managed Google Calendar connection#125vood wants to merge 5 commits into
vood wants to merge 5 commits into
Conversation
Implement native note navigation, meeting capture and detection, and a Composio-backed calendar connection using the existing AIDictation session. Not-tested: Live Google Calendar consent, system audio, meeting detection, and permission overlay. Production release remains blocked on live verification and the open review findings tracked in issue 124.
22 tasks
Drain system audio outside the writer lock, retain the first capture failure, and deliver final cleanup results into notes. Show save failures in standalone editors and preserve new question drafts when an earlier answer arrives. Validation: 99 macOS tests, signed build, and full Apple audio recovery contract matrix pass. Live meeting and Calendar consent verification remain outstanding.
Keep the recording ID and native writer across pause/resume, close write admission during native transitions, and serialize teardown with engine changes. Fence late transition callbacks and preserve Stop ownership. Resume from the note or overlay; transcribe the full recording on Stop. Validation: 102 macOS tests and full Apple recovery matrix pass. Live microphone/system-audio pause validation and Google Calendar consent remain outstanding.
Keep the original call until its end event, require the exact prompt-started capture for automatic stop, and treat incomplete window scans as unknown. Offer a deferred prompt once recording is available. Filter cached meetings by selected calendar without dropping other saved events while sync is pending. Validation: 108 macOS unit tests and signed development build pass. Live call detection and provider consent remain unverified.
Map stable note recording IDs through AppState, keep expected Stop cancellation harmless, and move tail writes and container close outside the cancellation condition. Latch real native write failures even after their waiter is cancelled, while confirming native close only after the writer releases. Validation: independent review confirmed the four reported blockers addressed; 109 macOS tests, the full Apple recovery matrix, and signed build pass. Live audio and Calendar consent remain unverified.
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.
Adds a native macOS Notetaker with a Notes library, single-click editor navigation, recording controls, transcript/summary/questions, and separate settings. The detected-call card starts a note; the overlay offers pause, resume, stop, and access to the current note.
Pause/resume keeps the same managed recording and writer, with native-attempt ownership checked through AppState. Stop cancellation remains harmless, native write failures survive cancelled waiters, and file I/O does not hold the cancellation lock. Notes receive final cleanup results and show save failures in every editor window.
Google Calendar uses Composio Connect Links through the existing AIDictation account. The Mac never holds provider credentials. Calendar selection filters cached events during failed refreshes and after relaunch. Call detection preserves the original call until its end event, treats incomplete window scans as unknown, and only automatically stops the exact recording started by its prompt. Companion backend: writingmate/speak-it-fast#66.
Validation: signed Developer ID development build, 109 macOS tests, and full Apple audio recovery contract matrix pass. Independent review confirmed the reported pause/Stop blockers are addressed.
Draft: Composio provider configuration, actual managed consent/scopes/callbacks/sync, and live microphone/system-audio/detection/permission-overlay checks remain unverified. Free-tier usage and production sync costs need validation before rollout. Neither the native app feature nor backend is deployed; production release and launch blog are still pending.
Tracks #124 without closing its acceptance checklist.