Libra CodeHub

CedarCopilot/cedar-mail

Branch: staging

fix(strategist): remove the Tier-1 noise guard

merged#2692CedarCopilot

CedarCopilot wants to merge 1 commit into staging from fix/strategist-rsvp-decline-signal

Live on prod, no production signal yetTimeline and evidence
  1. Opened
    Sep 6, 2026, 12:01 PM
  2. Sep 6, 2026, 12:16 PM
  3. Merged
    Sep 6, 2026, 12:22 PM
  4. Live on prod
    Sep 6, 2026, 12:22 PM
  5. Observed 3 hours
    Sep 6, 2026, 12:22 PM
  6. Unobserved

    Live on prod, no production signal yet

    Sep 6, 2026, 12:22 PM
  7. Pipelines steady after this deploy
    Sep 6, 2026, 12:22 PM

Behaviors Libra is checking

Strategist runs for bare calendar RSVP emails, including RSVP messages with confirmed-empty stored snippets, instead of suppressing them with the Tier-1 noise guard.Not checked
prod
Strategist runs for Cedar-generated Slack delivery-failure alert emails instead of deterministically skipping them as non-deal noise.Not checked
prod

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.

Summary

This started as a narrower fix (a bare calendar Declined: was being treated as noise the same as Accepted:) but on reflection the whole Tier-1 guard doesn't belong here , removing it entirely.

No other system agent (crm-updater, next-steps, drafter, inbound-email-notifier) has a hand-maintained pattern-match guard like this. They all rely on the model's own judgment to recognize noise cheaply, since they're already fed event content directly rather than needing forced reads. Strategist's own prompt (agent-defaults/strategist.ts, "Each run" step 0, added in #2691) already covers the exact same two cases via judgment , "an automated system/tooling notification" and "a scheduling accept with no message content" are both named explicitly , so the code-level guard was redundant with a check that already works, not filling a real gap.

It was also the source of both bugs raised against this branch: an unmatched-event edge case Greptile caught on #2691, and the Declined-RSVP issue that started this PR. A hardcoded regex is exactly the kind of thing that quietly drifts wrong in a way a model's own judgment doesn't.

Net effect of removing it: those two noise categories (Cedar's own delivery-failure alerts, bare calendar accepts) go from costing 0 LLM calls to costing 1 , Tier 2's judgment pass still catches them, just not for free anymore. That's exactly how every other agent in the fleet already operates.

Removes isNonDealSystemOrCalendarNoise, its two supporting constants, its call site in strategist-updates.ts, its two comment references in runSubagentTool.ts, and its now-obsolete test file.

Test plan

  • pnpm --filter @zero/server run types , 0 errors
  • pnpm exec vitest run across touched test dirs , 285 passed, 0 failed
  • oxlint --deny-warnings , exit 0 (the check that failed CI on #2691 initially)

šŸ¤– Generated with Claude Code

https://claude.ai/code/session_01E3AhwqADAFeqe9wEhz6Mk7

Show production surfaces and changed-file mapping

Production surfaces

Libra has not measured any production surfaces for this change yet.

Changed files → surfaces

  • apps/server/src/mastra/tools/event-execution/runSubagentTool.tsno production surface mapped
  • apps/server/src/mastra/utils/__tests__/strategist-updates-tier1-guard.test.tsno production surface mapped
  • apps/server/src/mastra/utils/strategist-updates.tsno production surface mapped