CedarCopilot wants to merge 1 commit into staging from fix/skip-agent-runs-for-warmup-traffic
Live on prod, no production signal yet
Strict CloudWatch fallback found 22 recent prod failure log lines for mirror.upsertEmailThread failed (Failed query: insert into \), but the same failure had 3 log lines in the comparable pre-deploy baseline. Libra is not blaming this PR intent without a post-deploy increase or.
Strict CloudWatch fallback saw 34,651 success-shaped log lines matching calendar, meeting, meetings, but no tied operation was present, so Libra is not calling this working.
Libra has verdicts on 0 of 2 tracked behaviors on prod; 2 are still being checked. Libra checks hourly for 3 days after each deploy.
Five follow-on commits to the coaching work merged in #2581:
coach-meeting runs on every call, coach-weekly on Tuesdays.apps/mail/tests/components/markdown-prose-classes.test.ts covers the shared prose classes.apps/server/src/services/coaching/__tests__/coaching-fences.test.ts covers the fence parsing.🤖 Generated with Claude Code
This PR activates Pirros coaching agents, publishes the coaching document tree, adds shared markdown typography, and updates moment-card rendering.
The PR is not safe to merge until customer publication is made reproducible, trigger insertion validates success, and moment cards preserve their stored deal label.
The publishing command can leave Pirros with a partially written or stale coaching tree, activation can claim success without adding triggers, and historical moment headers can lose their durable deal identity.
Files Needing Attention: apps/server/src/scripts/write-coaching-suite.ts, apps/server/src/scripts/activate-coaching-pirros.ts, apps/mail/modules/documents/coaching/MomentFenceNode.tsx
| Filename | Overview |
|---|---|
| apps/server/src/scripts/write-coaching-suite.ts | Generalizes the publisher to arbitrary targets, but customer publication depends on undocumented temporary files and can commit a partial tree. |
| apps/server/src/scripts/copy-coaching-to-pirros.ts | Immediately publishes the full suite into Pirros without validating source artifacts or using a dry-run boundary. |
| apps/server/src/scripts/activate-coaching-pirros.ts | Authors the two coaching subagents and wires their triggers, but silently reports success if the exact global-block insertion anchor is absent. |
| apps/mail/modules/documents/coaching/MomentFenceNode.tsx | Improves moment-card typography and adopts ConversationBadge, but loses the persisted deal-name fallback for stale conversations. |
| apps/mail/components/markdown-prose-classes.ts | Centralizes document typography and moves optional section spacing into authored markdown. |
| apps/mail/components/markdown-editor.tsx | Reuses the shared prose classes; one changed StarterKit property violates repository indentation. |
| apps/mail/components/read-only-markdown-view.tsx | Reuses the same prose-class source as the editor to prevent rendering drift. |
| apps/server/src/services/playbook/agent-defaults/index.ts | Registers both coaching agents as explicit opt-in, non-default system agents. |
Libra has not measured any production surfaces for this change yet.