Session Isolation Validator
Validate that LibrAgent maintains proper session isolation across all MCP servers and managers.
Validation Rules
Builtin Servers
- Each builtin server implements
BuiltinMCPServertrait - Server state is keyed by session ID
- No
lazy_static!,once_cell!, or globalMutexfor shared state -
get_service_context()returns session-specific data
External MCP Managers
-
HttpSessionManagercreates isolated sessions per agent session -
SessionMCPManagermaintains per-sessionMCPServiceProxyinstances - No singleton patterns that share state across sessions
- Stdio server processes are session-scoped
Frontend
-
AgentSessionContextisolates state per session - No global React state that mixes sessions
- Event listeners for
agent:eventare session-scoped
Audit Commands
# Find potential global state anti-patterns
grep -r "lazy_static\|once_cell\|global\|GLOBAL" src-tauri/src/mcp/
grep -r "static mut\|unsafe" src-tauri/src/mcp/
# Find session ID usage patterns
grep -r "session_id\|sessionId" src-tauri/src/mcp/ | head -50
# Verify MCPServiceProxy instantiation
grep -r "MCPServiceProxy" src-tauri/src/
Key Invariants
- No Global State: Complete isolation prevents cross-session interference
- Stateful Tools: Planning todos, Knowledge items, Browser sessions scoped to session ID
- Session-Specific Workspace: Each agent operates in isolated directory
- Tool State Isolation: Each session gets isolated tool instances