Libra CodeHub

CedarCopilot/cedar-mail

Branch: staging

[2026-08-31] merging staging to main

merged#2640CedarCopilot

CedarCopilot wants to merge 1 commit into main from staging

Live on prod, no production signal yetTimeline and evidence
  1. Opened
    Aug 31, 2026, 9:40 PM
  2. Aug 31, 2026, 9:45 PM
  3. Merged
    Aug 31, 2026, 10:26 PM
  4. Live on prod
    Aug 31, 2026, 10:26 PM
  5. Observed 2 days
    Aug 31, 2026, 10:26 PM
  6. Pipelines steady after this deploy
    Aug 31, 2026, 10:26 PM
  7. Unobserved

    Live on prod, no production signal yet

    Sep 3, 2026, 9:43 PM

Behaviors Libra is checking

The drafter document backfill creates the missing subagents/drafter.md for selected existing accounts, activating the drafter instructions for their subsequent drafting runs.Degradedlow confidence

Strict CloudWatch fallback found 1 prod failure log lines for [PLAYBOOK_WEBHOOK_QUEUE] Error (Failed query: update \) in the last 24h while checking /drafter.md, playbook, applyconfigchangetool, readconnectionsettingstool, reviewconversationfanout.

prod, checked Sep 3, 2026, 9:41 PM
The lost-before-meeting-preps backfill schedules a replacement preparation for each affected upcoming rescheduled meeting using the correct time-based dedupe key, then retires all terminal rows under the stale key.Inconclusivelow confidence

Verification reached its 130s outer budget before the verifier returned. Libra is keeping this intent verifying until the next check.

prod, checked Sep 3, 2026, 8:43 PM
Organization administrators can read and modify other members' playbooks and configuration through the configuration tools, while non-administrators remain limited to their permitted scope.Inconclusivelow confidence

Unable to complete the production verification because the remaining telemetry queries did not establish the required admin/non-admin cross-user authorization evidence or rule out tied failures.

prod, checked Sep 3, 2026, 8:45 PM
The drafter reference backfill adds the drafter ref and gate prose to each selected any-event trigger while retiring a live deal-drafter ref so the new drafter is dispatchable by name without duplicate dispatch.Inconclusivelow confidence

Verification reached its 120s wall-clock budget before a tied verdict. Libra is keeping this intent verifying until the next check.

prod, checked Sep 3, 2026, 9:43 PM
The label-rules cleanup operation removes only unambiguous retired Cedar/Task prose after explicit acknowledgement, while custom, mixed, unreadable, or ambiguous sections remain untouched and apply mode stays blocked otherwise.Not checked
prod
Secrets in MCP tool arguments are redacted before telemetry previews and chat or Slack intent records while the underlying tool handler continues receiving the original values.Not checked
prod

Failures attributed to this change

error @ GET /<redacted-token>/<id>.jsonIntroducedmedium confidence

unknown

prod, first seen Aug 31, 2026, 10:36 PM
error @ GET /<redacted-token>/<id>.jsonIntroducedmedium confidence

unknown

prod, first seen Aug 31, 2026, 10:59 PM
error @ GET /<redacted-token>/<id>.jsonIntroducedmedium confidence

unknown

prod, first seen Aug 31, 2026, 11:26 PM
error @ GET /<redacted-token>/<id>.jsonIntroducedmedium confidence

unknown

prod, first seen Aug 31, 2026, 11:26 PM
error @ GET /<redacted-token>/9245187.jsonIntroducedmedium confidence

unknown

prod, first seen Sep 1, 2026, 4:26 AM
error @ GET /<redacted-token>/<id>.jsonIntroducedmedium confidence

unknown

prod, first seen Sep 1, 2026, 4:26 AM
error @ GET /<redacted-token>/<id>.jsonIntroducedmedium confidence

unknown

prod, first seen Sep 1, 2026, 4:26 AM
error @ GET /<redacted-token>/9442322.jsonIntroducedmedium confidence

unknown

prod, first seen Sep 1, 2026, 4:26 AM
error @ GET /<redacted-token>/9830025.jsonIntroducedmedium confidence

unknown

prod, first seen Sep 1, 2026, 4:26 AM
error @ GET /<redacted-token>/9637967.jsonIntroducedmedium confidence

unknown

prod, first seen Sep 1, 2026, 4:26 AM
error @ GET /<redacted-token>/<id>.jsonIntroducedmedium confidence

unknown

