fix(mcp): use static Message API to prevent null context crash#1775
fix(mcp): use static Message API to prevent null context crash#1775
Conversation
…McpServerCRUD Replace hook-based useMessage with static Message import from @arco-design/web-react. When the component unmounts during an async MCP operation (toggle/delete/edit), the hook-based contextHolderRef becomes null, causing TypeError on addInstance. The static API is lifecycle-independent and safe to call after unmount. Fixes ELECTRON-D
CI 检查未通过以下 job 在本次自动化 review 时未通过,请修复:
本次自动化 review 暂缓,待 CI 全部通过后将重新处理。 |
Code Review:fix(mcp): use static Message API to prevent null context crash (#1775)变更概述本 PR 修复了 Sentry 错误 ELECTRON-D( 方案评估结论:✅ 方案合理 使用静态 问题清单🔵 LOW — 删除操作错误路径缺少测试覆盖文件: 问题说明:测试覆盖了 其余三个已测试路径( 汇总
结论✅ 批准合并 — 方案正确,无阻塞性问题,仅一处低优先级测试覆盖缺口。 本报告由本地 CONCLUSION: APPROVED |
|
✅ 已自动 review,无阻塞性问题,正在触发自动合并。 |
Summary
useMessagewith staticMessageAPI inuseMcpServerCRUDto preventTypeError: Cannot read properties of null (reading 'addInstance')when the component unmounts during async MCP operationsmessageparameter fromuseMcpServerCRUDsignature and update both callers (ToolsModalContent,McpManagement)Changes
src/renderer/hooks/mcp/useMcpServerCRUD.tsMessagefrom@arco-design/web-reactmessageparameter (hook-baseduseMessagereturn)message.success()/message.error()→Message.success()/Message.error()messagefrom alluseCallbackdependency arrayssrc/renderer/components/settings/SettingsModal/contents/ToolsModalContent.tsxsrc/renderer/pages/settings/ToolsSettings/McpManagement.tsxmessageargument fromuseMcpServerCRUD()calltests/unit/useMcpServerCRUD.dom.test.tsx(new)handleToggleMcpServercallsMessage.erroron sync failurehandleToggleMcpServercallsMessage.erroron remove failurehandleDeleteMcpServercallsMessage.successfor disabled serverhandleEditMcpServercallsMessage.successafter editRelated Issue
Closes #1774
Sentry: ELECTRON-D — 29 occurrences, last seen 2026-03-26
Verification
tsc --noEmit)Test Plan
Message.*call sites in the hook