From 07578561873625c381cb3ea845b59df0a97bb178 Mon Sep 17 00:00:00 2001 From: slhafzjw Date: Fri, 2 Jan 2026 17:20:12 +0800 Subject: [PATCH] feat(LocalRunnerClient): support deleting *.desc.json in DescMcpServer --- .../core/action/runner/LocalRunnerClient.java | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/Partner-Main/src/main/java/work/slhaf/partner/core/action/runner/LocalRunnerClient.java b/Partner-Main/src/main/java/work/slhaf/partner/core/action/runner/LocalRunnerClient.java index aac00d5b..b37e9d79 100644 --- a/Partner-Main/src/main/java/work/slhaf/partner/core/action/runner/LocalRunnerClient.java +++ b/Partner-Main/src/main/java/work/slhaf/partner/core/action/runner/LocalRunnerClient.java @@ -926,7 +926,29 @@ public class LocalRunnerClient extends RunnerClient { @Override @NotNull protected LocalWatchServiceBuild.EventHandler buildDelete() { - return null; + return (thisDir, context) -> { + // 排除被删除文件名称不符合要求的事件 + String fileName = context.getFileName().toString(); + if (!normal(fileName)) { + return; + } + + // DELETE 事件发生后,需要移除对应的 descCache 条目; + // 如果存在对应的 info,也需要将其中的额外信息进行重置,只保留 Tools 自身的信息 + descCache.remove(context.toUri().toString()); + String actionKey = fileName.replace(".desc.json", ""); + if (existedMetaActions.containsKey(actionKey)) { + resetMetaActionInfo(existedMetaActions.get(actionKey)); + } + }; + } + + private void resetMetaActionInfo(MetaActionInfo info) { + info.setIo(false); + info.getTags().clear(); + info.getPreActions().clear(); + info.getPostActions().clear(); + info.setStrictDependencies(false); } @Override