fix(memory-core): skip qmd zero-hit search sync#90030
Conversation
|
Codex review: needs maintainer review before merge. Reviewed June 21, 2026, 2:22 PM ET / 18:22 UTC. Summary PR surface: Source +4, Tests +23. Total +27 across 2 files. Reproducibility: yes. source-reproducible: current main and v2026.6.9 still await a forced sync after zero memory_search results, and QMD sync awaits update maintenance. I did not run a live large-corpus QMD timing repro in this read-only pass, but the linked issue and PR body include live QMD behavior evidence. Review metrics: 1 noteworthy metric.
Stored data model Root-cause cluster Members:
Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything. Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Risk before merge
Maintainer options:
Next step before merge
Security Review detailsBest possible solution: Land one refreshed canonical memory-core fix that keeps QMD update work out of the interactive zero-hit Do we have a high-confidence way to reproduce the issue? Yes, source-reproducible: current main and v2026.6.9 still await a forced sync after zero memory_search results, and QMD sync awaits update maintenance. I did not run a live large-corpus QMD timing repro in this read-only pass, but the linked issue and PR body include live QMD behavior evidence. Is this the best way to solve the issue? Yes as a narrow mitigation, pending maintainer acceptance of the QMD freshness tradeoff. A bounded or background QMD refresh is the safer alternative if maintainers want to preserve immediate repair without blocking the interactive tool path. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against bda05dbc2f15. Label changesLabel justifications:
Evidence reviewedPR surface: Source +4, Tests +23. Total +27 across 2 files. View PR surface stats
Acceptance criteria:
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
|
@clawsweeper re-review |
|
🦞👀 Command router queued. I will update this comment with the next step. Re-review progress:
|
|
@clawsweeper re-review |
|
🦞👀 Command router queued. I will update this comment with the next step. |
|
@clawsweeper re-review |
|
🦞👀 Command router queued. I will update this comment with the next step. Re-review progress:
|
6fe705b to
5b3b116
Compare
|
Land-ready at
This is the canonical fix for #90023. PRs #90117 and #98572 are broader/weaker duplicates and can close after merge. |
5b3b116 to
6bc28ac
Compare
6bc28ac to
4ea0549
Compare
What Problem This Solves
Fixes #90023.
Long-lived QMD-backed
memory_searchcalls can turn a normal zero-hit result into synchronous index maintenance by awaitingmanager.sync({ reason: "search", force: true }). QMD maps that call to update/embed work, which can stall an interactive turn for tens of seconds.Why This Change Was Made
The generic zero-hit repair remains useful for builtin/fallback managers, but QMD already owns its search and update lifecycle. The repair is therefore backend- and lifecycle-specific:
This is narrower than removing zero-hit repair for every backend and does not add configuration or timeout policy.
User Impact
Interactive QMD memory misses return without entering QMD update/embed maintenance. Existing builtin/fallback freshness repair and one-shot CLI bootstrap behavior remain unchanged.
Evidence
node scripts/run-vitest.mjs extensions/memory-core/src/tools.test.ts- 22 passedtbx_01kweq20wqs24wspdyf03kg2zh-corepack pnpm check:changedpassedgit diff --check origin/main...HEAD- cleanFocused coverage proves:
Hosted CI is required on the pushed exact head before merge.