prod, first seen Sep 1, 2026, 10:26 AM
error @ GET /<redacted-token>/<id>.jsonIntroducedmedium confidence

unknown

prod, first seen Sep 1, 2026, 10:26 AM
error @ GET /<redacted-token>/<id>.jsonIntroducedmedium confidence

unknown

prod, first seen Sep 1, 2026, 10:26 AM
Customer impact is not proven from the retained evidence. 0 hits · no retained affected-user count · no retained trace sample.Introducedmedium confidence

single_user

prod, first seen Sep 6, 2026, 7:56 PM

Libra has verdicts on 0 of 11 tracked behaviors on prod; 11 are still being checked. Libra has 1 low-confidence degraded verdict it is still confirming. Libra attributed 14 failures to this change at medium confidence and is still confirming them. Libra checks hourly for 3 days after each deploy.

Greptile Summary

This change expands drafter rollout tooling and account configuration management. A focused external MCP execution confirmed that a caller can override the authenticated account identity when changing MCP connections, allowing cross-account configuration changes. The backfill script also uses relative imports despite the repository rule requiring absolute imports outside apps/server/src.

Confidence Score: 3/5

Not safe to merge until externally initiated MCP configuration writes cannot select another user's identity.

The cross-account mutation path was reproduced with an authenticated external request context and the real configuration dispatch path. The repository import-rule violation is directly present in the new script.

Files Needing Attention: apps/server/src/mastra/skills/account-config/tools/applyConfigChangeTool.ts needs an authenticated-identity boundary; apps/server/scripts/backfill-drafter.ts needs imports aligned with the repository convention.

Security Review

An external MCP caller authenticated as one user can provide another user's ID to systems-write, causing MCP connection authorization and mutation to run as the other user. Bind the acting identity to the authenticated request context, and permit cross-user actions only through an explicit privileged impersonation flow.

T-Rex T-Rex Logs

What T-Rex did

  • T-Rex produced a proof for a posted P1 finding and linked it to the review comment describing the finding.
  • T-Rex captured observed outputs for authenticated user A with no supplied user ID and with supplied user B, and recorded the command used to copy the harness into the artifact directory.
  • T-Rex documented the general contract validation showing how the external MCP server builds the request context from the authenticated identity and forwards raw tool arguments to family tools, including that systems-write forwards an optional caller-supplied userId into apply-config-change.
  • T-Rex confirmed that the passing harness proves the target mutation service receives B when B is supplied, even when the context contains A.

View all artifacts

T-Rex Ran code and verified through T-Rex

