fix(memory): resolve QMD Windows cmd shims#73674
fix(memory): resolve QMD Windows cmd shims#73674knightplat-blip wants to merge 26 commits intoopenclaw:mainfrom
Conversation
Greptile SummaryThis PR fixes Windows Confidence Score: 5/5Safe to merge — changes are Windows-only, well-scoped, and covered by a new unit test. No P0 or P1 findings. The logic change is minimal and correct: the ternary in No files require special attention. Reviews (2): Last reviewed commit: "fix(memory): resolve qmd Windows cmd shi..." | Re-trigger Greptile |
|
Codex review: needs real behavior proof before merge. Summary Reproducibility: yes. by source inspection: current main only resolves quoted Real behavior proof Next step before merge Security Review findings
Review detailsBest possible solution: Keep the host SDK file as a re-export through Do we have a high-confidence way to reproduce the issue? Yes, by source inspection: current main only resolves quoted Is this the best way to solve the issue? No, not as currently diffed: the central parser change is the right narrow fix, but the host SDK should stay bridged to the central resolver instead of carrying a copied implementation. Full review comments:
Overall correctness: patch is incorrect Acceptance criteria:
What I checked:
Likely related people:
Remaining risk / open question:
Codex review notes: model gpt-5.5, reasoning high; reviewed against 4e5980eab439. |
9cd7180 to
b6ca38b
Compare
|
@greptileai review |
|
@greptileai review |
In the affected Windows environment, QMD was not operated through a standalone
.exe. Instead, the working command was provided by a generated/customqmd.cmdwrapper with content similar to:Running QMD through this wrapper works normally from the shell, but OpenClaw's Windows wrapper resolver previously only handled
%~dp0-relative shim targets. As a result, QMD availability checks failed closed with:This change allows Windows
.cmdwrappers to resolve quoted absolute JS/EXE entrypoints without using shell execution.It also updates QMD package fallback resolution from
qmdto the actual npm package name@tobilu/qmd.Changes
.cmdshim parsing@tobilu/qmdfor QMD package fallback resolution.cmdshims that quote an absolute JavaScript entrypointTesting
pnpm exec vitest run src/plugin-sdk/windows-spawn.test.tsmemory.qmd.command = "qmd"npm install -g @tobilu/qmdqmd.cmdresolves to:provider: "qmd"京能successfully returns QMD-backed memory resultsPlatform notes
This has been validated on Windows.
macOS was not tested. The changed wrapper-resolution path is Windows-only (
platform === "win32"), and non-Windows platforms continue to use the existing direct command path.