You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Part of the Control Center scope in epic #459 (Wave 2, item 3 of the epic's UX list) - the piece that would have surfaced #457's dead grants without a code trace.
Scope
A read-only cross-tab inside the /admin/mcp Control Center (#460): which agent / sub-agent currently holds which MCP tool grant, sourced from agent_tool_grants joined with agents, sub-agents, servers, and current verdicts.
Backend: GET /operator/mcp-grants returning all grants with resolved agent/sub-agent names, server name, normalized tool name, and the tool's current verdict + ack state.
Frontend: matrix pane in the Control Center; rows = grant holders (agents, sub-agents grouped under their parent), columns/cells = server:tool with verdict badge. No mutations in v1 (grants stay canvas-managed) except revoke, which reuses the existing edge-delete route.
Scoped to the grant types that exist as of Waves 0/1 (agent + sub-agent). Skill bindings (#456) and plugin grants (#458) extend this matrix in Wave 6, consuming the caller taxonomy from the audit foundation.
Part of the Control Center scope in epic #459 (Wave 2, item 3 of the epic's UX list) - the piece that would have surfaced #457's dead grants without a code trace.
Scope
A read-only cross-tab inside the
/admin/mcpControl Center (#460): which agent / sub-agent currently holds which MCP tool grant, sourced fromagent_tool_grantsjoined with agents, sub-agents, servers, and current verdicts.GET /operator/mcp-grantsreturning all grants with resolved agent/sub-agent names, server name, normalized tool name, and the tool's current verdict + ack state.Scoped to the grant types that exist as of Waves 0/1 (agent + sub-agent). Skill bindings (#456) and plugin grants (#458) extend this matrix in Wave 6, consuming the caller taxonomy from the audit foundation.