* script to run note agents separately
* improvements to tags and tagging
* add concurrency to labeling
* fix labeling precision
* skip spam
* higher precision
* split scheduling into meeting and noise
* remove duplicate default tags
* added last update time
* filter candidates
* only programattic skip and last update time
* remove candidates from notes
ensureUserEmail() only tried direct Google OAuth, which doesn't work
when Gmail is connected through Composio. Now tries Composio first.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
When signed in, default assistant to gpt-5.4, knowledge graph agents to
gpt-5.4-nano, inline task agent to gpt-5.4-mini, and meeting notes to
gpt-5.4. Add meetingNotesModel config field. Fix summarize_meeting to
use gateway provider when signed in.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Agent Notes: background memory system that learns from emails, chats, and explicit
saves
- Background service (agent_notes.ts) runs periodically, collecting user-sent
emails, copilot conversation history, and save-to-memory inbox entries
- Agent (agent_notes_agent.ts) processes all sources with workspace tools, deciding
what to update: user.md (timestamped facts), preferences.md (general rules),
style/email.md (writing patterns), and topic-specific files as needed
- save-to-memory builtin tool lets the copilot proactively note preferences during
conversations
- user.md and preferences.md injected into copilot system prompt on every turn;
other files listed for on-demand access
- Agent manages timestamp freshness on user.md: refreshes confirmed facts, removes
stale transient ones
Added logic to spawn the user's login shell to correctly set the PATH environment variable for packaged Electron applications, ensuring access to user-specific binaries and tools. This addresses issues with minimal environment inheritance in packaged apps.
Native meeting transcription that captures mic and system audio, transcribes
live via Deepgram, and generates AI-powered meeting notes.
- Toggle button in toolbar to start/stop meeting transcription
- Dual-stream audio capture: mic (You) + system audio (They) via getDisplayMedia
loopback
- Multichannel Deepgram transcription with diarization for speaker
identification
- Headphone detection with mic gating when using speakers to prevent echo bleed
- Live transcript saved to knowledge/Meetings/rowboat/{date}/ as markdown
- Auto-stop after 2 minutes of silence
- LLM-generated meeting notes prepended above raw transcript on stop
- Calendar event matching: pulls nearby events from calendar_sync to identify
meeting title and participant names
- First-time permissions setup modal on macOS for Screen Recording
- Button only visible when Deepgram is available (logged in or API key
configured)
Added blocks to notes and updated assistant skill with this.
Image blocks — images with alt text and captions
Embed blocks — inline YouTube videos, Figma designs, or link cards
Chart blocks — line, bar, and pie charts from inline data or JSON files
Table blocks — styled data tables with named columns