CedarCopilot wants to merge 4 commits into staging from feat/agent-org-admin-access
Live on prod since Fri, 2 of 10 surfaces working
Verification reached its 120s wall-clock budget before a tied verdict. Libra is keeping this intent verifying until the next check.
Verification reached its budget before a verdict.
Verification reached its 130s outer budget before the verifier returned. Libra is keeping this intent verifying until the next check.
Verification reached its 120s wall-clock budget before a tied verdict. Libra is keeping this intent verifying until the next check.
The available telemetry shows no executions of the target-scoped MCP grant or connection-scope procedures since deployment; only unrelated agent tRPC traffic was observed. This is insufficient positive evidence to verify the behavior, so the result is inconclusive.
Since the 2026-09-11T17:53:34Z deploy, production telemetry contains no matching previewPublish, publishToOrg, unpublishFromOrg, or agent.delete mutation spans or CloudWatch operation logs (0 observed). There is positive agent verification traffic—78 agent.list calls and 11.
internal_only
internal_only
internal_only
internal_only
internal_only
internal_only
internal_only
internal_only
Libra measured 2 of 10 production surfaces on prod. 4 surfaces had under 20 requests, so Libra has not judged them; 4 surfaces had no requests at all. Libra checks hourly for 3 days after each deploy.
Karim (Adapt Insurance, org admin) reported he still couldn't view a teammate's (Jacob's) agent execution logs or open his Deal Risk agent, even after run-sql was fixed to allow admin reads (yesterday's fix). Root cause: two separate, unrelated gaps.
agent.ts's Agent Workspace router only ever resolved an agentId inside the caller's own AOP set , an org admin got a generic NOT_FOUND regardless of role, because it never went through the authorize() permission authority PR #2749 already proved out for the debug tool.CompanyExplorer's FileEditor makes an unscoped documents.getDoc call that throws FORBIDDEN for a teammate's private document before the page ever gets far enough to hit the agent-specific code , the more likely actual source of the "document access error," found during review of the first fix.agent.ts , requireAgent now accepts targetUserId and routes through resolveAgentForAdmin (org-admin gated via authorize()'s subagent_execution:user policy) instead of resolveAgentForCaller when it names someone else. All 31 procedures updated; runNow/createWebhookSource correctly execute as the target, not the calling admin (their own connections/credentials, not the admin's). duplicate stays self-only , its single-userId design has no clean cross-user answer , and now rejects a cross-user targetUserId rather than silently ignoring it (a thermo-review finding on the first commit).AgentView/AgentDocumentView , accept targetUserId as an explicit prop (never read ambiently , both are mounted on surfaces with no admin picker) and thread it into every trpc.agent.* call.CompanyExplorer/PlaybookAopSection/brain-routes.tsx , the file tree already resolves the administered teammate correctly; that owner now rides the URL (brainDocumentPath's new ownerUserId param → ?targetUserId=) into CompanyExplorer's one blocking documents.getDoc call, which already accepted targetUserId server-side.contract.ts , asserts every new agent.* scoped call site actually accepts targetUserId; the documents.getDoc call needed no new assertion (already covered).pnpm --filter @zero/server run types , cleanpnpm --filter @zero/mail run types , cleanrunNow identity-correctness, duplicate rejection (10 tests, agent-router-org-admin.test.ts)agent-router-auth.test.ts, agent-scoped-reads.test.ts (36/36 total)administeredUser contract-coverage test , confirms every new scoped call site is both detectable and asserted (3/3)modules/agents, modules/company, modules/brain Jest suites , 269/269eslint clean on all 10 touched files/thermo-review; findings addressed inline (see commit messages) or noted as deliberate scope boundaries (route-layer authz logic staying in agent.ts rather than a new service , flagged as a follow-up, not blocking)This PR extends the agent workspace and Brain discovery surfaces so organization administrators can inspect and manage a teammate's agents, threads explicit owner scope through agent queries and mutations, and prevents impersonated chat turns from being recorded under the teammate.
The PR is not safe to
| Surface | Requests | Errors | p95 | Users | Verdict |
|---|---|---|---|---|---|
| orchestrator_agent_step | 86 → 67 | 0 → 0 (0%) | 208413 ms → 171212 ms | 31 | Working 67 requests since the deploy with 0 errors (0 errors in the 86-request baseline before it). p95 171212 ms, was 208413 ms. |
| model_chunk On-Event Execution Agent (Understudy) | 63 → 20 | 0 → 0 (0%) | 5 ms → 1 ms | 0 | Working 20 requests since the deploy with 0 errors (0 errors in the 63-request baseline before it). p95 1 ms, was 5 ms. |
| /api/trpc/agentExecutions.getAgentExecutions | 15 → 18 | 0 → 0 (0%) | 9318 ms → 200 ms | 0 | Insufficient traffic 18 requests, under the 20 Libra needs |
| invoke_agent Next Steps and Tasks Manager | 22 → 14 | 0 → 0 (0%) | 643205 ms → 58600 ms | 0 | Insufficient traffic 14 requests, under the 20 Libra needs |
| orchestrator_agent_step | 32 → 9 | 0 → 0 (0%) | 139410 ms → 365450 ms | 6 | Insufficient traffic 9 requests, under the 20 Libra needs |
| model_chunk Automation Agent (Understudy) | 47 → 6 | 0 → 0 (0%) | 3 ms → 1 ms | 0 | Insufficient traffic 6 requests, under the 20 Libra needs |
| model_chunk On-Event Execution Agent (Understudy) | 12 → 5 | 0 → 0 (0%) | 1 ms → 2 ms | 0 | Insufficient traffic 5 requests, under the 20 Libra needs |
| /api/trpc/agent.list | 0 → 3 | 0 → 0 (0%) | not measured → 415 ms | 0 | Insufficient traffic 3 requests, under the 20 Libra needs |
| /api/trpc/agentExecutions.executeFromClientSend | 0 → 2 | 0 → 0 (0%) | not measured → 12935 ms | 0 | Insufficient traffic 2 requests, under the 20 Libra needs |
| invoke_agent Next Steps and Tasks Manager | 0 → 1 | 0 → 0 (0%) | not measured → 80282 ms | 0 | Insufficient traffic 1 request, under the 20 Libra needs |
| /api/trpc/agentExecutions.getAgentExecutions | 8 → 1 | 0 → 0 (0%) | 20979 ms → 5 ms | 0 | Insufficient traffic 1 request, under the 20 Libra needs |
| model_chunk Automation Agent (Understudy) | 3 → 0 | 0 → 0 (0%) | not measured | 0 | No traffic No requests recorded since this deploy. |
| model_chunk Automation Agent (Kimi K3 experiment) | 0 → 0 | 0 → 0 (0%) | not measured | 0 | No traffic No requests recorded since this deploy. |
| /api/trpc/agent.getInvocationSources | 3 → 0 | 0 → 0 (0%) | 3209 ms → not measured | 0 | No traffic No requests recorded since this deploy. |
| /api/trpc/agentExecutions.executeFromClientSend | 0 → 0 | 0 → 0 (0%) | not measured | 0 | No traffic No requests recorded since this deploy. |
| /api/trpc/settings.updateAgentSettings | 2 → 0 | 0 → 0 (0%) | 167 ms → not measured | 0 | No traffic No requests recorded since this deploy. |
| model_chunk Automation Agent (Kimi K3 experiment) | 0 → 0 | 0 → 0 (0%) | not measured | 0 | No traffic No requests recorded since this deploy. |
| /api/trpc/agent.list | 3 → 0 | 0 → 0 (0%) | 12584 ms → not measured | 0 | No traffic No requests recorded since this deploy. |
| /api/trpc/agent.getInvocationSources | 0 → 0 | 0 → 0 (0%) | not measured | 0 | No traffic No requests recorded since this deploy. |
| /api/trpc/settings.updateAgentSettings | 0 → 0 | 0 → 0 (0%) | not measured | 0 | No traffic No requests recorded since this deploy. |