Skip to content

fix(doctor): suppress local memory embedding warning when probe was skipped#95392

Closed
1052326311 wants to merge 2 commits into
openclaw:mainfrom
1052326311:fix/92582-doctor-memory-false-positive
Closed

fix(doctor): suppress local memory embedding warning when probe was skipped#95392
1052326311 wants to merge 2 commits into
openclaw:mainfrom
1052326311:fix/92582-doctor-memory-false-positive

Conversation

@1052326311

Copy link
Copy Markdown
Contributor

Closes #92582

Summary

openclaw doctor warns "local embeddings are not confirmed ready" even when openclaw memory status --deep confirms healthy memory, because the local provider branch lacks the skipped-probe guard that other providers already have.

Changes

  • Added skipped probe guard to the provider === "local" branch in noteMemorySearchHealth
  • Matches the existing behavior of isKeyOptionalMemoryProvider (line ~535) which silently returns when opts.gatewayMemoryProbe.skipped === true
  • Source: +7 lines in src/commands/doctor-memory-search.ts

Test

node scripts/run-vitest.mjs src/commands/doctor-memory-search.test.ts
=> 49/49 passed

Drift proof

Source-only fix: the skipped guard is a pure source-level invariant. The same pattern already exists in the key-optional provider path at the same scope. Added 1 block (7 lines with comment) directly above the existing warning note() call.

The local memory provider branch in doctor-memory-search was missing
the skipped-probe guard that other key-optional providers already have.
When gateway memory probe is skipped (checked=false, skipped=true),
doctor was falsely warning "local embeddings are not confirmed ready"
even though the probe was intentionally omitted.

Add the same guard used by isKeyOptionalMemoryProvider: when the probe
is skipped, return silently without producing a warning.

Closes openclaw#92582
@openclaw-barnacle openclaw-barnacle Bot added commands Command implementations size: XS triage: needs-pr-context Candidate: external PR body lacks required problem context or evidence. labels Jun 20, 2026
@clawsweeper

clawsweeper Bot commented Jun 20, 2026

Copy link
Copy Markdown
Contributor

Thanks for the context here. I did a careful shell check against current main, and this is already implemented.

Close: current main already implements the useful local skipped-probe doctor fix via merged PR #95393, and the current-main version is safer because it preserves diagnostics for a configured local model path that is unavailable.

Root-cause cluster
Relationship: superseded
Canonical: #95393
Summary: The local skipped-probe doctor false-warning fix is now implemented by the merged canonical sibling PR.

Members:

Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything.

So I’m closing this as already implemented rather than keeping a duplicate issue open.

Review details

Best possible solution:

Keep the current-main implementation from #95393 and close this duplicate branch instead of landing a second, stale guard-only variant.

Do we have a high-confidence way to reproduce the issue?

Yes. Source inspection shows the pre-fix base lacked a skipped-probe guard in the local-provider branch, while current main now has coverage for checked:false, ready:false, skipped:true local-provider probes.

Is this the best way to solve the issue?

Yes on current main, but not through this branch. The merged implementation fixes the central false warning and preserves the missing-local-model warning that this PR's unconditional guard would suppress.

Security review:

Security review cleared: Security review cleared: the PR only changes doctor diagnostic branching and a focused unit test, with no dependency, workflow, secret, permission, package, or supply-chain surface.

AGENTS.md: found and applied where relevant.

What I checked:

Likely related people:

  • osolmaz: Commit 3137110 changed the local memory doctor branch and tests during the local llama.cpp provider plugin split. (role: introduced current local-provider behavior; confidence: high; commits: 31371101678d; files: src/commands/doctor-memory-search.ts, src/commands/doctor-memory-search.test.ts)
  • hclsys: Commits 45082aa and 549624f added the skipped-probe behavior and discriminator used by sibling provider paths. (role: adjacent prior fix author; confidence: high; commits: 45082aaed3d0, 549624ffb204; files: src/commands/doctor-memory-search.ts, src/commands/doctor-memory-search.test.ts, src/commands/doctor-gateway-health.ts)
  • vincentkoc: Commit e1168b6 refined the merged skipped-probe fix to preserve diagnostics for missing configured local models. (role: recent area contributor; confidence: high; commits: e1168b64f36b; files: src/commands/doctor-memory-search.ts, src/commands/doctor-memory-search.test.ts)
  • mikasa0818: PR fix #92582: Bug: doctor falsely warns local memory embeddings are not ready #95393, authored by mikasa0818, is the merged current-main implementation that fixed the central behavior. (role: merged fix author; confidence: medium; commits: ce984a14b672, ce0142f04e4c; files: src/commands/doctor-memory-search.ts, src/commands/doctor-memory-search.test.ts)

Codex review notes: model internal, reasoning high; reviewed against c29e1fe764f3; fix evidence: commit ce0142f04e4c, main fix timestamp 2026-06-24T02:04:12Z.

@clawsweeper clawsweeper Bot added rating: 🧂 unranked krab Not merge-ready due to missing proof or serious correctness/safety concerns. status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. P2 Normal backlog priority with limited blast radius. merge-risk: 🚨 other 🚨 Merging this PR has meaningful risk outside the owned taxonomy. labels Jun 20, 2026
Sweeper P3: comment claimed skipped probes only happen without --deep,
but current main can also produce probe:false during doctor --deep.
Reworded to describe the probe:false path generically.

Added regression test: local provider with {checked:false,ready:false,
skipped:true} must NOT emit a doctor warning — the probe was
intentionally skipped, not indicating broken embeddings.
@1052326311

Copy link
Copy Markdown
Contributor Author

v2 fix (commit 0d27410):

  1. Fixed comment — removed claim that skipped probes only happen without --deep. Gateway can produce probe:false with doctor --deep too. Comment now describes the probe:false path generically.
  2. Added regression testdoes not warn when local provider probe was skipped (skipped: true) — verifies {checked:false, ready:false, skipped:true} produces no warning.

Test: node scripts/run-vitest.mjs src/commands/doctor-memory-search.test.ts → 50/50 passed.

@clawsweeper re-review

@clawsweeper

clawsweeper Bot commented Jun 20, 2026

Copy link
Copy Markdown
Contributor

🦞🧹
ClawSweeper re-review requested.

I asked ClawSweeper to review this item again.
Action: item re-review queued (workflow sweep.yml, event repository_dispatch).
Result: the existing ClawSweeper review comment will be edited in place when the review finishes.

@clawsweeper

clawsweeper Bot commented Jun 27, 2026

Copy link
Copy Markdown
Contributor

ClawSweeper applied the proposed close for this PR.

@clawsweeper clawsweeper Bot closed this Jun 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

commands Command implementations P2 Normal backlog priority with limited blast radius. rating: 🦪 silver shellfish Thin PR readiness signal; proof, validation, or implementation needs work. size: XS status: 📣 needs proof The PR needs real behavior proof before ClawSweeper can clear the contributor ask. triage: needs-pr-context Candidate: external PR body lacks required problem context or evidence.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Bug: doctor falsely warns local memory embeddings are not ready

1 participant