

























@@ -459,7 +459,11 @@ describe("noteMemorySearchHealth", () => {
459459expect(message).toContain("embeddings are not ready");
460460});
461461462-it("warns when lmstudio gateway probe is unavailable", async () => {
462+it("does not warn when key-optional provider (lmstudio) probe was skipped (checked: false)", async () => {
463+// When `openclaw doctor` runs without --deep, the probe is skipped and returns
464+// { checked: false, ready: false }. This must NOT produce a false-positive warning —
465+// it means readiness was never checked, not that embeddings are unavailable.
466+// Regression test for: https://github.com/openclaw/openclaw/issues/74608
463467resolveMemorySearchConfig.mockReturnValue({
464468provider: "lmstudio",
465469local: {},
@@ -470,10 +474,22 @@ describe("noteMemorySearchHealth", () => {
470474gatewayMemoryProbe: { checked: false, ready: false },
471475});
472476473-const message = String(note.mock.calls[0]?.[0] ?? "");
474-expect(message).toContain('provider "lmstudio" is configured');
475-expect(message).toContain("could not confirm embeddings are ready");
476-expect(message).toContain("openclaw memory status --deep");
477+expect(note).not.toHaveBeenCalled();
478+});
479+480+it("does not warn when key-optional provider (ollama) probe was skipped (checked: false)", async () => {
481+// Same guard for ollama — the most commonly reported false-positive case.
482+resolveMemorySearchConfig.mockReturnValue({
483+provider: "ollama",
484+local: {},
485+remote: {},
486+});
487+488+await noteMemorySearchHealth(cfg, {
489+gatewayMemoryProbe: { checked: false, ready: false },
490+});
491+492+expect(note).not.toHaveBeenCalled();
477493});
478494479495it("notes when gateway probe reports embeddings ready and CLI API key is missing", async () => {
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。