mirror of
https://gitee.com/mateos/mateclaw.git
synced 2026-09-13 03:13:41 +08:00
Closes #289 — after an MCP server (re)connects, chat queries kept replying "from memory" instead of calling MCP tools. Root cause: agents snapshot their tool set at build time and are cached in AgentService.agentInstances, but MCP server lifecycle changes never invalidated that cache (unlike model-config / tool-guard changes which do). A stale, tool-less agent graph survived until process restart. Changes: - Add McpServerChangedEvent; McpServerService publishes it on connect / disconnect / reconnect / delete / (re)connect-failure / batch refresh / startup init. AgentService listens and calls refreshAllAgents(), so the next turn rebuilds against the live MCP tool set. Also closes the boot race where the web server accepts requests before the @Order(200) MCP init runner finishes. - Make create/update/toggle connect asynchronously on a dedicated pool ("mcp-connect") so a slow/unreachable server can no longer freeze the admin request; status returns immediately as "connecting". - UI: render the new "connecting" status (pulsing amber dot), show a friendly "connecting in background" toast, and poll until the status settles (window widened to ~40s to outlast the default connect timeout). - UI: MCP config modal no longer closes on outside/backdrop click — only the × and Cancel buttons close it, so an accidental click can't discard unsaved config. Verified E2E: ckjia-shopping (参考价) MCP server connected at runtime with no backend restart; the cached 通用助手 agent immediately enabled and called ckjia_shopping_recommend, returning real product cards. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| src | ||
| Dockerfile | ||
| pom.xml | ||
| settings.xml | ||