CedarCopilot wants to merge 0 commits into staging from feat/slack-style-reactions
Live on prod, no production signal yet
Strict CloudWatch fallback found 1 prod failure log lines for [MEETING_NOTES_WEBHOOK] Error processing webhook (AskElephant webhook payload must contain at least one attendee with a valid email address), but this domain-wide failure family is not tied to this intent.
Strict CloudWatch fallback saw 92 setup or missing-connection failure log lines matching auth, login, session, token, but that does not prove the deployed behavior is broken for connected users.
OTEL fallback saw 87,188 prod spans for the repo/env since deploy, but 2,507 were errors and the intent has no concrete surface to attribute them to.
Strict CloudWatch fallback found 1 prod failure log lines for [MEETING_NOTES_WEBHOOK] Error processing webhook (AskElephant webhook payload must contain at least one attendee with a valid email address), but this domain-wide failure family is not tied to this intent.
Strict CloudWatch fallback found 1 prod failure log lines for [MEETING_NOTES_WEBHOOK] Error processing webhook (AskElephant webhook payload must contain at least one attendee with a valid email address), but this domain-wide failure family is not tied to this intent.
Strict CloudWatch fallback found 87 prod failure log lines for [UpdateExternalCrmWorkflow] Driver update failed (Step updateOpportunityField failed: HTTP 400: [{\), up from 42 in the comparable baseline, but this domain-wide failure family is not tied to this intent.
single_user
Libra has verdicts on 0 of 9 tracked behaviors on prod; 9 are still being checked. Libra checks hourly for 3 days after each deploy.
Table documents and the Google Drive surface, plus the Slack-style reactions work this branch is named for. 92 commits since the last merge from here (#2519).
The most recent commits are review follow-ups on the External drives / output-cell work:
invalidateFiles dropped only drive.listMount, so a file pinned from the new virtual External drives section stayed invisible for the query's 60s staleTime.DriveSection had no error branch, so a FORBIDDEN from assertScopeAccess/requireDriveService rendered as "Nothing linked yet , use Add file to pick one." A failure that reads as an invitation.encodeMentionsFromEditing matched handles with @[\w.-]+, so a Slack label containing a space (<@U123|Brock Smith>) round-tripped to plain text and the ping was silently dropped.message onto an email payload that reads body.slackTextToPlain no longer runs over non-Slack output kinds , it was stripping *asterisks* and rewriting <…> in email subjects and filenames.aria-label/autoFocus the editor's textarea lost; the Add-file control is keyboard-reachable rather than hover-mounted.drive.listForConversation and listMount now share one driveListing instead of being near-copies.admin-documents: dropped a passthrough wrapper and corrected a load-bearing comment , the reader matches userId IS NULL OR userId = me, so the bug was invisibility to teammates, not to the author.Three fixes needed to make CI pass at all:
fix(ci) , the branch was red repo-wide under oxlint@1.78.0 --deny-warnings, the exact CI gate. Includes a trap worth noting: prefer-array-find wanted filter(Boolean).pop() rewritten to find, which would have flipped an export filename from the last path segment to the first.fix(cli) , drive search called its procedure with { query } when the input is { aliases: string[] }. It never type-checked and would have failed zod validation on first use. @zero/server now type-checks clean.fix(tables) , the staging merge brought two new crm_conversations writers and the invalidation inventory guard caught them. Both set aopId, which looks structural but isn't: conversation.aopName is a bindable path that resolves through that exact column's join, so a bound cell would have gone stale with nothing to refresh it. Wired rather than exempted, matching setConversationAop on the same column. Also dropped a now-stale exemption for conversation-index.ts, which staging deleted in d3df7f1a3.| Check | Result |
|---|---|
oxlint@1.78.0 --deny-warnings | clean repo-wide |
pnpm deps:check | no violations (1513 modules, 7854 deps) |
pnpm --filter @zero/server run types | clean |
pnpm --filter @zero/mail run types | clean except one pre-existing calendar/LinkifiedEventText.tsx DOM-lib error (CI does not run tsc) |
Server Vitest src/ | 6956 passed after the fix(tables) commit |
| Mail Jest (full suite) | 254 suites, 2385 passed, 0 failed |
Three suites were already failing before this branch's follow-up work , verified by running them in a detached worktree at 48f66ce00. In each case the component had moved deliberately and the expectation was never updated, so they were asserting a UI that no longer exists rather than catching a regression. Tests only, no behaviour change:
| Suite | Was | Now |
|---|---|---|
AgentFilesGroup | looked for a button "Show <agent> files" | f6489d0c7 renamed it to "Show archived" |
TableDocumentCard | asserted the raw path as visible text, clicked an "Open" control | the row shows the filename with the |
Libra has not measured any production surfaces for this change yet.