rowboat/apps/x/packages/core/src
gagan 08a4077d43
Meeting prep: attendee notes + proactive 6h-ahead prep briefs (#636)
* feat(meetings): inline meeting prep under next meeting

Resolve a meeting's attendees against the knowledge base and render each
attendee's existing person.md inline beneath the next upcoming meeting in
the Meetings view. Deterministic (email-exact match, then unambiguous
name/alias), no LLM in the hot path.

- core: resolveMeetingPrep() + meeting-prep:resolve IPC
- renderer: notes-first rows with expandable person.md; unmatched attendees
  collapse into a 'no notes yet' row with a Create note action that hands
  off to the Copilot
- prep re-resolves when a People note changes

* feat(meetings): per-meeting prep toggle

Add a Prep toggle to every eligible meeting row, not just the next one.
The next meeting still auto-expands; other meetings resolve their attendee
notes lazily when their toggle is opened. All-day and solo events get no
toggle.

* feat(meetings): org matching, cached index, and field-bleed fix

#2 Matching: resolve the meeting's external companies from attendee email
domains (and matched people's Organization field), excluding the user's own
domain, and surface those org notes in a Companies section. Normalize display
names (strip '(via ...)' suffixes) before name/alias matching.

#3 Perf: meeting prep reads a cached knowledge index instead of rescanning the
whole knowledge dir on every resolve; invalidated whenever a file under
knowledge/ changes (wired to the workspace watcher).

Fix: extractField in the knowledge index consumed newlines after the label, so
an empty field (e.g. **Role:**) bled the next line's value. Restrict it to
spaces/tabs so empty fields resolve to undefined. Also strip the folder prefix
from link targets for display (Organizations/Rowboat Labs -> Rowboat Labs).

* feat(meetings): proactive prep notes generated 6h ahead

Generate a meeting prep note ~6h before each meeting and surface its brief
in the prep card.

- Generator (meeting_prep_brief.ts): assembles roster + 'last time' recap
  (extracts the prior instance's Action items) + agenda, ordered by meeting
  type (recurring -> recap first, one-off -> agenda first), then one model
  call for a 'what matters' brief. Writes knowledge/Meetings/prep/<slug>-<date>.md
  with eventId/recurringEventId frontmatter. Reuses the summarizeMeeting LLM
  path (configured model, useCase: meeting_prep).
- Scheduler (meeting_prep_scheduler.ts): calendar-aware tick (5m), generates
  prep within the 6h lead window, state file dedupes, self-heals on changes.
- Card: shows the brief (bulleted, compact) above a People list whose rows
  link out to each person's note instead of rendering it inline. Generated
  prep notes are kept out of the past-notes table.

* chore(meetings): poll prep scheduler every 15m instead of 5m
2026-07-02 00:35:35 +05:30
..
account use rowboat model gateway when logged in 2026-03-12 23:29:42 +05:30
agent-schedule add posthog analytics for llm usage and auth events 2026-04-28 19:53:40 +05:30
agents fix: suppress notification spam on app re-open (#623) 2026-06-24 01:36:06 +05:30
analytics Meeting prep: attendee notes + proactive 6h-ahead prep briefs (#636) 2026-07-02 00:35:35 +05:30
application fix: suppress notification spam on app re-open (#623) 2026-06-24 01:36:06 +05:30
auth Drive (#583) 2026-06-23 03:13:58 +05:30
background-tasks fix: suppress notification spam on app re-open (#623) 2026-06-24 01:36:06 +05:30
billing feat(billing): consume plan variant catalog 2026-06-19 16:52:22 +05:30
code-mode fix codex unresponsive 2026-06-30 22:28:15 +05:30
composio feat: native google sign-in for signed-in users 2026-05-05 14:29:13 +05:30
config feat: add user-configurable notification settings (#601) 2026-06-11 19:43:26 +05:30
di add code mode: coding-agent workspace with sessions, direct/Rowboat drive, diffs, and worktrees 2026-06-12 23:57:44 +05:30
events send LLM use-case metadata through Rowboat gateway 2026-05-20 07:11:06 +05:30
filesystem Refactor builtin file tools beyond workspace scope 2026-05-25 16:21:51 +05:30
knowledge Meeting prep: attendee notes + proactive 6h-ahead prep briefs (#636) 2026-07-02 00:35:35 +05:30
local-sites Iframe (#502) 2026-04-18 12:10:40 +05:30
mcp remove default exa server 2026-03-19 18:46:08 +05:30
migrations feat: native google sign-in for signed-in users 2026-05-05 14:29:13 +05:30
models fix(onboarding): filter non-chat models from provider list using models.dev 2026-06-22 12:49:48 +05:30
pre_built email reply all and first name signoff 2026-06-20 02:32:08 +05:30
runs Show previous chats related to the workspace in the workspace section. 2026-06-29 12:27:43 +05:30
schedule feat: background tasks 2026-05-12 17:43:25 +05:30
search Add global search across knowledge and chats 2026-02-18 18:08:24 +05:30
security Add run-level auto permission mode 2026-06-03 07:58:04 +05:30
services code clean up 2026-02-06 23:17:32 +05:30
slack feat: ship Slack as a knowledge source, hardened for production (#596) 2026-06-17 12:52:27 -07:00
voice fix workdir everywhere (#475) 2026-04-10 10:40:46 +05:30
workspace add code mode: coding-agent workspace with sessions, direct/Rowboat drive, diffs, and worktrees 2026-06-12 23:57:44 +05:30
index.ts voice mode with TTS input/output 2026-03-13 10:39:05 +05:30