Computing which tools got revoked mid-conversation now fails safe to an empty list instead of throwing an error
A new function computes which tools have been revoked partway through a conversation, for example when an MCP server (an external tool provider) disconnects. If this computation hits an error, it now falls back to reporting no revoked tools instead of letting the exception propagate. The underlying revocation logic also gained an additional fallback lookup for figuring out why a tool was revoked.
This avoids an unrelated error crashing a turn just because Claude Code was checking for revoked tools; worst case, a revoked tool is briefly treated as still available rather than the whole operation failing.