CedarCopilot wants to merge 1 commit into main from staging
Live on prod, no production signal yet
OTEL fallback found no prod spans matching conversation-read search-semantic / SearchToolInputSchema since deploy.
OTEL fallback found no prod spans matching conversation-read tool instructions since deploy.
OTEL fallback found no prod spans matching pickActiveDeal / conversation CRM badges since deploy.
OTEL fallback found no prod spans matching linkExternalCrmDeal via createAndLinkEvents, assignEventToConversation, and external CRM execution since deploy.
OTEL fallback found no prod spans matching processCrmDealReconciliation / [CRM_RECONCILE] since deploy.
Only 18 prod OTEL spans matching handleExecuteMeeting reached Libra since the deploy, below the 20-span floor for calling a change verified. Nothing is failing; there is not yet enough traffic to confirm it.
unknown
unknown
unknown
unknown
unknown
unknown
unknown
unknown
unknown
unknown
unknown
single_user
unknown
unknown
Libra has verdicts on 0 of 8 tracked behaviors on prod; 8 are still being checked. Libra attributed 14 failures to this change at medium confidence and is still confirming them. Libra checks hourly for 3 days after each deploy.
This change expands Slack channel linking and shared-channel webhook routing, along with CRM and document-processing updates. Runtime checks reproduced two channel-availability failures: shared-channel admission data can be reused across unrelated Slack workspaces with colliding channel IDs, and linking can list a bot's channels instead of the requested user's channels when the user token is unavailable. These failures can prevent valid automations and channels from being selected.
Not safe to merge until Slack channel-team caching is isolated by workspace context and user membership listing stops falling back to bot credentials.
Both failures were reproduced by focused runtime harnesses that exercised the production dispatch and channel-listing functions, with comparison cases confirming the expected behavior when the triggering condition is absent.
Files Needing Attention: apps/server/src/services/playbook/playbook-webhook-sources.ts and apps/server/src/services/integrations/slack/slack-api.ts.
What T-Rex did
General comment
Channel-team cache leaks across unrelated Slack workspaces with colliding channel IDs
resolveChannelTeams keys the cache exclusively by channelId at line 366 despite the Slack lookup result being obtained through a candidate owner's workspace-scoped credentials and used as workspace authorization proof. The cached read at lines 368-371 bypasses Slack lookup for B.Libra has not measured any production surfaces for this change yet.