fix: silence Ollama memory doctor key warning · openclaw/openclaw@c6617c3
steipete
·
2026-04-27
·
via Recent Commits to openclaw:main
| Original file line number | Diff line number | Diff line change |
|---|
@@ -394,6 +394,37 @@ describe("noteMemorySearchHealth", () => {
|
394 | 394 | expect(note).not.toHaveBeenCalled(); |
395 | 395 | }); |
396 | 396 | |
| 397 | +it("does not warn for ollama when gateway probe is ready without CLI API key", async () => { |
| 398 | +resolveMemorySearchConfig.mockReturnValue({ |
| 399 | +provider: "ollama", |
| 400 | +local: {}, |
| 401 | +remote: {}, |
| 402 | +}); |
| 403 | + |
| 404 | +await noteMemorySearchHealth(cfg, { |
| 405 | +gatewayMemoryProbe: { checked: true, ready: true }, |
| 406 | +}); |
| 407 | + |
| 408 | +expect(note).not.toHaveBeenCalled(); |
| 409 | +expect(resolveApiKeyForProvider).not.toHaveBeenCalled(); |
| 410 | +}); |
| 411 | + |
| 412 | +it("warns for ollama when gateway probe reports embeddings are not ready", async () => { |
| 413 | +resolveMemorySearchConfig.mockReturnValue({ |
| 414 | +provider: "ollama", |
| 415 | +local: {}, |
| 416 | +remote: {}, |
| 417 | +}); |
| 418 | + |
| 419 | +await noteMemorySearchHealth(cfg, { |
| 420 | +gatewayMemoryProbe: { checked: true, ready: false, error: "connection refused" }, |
| 421 | +}); |
| 422 | + |
| 423 | +const message = String(note.mock.calls[0]?.[0] ?? ""); |
| 424 | +expect(message).toContain('provider "ollama" is configured'); |
| 425 | +expect(message).toContain("embeddings are not ready"); |
| 426 | +}); |
| 427 | + |
397 | 428 | it("warns when lmstudio gateway probe reports embeddings are not ready", async () => { |
398 | 429 | resolveMemorySearchConfig.mockReturnValue({ |
399 | 430 | provider: "lmstudio", |
|
| Original file line number | Diff line number | Diff line change |
|---|
@@ -128,6 +128,10 @@ function resolveSuggestedRemoteMemoryProvider(): string | undefined {
|
128 | 128 | )?.providerId; |
129 | 129 | } |
130 | 130 | |
| 131 | +function isKeyOptionalMemoryProvider(providerId: string): boolean { |
| 132 | +return providerId === "local" || providerId === "ollama" || providerId === "lmstudio"; |
| 133 | +} |
| 134 | + |
131 | 135 | async function resolveRuntimeMemoryAuditContext( |
132 | 136 | cfg: OpenClawConfig, |
133 | 137 | ): Promise<RuntimeMemoryAuditContext | null> { |
@@ -402,16 +406,16 @@ export async function noteMemorySearchHealth(
|
402 | 406 | ); |
403 | 407 | return; |
404 | 408 | } |
405 | | -if (resolved.provider === "lmstudio") { |
| 409 | +if (isKeyOptionalMemoryProvider(resolved.provider)) { |
406 | 410 | if (opts?.gatewayMemoryProbe?.checked && opts.gatewayMemoryProbe.ready) { |
407 | 411 | return; |
408 | 412 | } |
409 | 413 | const gatewayProbeWarning = buildGatewayProbeWarning(opts?.gatewayMemoryProbe); |
410 | 414 | note( |
411 | 415 | [ |
412 | 416 | gatewayProbeWarning |
413 | | - ? 'Memory search provider "lmstudio" is configured, but the gateway reports embeddings are not ready.' |
414 | | - : 'Memory search provider "lmstudio" is configured, but the gateway could not confirm embeddings are ready.', |
| 417 | + ? `Memory search provider "${resolved.provider}" is configured, but the gateway reports embeddings are not ready.` |
| 418 | + : `Memory search provider "${resolved.provider}" is configured, but the gateway could not confirm embeddings are ready.`, |
415 | 419 | gatewayProbeWarning, |
416 | 420 | `Verify: ${formatCliCommand("openclaw memory status --deep")}`, |
417 | 421 | ] |
|
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。