- Caller
- User (JWT)
- Service account
- Another agent (A2A)
- Authorization
- Verify token
- Check scopes
- Roles
- Isolation
- User ID from the token
- Own sessions only
- Own memories only
- Allowed
- Agents they may run
- Tools they may call
- Ownership: user identity from the JWT now drives session, memory and trace reads and writes across all 17 database backends - callers can’t pass someone else’s ID.
- Role-based scopes: fixed an authorization bypass where an agent-read token could reach knowledge endpoints, and brought agent-to-agent (A2A) run, stream and cancel under the same scope checks.
- Security reports: took four external reports from triage to verified fixes in a release, including per-tool scope checks on the MCP server.
- File safety: hardened path handling for agent file tools - no escaping the workspace, no reserved or control-character names.
- Tool-level least privilege: read-only agents get read-only tools (for example, Coda’s explorer can’t create or delete git worktrees).
- Guardrails: fixed a case where guardrails were skipped when hooks ran in the background.