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
Admin route cleanup: Consolidated repeated pagination, configuration, adapter lookup, reload-job, and API-key state handling. Adapter operations now avoid repeated directory scans, and independent admin lookups run concurrently. Cost-report API-key labels use targeted, paginated, deduplicated queries while preserving suffix-collision handling. Adapter-reference detection (used by adapter delete) and adapter capability checks (template reload / test-query eligibility) moved out of the route layer into the adapter-config and capabilities modules, removing a duplicated inline check. A spike into the admin YAML editors (adapters/MCP/config.yaml) found the one genuinely shared primitive already shared and the rest genuinely different granularities, so no further unification there. mcp.py's list_mcp_servers now resolves every HTTP-transport server's OAuth status concurrently via asyncio.gather instead of one at a time — and FileTokenStorage's file reads/writes (services/mcp_oauth_token_storage.py) now run via asyncio.to_thread, since without that the gather didn't actually overlap the blocking file I/O each status check does. The remaining Phase 3 items (MCP config write lock granularity, caching resolved adapter capability tuples, config.py section load/parse redundancy) were each left as-is per their own roadmap wording — none has a triggering condition (frequent/bulk writes, measured latency, a tight-loop caller) that has actually occurred. No API behavior changes. docs/roadmap/admin-routes-cleanup.md is now complete.
Bug Fixes
Code block chunking: Fixed fenced-code detection for prose containing backticks, tilde fences, and nested or unmatched fences. Streaming chunking also respects longer backtick fences instead of closing them early.