CedarCopilot wants to merge 0 commits into main from staging
Not deployed
Libra has no production signal for this change yet because it has not deployed. Libra checks hourly for 3 days after each deploy.
This staging-to-production merge adds Fellow meeting ingestion, durable scheduled-send delivery claims, resilient Redis-backed chat streaming, calendar permission checks, CRM aggregation and repair utilities, taxonomy extraction improvements, and URL-driven layout fixes.
The PR should not merge until calendar mutations fail safely when permissions cannot be determined and chat completion no longer drops final events on a failed drain.
Calendar event-read failures currently bypass the new shared-event permission boundary and can yield misleading success, while the chat tailer can close normally after losing events during its final Redis drain.
Files Needing Attention: apps/server/src/mastra/tools/calendar/modifyCalendarEventTool.ts; apps/server/src/services/chat/chat-stream-tail.ts
| Filename | Overview |
|---|---|
| apps/server/src/mastra/tools/calendar/modifyCalendarEventTool.ts | Adds shared-event permission checks, but lookup failures bypass those checks and can produce misleading successful mutations. |
| apps/server/src/services/chat/chat-stream-tail.ts | Adds retrying, backoff, and resumable SSE delivery, but silently treats a failed final drain as successful completion. |
| apps/server/src/services/chat/chat-stream-store.ts | Reduces Redis request volume by periodically refreshing event-list TTLs through a pipeline. |
| apps/server/src/services/mail/send/scheduled-send-records.ts | Adds an atomic Postgres delivery claim and recovery transitions for scheduled sends. |
| apps/server/src/services/integrations/meetings/fellow.ts | Implements Fellow meeting normalization and ingestion alongside the existing meeting-provider abstraction. |
| apps/server/src/services/crm/conversation-aggregates.ts | Adds SQL-backed conversation pipeline metrics using shared filtering and owner-scope resolution. |
| apps/server/src/services/documents/conversation-repoint.ts | Expands document and related-record repointing used during conversation repair and merges. |
| apps/mail/modules/ux/layout/useBackOrUp.ts | Refines artifact-history tracking so close actions distinguish pushed opens from deep links and replacements. |
### Issue 1
apps/server/src/mastra/tools/calendar/modifyCalendarEventTool.ts:279-289
**Permission lookup fails open**
When the preliminary event read fails, `existingEvent` remains null and the permission guard is skipped, so an attendee's update or deletion proceeds and returns success even when Google applies it only to their private copy. The agent can consequently tell the user that a meeting was moved or cancelled while the organizer and other attendees still see the original event.
### Issue 2
apps/server/src/services/chat/chat-stream-tail.ts:160-172
**Final drain errors close cleanly**
When events arrive between the empty read and the completion check an
Libra has not measured any production surfaces for this change yet.