CedarCopilot wants to merge 1 commit into main from staging
Live on prod, no production signal yet
OTEL fallback found no prod spans matching ActiveViewDisplay ArtifactDeadEnd since deploy.
OTEL fallback found no prod spans matching ActiveViewDisplay channelChat lazy import since deploy.
Verification reached its 130s outer budget before the verifier returned. Libra is keeping this intent verifying until the next check.
Verification reached its 120s wall-clock budget before a tied verdict. Libra is keeping this intent verifying until the next check.
Verification reached its 120s wall-clock budget before a tied verdict. Libra is keeping this intent verifying until the next check.
No production telemetry is emitted by the client-side DayColumn or DraggableCalendarEvent rendering/geometry paths: the targeted query found 0 matching spans since 2026-08-28T06:34:11Z. Calendar backend activity was present (process_calendar_event_sync_only: 906 successes, 9.
unknown
unknown
unknown
unknown
unknown
unknown
unknown
unknown
unknown
Libra has verdicts on 0 of 14 tracked behaviors on prod; 14 are still being checked. Libra attributed 9 failures to this change at medium confidence and is still confirming them. Libra checks hourly for 3 days after each deploy.
This change updates inbox and channel navigation, draft rendering and normalization, desktop meeting-recording packaging, and supporting workflow behavior.
The direct channel-item lookup can attach a saved LinkedIn or WhatsApp draft from a different connected account when the same provider chat ID exists in both accounts. The draft joins must include the account identity before this change is merged.
The artifact upload tool was unavailable after the focused reproduction completed. Its executable source and captured before/after output could not be published as labeled uploaded artifacts.
Not safe to merge until direct channel draft lookup is constrained to the selected account.
One security-impacting defect remains: a provider chat-ID collision can expose a draft associated with a different account.
Files Needing Attention: apps/server/src/services/inbox/feed-containers.ts needs account-scoped joins for both linkedin_chats and whatsapp_chats, plus regression coverage for colliding provider chat IDs.
A cross-account draft disclosure was reproduced in the direct channel-item lookup. Channel containers are scoped by account, but the new LinkedIn and WhatsApp joins retrieve legacy draft rows using only the provider chat ID. When IDs collide across accounts, opening one account's channel can display the other account's draft.
What T-Rex did
### Issue 1
apps/server/src/services/inbox/feed-containers.ts:435-472
**Channel draft join ignores account scope**
`channelItem` selects a channel container by the caller's membership, channel, and provider key, but its LinkedIn and WhatsApp draft joins use only the provider chat ID. Provider chat IDs are scoped to an account, so when the same ID exists under two accounts, the selected container can inherit the other account's saved draft. Join the legacy draft rows on their account identifier as well (`lc.unipile_account_id = c.account_ref` and the corresponding WhatsApp account field) so the opened channel cannot display another account's draft.
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.
Reviews (1): Last reviewed commit: "Merge pull request #2611 from CedarCopil..." | Re-trigger Greptile
Greptile also left 1 inline comment on this PR.
Libra has not measured any production surfaces for this change yet.