



























@@ -65,6 +65,7 @@ test -d "$package_root/dist/extensions/telegram"
6565test -d "$package_root/dist/extensions/discord"
6666test -d "$package_root/dist/extensions/slack"
6767test -d "$package_root/dist/extensions/feishu"
68+test -d "$package_root/dist/extensions/memory-lancedb"
68696970if [ -d "$package_root/dist/extensions/$CHANNEL/node_modules" ]; then
7071 echo "$CHANNEL runtime deps should not be preinstalled in package" >&2
@@ -156,6 +157,35 @@ if (mode === "feishu") {
156157 },
157158 };
158159}
160+if (mode === "memory-lancedb") {
161+ config.plugins = {
162+ ...(config.plugins || {}),
163+ enabled: true,
164+ allow: [...new Set([...(config.plugins?.allow || []), "memory-lancedb"])],
165+ slots: {
166+ ...(config.plugins?.slots || {}),
167+ memory: "memory-lancedb",
168+ },
169+ entries: {
170+ ...(config.plugins?.entries || {}),
171+ "memory-lancedb": {
172+ ...(config.plugins?.entries?.["memory-lancedb"] || {}),
173+ enabled: true,
174+ config: {
175+ ...(config.plugins?.entries?.["memory-lancedb"]?.config || {}),
176+ embedding: {
177+ ...(config.plugins?.entries?.["memory-lancedb"]?.config?.embedding || {}),
178+ apiKey: process.env.OPENAI_API_KEY,
179+ model: "text-embedding-3-small",
180+ },
181+ dbPath: "~/.openclaw/memory/lancedb-e2e",
182+ autoCapture: false,
183+ autoRecall: false,
184+ },
185+ },
186+ },
187+ };
188+}
159189160190fs.mkdirSync(path.dirname(configPath), { recursive: true });
161191fs.writeFileSync(configPath, `${JSON.stringify(config, null, 2)}\n`, "utf8");
@@ -206,6 +236,10 @@ wait_for_gateway_health() {
206236207237assert_channel_status() {
208238 local channel="$1"
239+ if [ "$channel" = "memory-lancedb" ]; then
240+ echo "memory-lancedb plugin activation verified by dependency sentinel"
241+ return 0
242+ fi
209243 local out="/tmp/openclaw-channel-status-$channel.json"
210244 openclaw gateway call channels.status \
211245 --url "ws://127.0.0.1:$PORT" \
@@ -635,7 +669,6 @@ export OPENAI_API_KEY="sk-openclaw-bundled-channel-update-e2e"
635669export OPENCLAW_NO_ONBOARD=1
636670export OPENCLAW_UPDATE_PACKAGE_SPEC=""
637671638-BASELINE_VERSION="${OPENCLAW_BUNDLED_CHANNEL_UPDATE_BASELINE_VERSION:?missing baseline version}"
639672TOKEN="bundled-channel-update-token"
640673PORT="18790"
641674@@ -736,6 +769,35 @@ config.channels = {
736769 enabled: mode === "feishu",
737770 },
738771};
772+if (mode === "memory-lancedb") {
773+ config.plugins = {
774+ ...(config.plugins || {}),
775+ enabled: true,
776+ allow: [...new Set([...(config.plugins?.allow || []), "memory-lancedb"])],
777+ slots: {
778+ ...(config.plugins?.slots || {}),
779+ memory: "memory-lancedb",
780+ },
781+ entries: {
782+ ...(config.plugins?.entries || {}),
783+ "memory-lancedb": {
784+ ...(config.plugins?.entries?.["memory-lancedb"] || {}),
785+ enabled: true,
786+ config: {
787+ ...(config.plugins?.entries?.["memory-lancedb"]?.config || {}),
788+ embedding: {
789+ ...(config.plugins?.entries?.["memory-lancedb"]?.config?.embedding || {}),
790+ apiKey: process.env.OPENAI_API_KEY,
791+ model: "text-embedding-3-small",
792+ },
793+ dbPath: "~/.openclaw/memory/lancedb-update-e2e",
794+ autoCapture: false,
795+ autoRecall: false,
796+ },
797+ },
798+ },
799+ };
800+}
739801740802fs.mkdirSync(path.dirname(configPath), { recursive: true });
741803fs.writeFileSync(configPath, `${JSON.stringify(config, null, 2)}\n`, "utf8");
@@ -857,8 +919,8 @@ run_update_and_capture() {
857919 fi
858920}
859921860-echo "Installing known-bad baseline $BASELINE_VERSION..."
861-npm install -g "openclaw@$BASELINE_VERSION" --omit=optional --no-fund --no-audit >/tmp/openclaw-update-baseline-install.log 2>&1
922+echo "Installing current candidate as update baseline..."
923+npm install -g "$package_tgz" --no-fund --no-audit >/tmp/openclaw-update-baseline-install.log 2>&1
862924command -v openclaw >/dev/null
863925baseline_root="$(package_root)"
864926test -d "$baseline_root/dist/extensions/telegram"
@@ -871,16 +933,14 @@ set +e
871933openclaw doctor --non-interactive >/tmp/openclaw-baseline-doctor.log 2>&1
872934baseline_doctor_status=$?
873935set -e
874-if [ "$baseline_doctor_status" -eq 0 ] || ! grep -Eq "grammy|ERR_MODULE_NOT_FOUND|Cannot find module" /tmp/openclaw-baseline-doctor.log; then
875- echo "expected baseline doctor to fail on missing Telegram runtime deps" >&2
876- cat /tmp/openclaw-baseline-doctor.log >&2
877- exit 1
878-fi
936+echo "baseline doctor exited with $baseline_doctor_status"
937+remove_runtime_dep telegram grammy
938+assert_no_dep_available telegram grammy
879939880940echo "Updating from baseline to current candidate; candidate doctor must repair Telegram deps..."
881941run_update_and_capture telegram /tmp/openclaw-update-telegram.json
882942cat /tmp/openclaw-update-telegram.json
883-assert_update_ok /tmp/openclaw-update-telegram.json "$BASELINE_VERSION"
943+assert_update_ok /tmp/openclaw-update-telegram.json "$candidate_version"
884944assert_dep_available telegram grammy
885945886946echo "Mutating installed package: remove Telegram deps, then update-mode doctor repairs them..."
@@ -920,6 +980,15 @@ cat /tmp/openclaw-update-feishu.json
920980assert_update_ok /tmp/openclaw-update-feishu.json "$candidate_version"
921981assert_dep_available feishu @larksuiteoapi/node-sdk
922982983+echo "Mutating config to memory-lancedb and rerunning same-version update path..."
984+write_config memory-lancedb
985+remove_runtime_dep memory-lancedb @lancedb/lancedb
986+assert_no_dep_available memory-lancedb @lancedb/lancedb
987+run_update_and_capture memory-lancedb /tmp/openclaw-update-memory-lancedb.json
988+cat /tmp/openclaw-update-memory-lancedb.json
989+assert_update_ok /tmp/openclaw-update-memory-lancedb.json "$candidate_version"
990+assert_dep_available memory-lancedb @lancedb/lancedb
991+923992echo "bundled channel runtime deps Docker update E2E passed"
924993EOF
925994then
@@ -937,6 +1006,7 @@ if [ "$RUN_CHANNEL_SCENARIOS" != "0" ]; then
9371006 run_channel_scenario discord discord-api-types
9381007 run_channel_scenario slack @slack/web-api
9391008 run_channel_scenario feishu @larksuiteoapi/node-sdk
1009+ run_channel_scenario memory-lancedb @lancedb/lancedb
9401010fi
9411011if [ "$RUN_UPDATE_SCENARIO" != "0" ]; then
9421012 run_update_scenario
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。