From f9fcf35dc73b61564a8cddd4bf32e0306fb3e37d Mon Sep 17 00:00:00 2001 From: mateaix <57164338+mateaix@users.noreply.github.com> Date: Sun, 26 Jul 2026 10:56:27 +0800 Subject: [PATCH] chore(memory): backport bundled Mem0 docs source and align plugin code style with repo conventions --- .../java/vip/mate/plugin/mem0/Mem0Plugin.java | 4 +++- .../java/vip/mate/plugin/mem0/Mem0Provider.java | 2 +- .../java/vip/mate/plugin/mem0/Mem0PluginTest.java | 15 ++++++++++----- .../vip/mate/plugin/mem0/Mem0ProviderTest.java | 2 +- .../mate/plugin/bridge/PluginMemoryBridge.java | 3 ++- 5 files changed, 17 insertions(+), 9 deletions(-) diff --git a/mateclaw-plugin-mem0/src/main/java/vip/mate/plugin/mem0/Mem0Plugin.java b/mateclaw-plugin-mem0/src/main/java/vip/mate/plugin/mem0/Mem0Plugin.java index f0454c67..62696403 100644 --- a/mateclaw-plugin-mem0/src/main/java/vip/mate/plugin/mem0/Mem0Plugin.java +++ b/mateclaw-plugin-mem0/src/main/java/vip/mate/plugin/mem0/Mem0Plugin.java @@ -4,6 +4,8 @@ import org.slf4j.Logger; import vip.mate.plugin.api.MateClawPlugin; import vip.mate.plugin.api.PluginContext; +import java.net.URI; + /** * MateClaw plugin entrypoint that registers {@link Mem0Provider} with the * platform's memory subsystem. @@ -94,7 +96,7 @@ public class Mem0Plugin implements MateClawPlugin { private static String maskUrl(String url) { if (url == null || url.isBlank()) return "(unset)"; try { - java.net.URI u = java.net.URI.create(url); + URI u = URI.create(url); String host = u.getHost(); int port = u.getPort(); return u.getScheme() + "://" + host + (port > 0 ? ":" + port : ""); diff --git a/mateclaw-plugin-mem0/src/main/java/vip/mate/plugin/mem0/Mem0Provider.java b/mateclaw-plugin-mem0/src/main/java/vip/mate/plugin/mem0/Mem0Provider.java index f65a99ed..95ea8df7 100644 --- a/mateclaw-plugin-mem0/src/main/java/vip/mate/plugin/mem0/Mem0Provider.java +++ b/mateclaw-plugin-mem0/src/main/java/vip/mate/plugin/mem0/Mem0Provider.java @@ -30,7 +30,7 @@ import java.util.concurrent.Executors; * When {@code ownerKey} is null/blank, both recall and sync are skipped — Mem0 * requires {@code user_id}. * - *
Asynchronous sync: a single-thread virtual-thread-per-task executor is used + *
Asynchronous sync: a single-thread daemon executor is used
* so that bursts of turns don't pile up on the platform's request thread.
*
* @author MateClaw Team
diff --git a/mateclaw-plugin-mem0/src/test/java/vip/mate/plugin/mem0/Mem0PluginTest.java b/mateclaw-plugin-mem0/src/test/java/vip/mate/plugin/mem0/Mem0PluginTest.java
index 3be42abc..b4f0739a 100644
--- a/mateclaw-plugin-mem0/src/test/java/vip/mate/plugin/mem0/Mem0PluginTest.java
+++ b/mateclaw-plugin-mem0/src/test/java/vip/mate/plugin/mem0/Mem0PluginTest.java
@@ -3,13 +3,18 @@ package vip.mate.plugin.mem0;
import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.springframework.ai.chat.model.ChatModel;
+import org.springframework.ai.tool.ToolCallback;
import vip.mate.plugin.api.PluginContext;
import vip.mate.plugin.api.PluginException;
+import vip.mate.plugin.api.channel.PluginChannelAdapter;
import vip.mate.plugin.api.memory.PluginMemoryProvider;
+import vip.mate.plugin.api.search.PluginSearchProvider;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.atomic.AtomicReference;
+import java.util.function.Supplier;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
@@ -132,10 +137,10 @@ class Mem0PluginTest {
// The remaining methods are not used by Mem0Plugin; stub them out.
- @Override public void registerTool(org.springframework.ai.tool.ToolCallback tool) { throw new UnsupportedOperationException(); }
- @Override public void registerTool(org.springframework.ai.tool.ToolCallback tool, java.util.function.Supplier