Patch release. Closes the v0.6.4 milestone.
Fixed
-
Auto-recover from legacy session timeout without a restart (#93). In session mode (
use_jwt: false— the 20.15 / DevNet-sandbox default), an expiredJSESSIONIDmakes vManage answer API calls with an HTTP 200 login page instead of a clean 302/401. The MCP server never re-authenticated, so every subsequent tool call returned login HTML and the only fix was a manual restart — confusing LLM agents mid-session.is_session_expired()now also treats a 2xx carrying the vManage login markers as expiry, so the existing retry-once re-login recovers transparently.Hardened after adversarial review: markers are anchored (the
j_security_checkform action, or aurl=/href=redirect towelcome.html) so the read-only HTML device-config endpoint (GET /device/config/html) can't be misread as a login page and discarded; JSON/text successes are rejected by content-type before the body is read; and a persistent expiry (e.g. a concurrent-session limit on shared credentials) surfaces a real error instead of the internal sentinel. JWT mode is unaffected.
Full Changelog: https://github.com/thomaschristory/catalyst-sdwan-super-mcp/blob/main/CHANGELOG.md