Comments Outside Diff (2)

  1. apps/server/src/mastra/skills/account-config/tools/applyConfigChangeTool.ts, line 471-472 (link)

    P1 security Caller identity overrides authentication

    The externally registered systems-write tool forwards its caller-controlled userId into this tool, where it takes precedence over the authenticated request-context user. An external MCP client authenticated

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/.claude/skills/cedar-configuration/cedar-system-knowledge.mdno production surface mapped
  • apps/server/.claude/skills/playbook-authoring/SKILL.mdno production surface mapped
  • apps/server/scripts/backfill-drafter.tsno production surface mapped
  • apps/server/scripts/backfill-lost-before-meeting-preps.tsno production surface mapped
  • apps/server/scripts/cleanup-label-rules.tsno production surface mapped
  • apps/server/scripts/run-backfill-lost-before-meeting-preps.mjsno production surface mapped
  • apps/server/src/cli/playbook-migrate.tsno production surface mapped
  • apps/server/src/mastra/agents/on-event-execution-agent.tsno production surface mapped
  • apps/server/src/mastra/agents/on-event-orchestrator-agent.tsno production surface mapped
  • apps/server/src/mastra/context/values.tsno production surface mapped
  • apps/server/src/mastra/index.tsno production surface mapped
  • apps/server/src/mastra/mcp/external/__tests__/scope-map.test.tsno production surface mapped
  • apps/server/src/mastra/mcp/external/__tests__/tool-call-observability.test.tsno production surface mapped
  • apps/server/src/mastra/mcp/external/scope-map.tsno production surface mapped
  • apps/server/src/mastra/mcp/external/server.tsno production surface mapped
  • apps/server/src/mastra/mcp/external/tool-call-observability.tsno production surface mapped
  • apps/server/src/mastra/skills/account-config/tools/__tests__/apply-systems-change.test.tsno production surface mapped
  • apps/server/src/mastra/skills/account-config/tools/__tests__/applyConfigChangeTool.test.tsno production surface mapped
  • apps/server/src/mastra/skills/account-config/tools/apply-systems-change.tsno production surface mapped
  • apps/server/src/mastra/skills/account-config/tools/applyConfigChangeTool.tsno production surface mapped
  • apps/server/src/mastra/skills/account-config/tools/readConnectionSettingsTool.tsno production surface mapped
  • apps/server/src/mastra/skills/tasks/daily-agenda.tsno production surface mapped
  • apps/server/src/mastra/tools/agenda/__tests__/reviewConversationFanOut.test.tsno production surface mapped
  • apps/server/src/mastra/tools/agenda/reviewConversationTool.tsno production surface mapped
  • apps/server/src/mastra/tools/config/__tests__/configTool.test.tsno production surface mapped
  • apps/server/src/mastra/tools/config/__tests__/workspaceWriteTool.test.tsno production surface mapped
  • apps/server/src/mastra/tools/config/config-read-tool.tsno production surface mapped
  • apps/server/src/mastra/tools/config/config-write-tool.tsno production surface mapped
  • apps/server/src/mastra/tools/config/systems-write-tool.tsno production surface mapped
  • apps/server/src/mastra/tools/config/workspace-write-tool.tsno production surface mapped
  • apps/server/src/mastra/tools/draft-comms/__tests__/sibling-draft-guard.test.tsno production surface mapped
  • apps/server/src/mastra/tools/draft-comms/sibling-draft-guard.tsno production surface mapped
  • apps/server/src/mastra/tools/event-execution/__tests__/crm-updater-enabled-flag.test.tsno production surface mapped
  • apps/server/src/mastra/tools/event-execution/__tests__/draft-tools-sibling-guard.test.tsno production surface mapped
  • apps/server/src/mastra/tools/event-execution/__tests__/drafter-executor-prompt.test.tsno production surface mapped
  • apps/server/src/mastra/tools/event-execution/__tests__/runSubagentTool-drafter.test.tsno production surface mapped
  • apps/server/src/mastra/tools/event-execution/onEventExecutionDraftEmailTool.tsno production surface mapped
  • apps/server/src/mastra/tools/event-execution/onEventExecutionDraftSlackTool.tsno production surface mapped
  • apps/server/src/mastra/tools/event-execution/orchestrator-dispatch-tools.tsno production surface mapped
  • apps/server/src/mastra/tools/event-execution/runSubagentTool.tsno production surface mapped
  • apps/server/src/mastra/tools/research/webSearchTool.tsno production surface mapped
  • apps/server/src/mastra/tools/subagent-tool-allowlists.tsno production surface mapped
  • apps/server/src/mastra/tools/task/__tests__/updateTaskTool.test.tsno production surface mapped
  • apps/server/src/mastra/tools/task/schemas.tsno production surface mapped
  • apps/server/src/mastra/tools/task/taskTool.tsno production surface mapped
  • apps/server/src/mastra/tools/task/updateTaskTool.tsno production surface mapped
  • apps/server/src/mastra/tools/task/user-authored-task-guard.tsno production surface mapped
  • apps/server/src/mastra/utils/__tests__/redact-secrets.test.tsno production surface mapped
  • apps/server/src/mastra/utils/redact-secrets.tsno production surface mapped
  • apps/server/src/mastra/workflows/event-execution/pre-execution-setup.tsno production surface mapped
  • apps/server/src/services/agenda/__tests__/review-effects.test.tsno production surface mapped
  • apps/server/src/services/agenda/__tests__/review-triage.test.tsno production surface mapped
  • apps/server/src/services/agenda/review-effects.tsno production surface mapped
  • apps/server/src/services/agenda/review-triage.tsno production surface mapped
  • apps/server/src/services/aop/__tests__/automations-service.test.tsno production surface mapped
  • apps/server/src/services/aop/automations.tsno production surface mapped
  • apps/server/src/services/aop/linked-deal-output-policy.tsno production surface mapped
  • apps/server/src/services/crm/__tests__/before-meeting-reschedule-after-prep-ran.test.tsno production surface mapped
  • apps/server/src/services/crm/__tests__/dedup-meeting-recordings.test.tsno production surface mapped
  • apps/server/src/services/crm/calendar-events.tsno production surface mapped
  • apps/server/src/services/crm/dedup.tsno production surface mapped
  • apps/server/src/services/enrichment/exa.tsno production surface mapped
  • apps/server/src/services/integrations/mcp/__tests__/manage-mcp-connections.test.tsno production surface mapped
  • apps/server/src/services/integrations/mcp/manage-mcp-connections.tsno production surface mapped
  • apps/server/src/services/mail/inboxes/__tests__/resolve-default-email-account.test.tsno production surface mapped
  • apps/server/src/services/mail/inboxes/inbox-settings-config.tsno production surface mapped
  • apps/server/src/services/notifications/internal/slack-notifier.tsno production surface mapped
  • apps/server/src/services/notifications/types.tsno production surface mapped
  • apps/server/src/services/organizations/__tests__/org-admin.test.tsno production surface mapped
  • apps/server/src/services/organizations/org-admin.tsno production surface mapped
  • apps/server/src/services/organizations/organizations.tsno production surface mapped
  • apps/server/src/services/playbook/__tests__/curated-agenda-migration.test.tsno production surface mapped
  • apps/server/src/services/playbook/__tests__/drafter-review-dispatch.test.tsno production surface mapped
  • apps/server/src/services/playbook/__tests__/drafter-seed.test.tsno production surface mapped
  • apps/server/src/services/playbook/__tests__/golden-output-regression.test.tsno production surface mapped
  • apps/server/src/services/playbook/__tests__/playbook-renderers.test.tsno production surface mapped
  • apps/server/src/services/playbook/__tests__/resolve-playbook-context.test.tsno production surface mapped
  • apps/server/src/services/playbook/__tests__/seed-playbook.test.tsno production surface mapped
  • apps/server/src/services/playbook/agent-defaults/__tests__/agent-defaults.test.tsno production surface mapped
  • apps/server/src/services/playbook/agent-defaults/deal-drafter.tsno production surface mapped
  • apps/server/src/services/playbook/agent-defaults/drafter.tsno production surface mapped
  • apps/server/src/services/playbook/agent-defaults/index.tsno production surface mapped
  • apps/server/src/services/playbook/agent-defaults/next-steps.tsno production surface mapped
  • apps/server/src/services/playbook/backfill/__tests__/drafter-migration.test.tsno production surface mapped
  • apps/server/src/services/playbook/backfill/__tests__/label-rules-cleanup.test.tsno production surface mapped
  • apps/server/src/services/playbook/backfill/curated-agenda-migration.tsno production surface mapped
  • apps/server/src/services/playbook/backfill/deal-drafter-legacy.tsno production surface mapped
  • apps/server/src/services/playbook/backfill/drafter-migration.tsno production surface mapped
  • apps/server/src/services/playbook/backfill/label-rules-cleanup.tsno production surface mapped
  • apps/server/src/services/playbook/backfill/playbook-cohort.tsno production surface mapped
  • apps/server/src/services/playbook/backfill/prose-compare.tsno production surface mapped
  • apps/server/src/services/playbook/playbook-execution-triggers.tsno production surface mapped
  • apps/server/src/services/playbook/playbook-renderers.tsno production surface mapped
  • apps/server/src/services/playbook/playbook-webhook-registration.tsno production surface mapped
  • apps/server/src/services/playbook/resolve-playbook-context.tsno production surface mapped
  • apps/server/src/services/playbook/seed-playbook.tsno production surface mapped
  • apps/server/src/services/task-groups/__tests__/manage-task-groups.test.tsno production surface mapped
  • apps/server/src/services/task-groups/manage-task-groups.tsno production surface mapped
  • apps/server/src/services/task-scheduling/__tests__/update-task-action-data-label.test.tsno production surface mapped
  • apps/server/src/services/task-scheduling/execution.tsno production surface mapped
  • apps/server/src/trpc/routes/__tests__/integrations-mcp-delete.test.tsno production surface mapped
  • apps/server/src/trpc/routes/admin-playbook-migration.tsno production surface mapped
  • apps/server/src/trpc/routes/integrations.tsno production surface mapped
  • apps/server/src/trpc/routes/org-admin.tsno production surface mapped
  • apps/server/src/trpc/routes/task-groups.tsno production surface mapped
  • docs/bug-reports/before-meeting-prep-lost-on-reschedule.mdno production surface mapped
  • docs/changelogs/2026-W36.mdno production surface mapped
  • docs/design/config-service-credentials-and-mcp.mdno production surface mapped
  • docs/design/config-service-inbox-and-task-groups.mdno production surface mapped
  • docs/design/drafter-rollout-baseline.mdno production surface mapped
  • docs/design/drafter-system-agent.mdno production surface mapped