mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-06 09:50:42 +00:00
fix: preserve qmd command paths
This commit is contained in:
@@ -77,6 +77,7 @@ Docs: https://docs.openclaw.ai
|
||||
- iMessage: retry transient `watch.subscribe` startup failures before tearing down the monitor, and sanitize startup error logging so brief local transport stalls do not immediately bounce the channel or leak raw imsg RPC payloads into logs. (#65393) Thanks @vincentkoc.
|
||||
- CLI/audio providers: report env-authenticated providers as configured in `openclaw infer audio providers --json`, while keeping trusted workspace provider env lookup defaults stable during auth setup. (#65491)
|
||||
- Plugins/install: reinstall bundled runtime packages when the matching platform native optional child is missing, so packaged Windows installs can recover dependencies that were packed on another host OS.
|
||||
- Memory/QMD: preserve explicit `memory.qmd.command` paths when resolving the QMD backend, so service and gateway environments can use Homebrew installs without falling back to builtin search.
|
||||
|
||||
## 2026.4.11
|
||||
|
||||
|
||||
@@ -89,7 +89,7 @@ describe("resolveMemoryBackendConfig", () => {
|
||||
expect(resolved.qmd?.command).toBe("/Applications/QMD Tools/qmd");
|
||||
});
|
||||
|
||||
it("normalizes stale homebrew qmd paths to the portable command", () => {
|
||||
it("preserves explicit homebrew qmd paths for service environments", () => {
|
||||
const cfg = {
|
||||
agents: { defaults: { workspace: "/tmp/memory-test" } },
|
||||
memory: {
|
||||
@@ -100,7 +100,7 @@ describe("resolveMemoryBackendConfig", () => {
|
||||
},
|
||||
} as OpenClawConfig;
|
||||
const resolved = resolveMemoryBackendConfig({ cfg, agentId: "main" });
|
||||
expect(resolved.qmd?.command).toBe("qmd");
|
||||
expect(resolved.qmd?.command).toBe("/opt/homebrew/bin/qmd");
|
||||
});
|
||||
|
||||
it("resolves custom paths relative to workspace", () => {
|
||||
|
||||
@@ -244,14 +244,6 @@ function resolveSearchTool(raw?: MemoryQmdConfig["searchTool"]): string | undefi
|
||||
return value ? value : undefined;
|
||||
}
|
||||
|
||||
function normalizeQmdCommand(command: string): string {
|
||||
const normalized = path.normalize(command);
|
||||
if (normalized === "/opt/homebrew/bin/qmd" || normalized === "/usr/local/bin/qmd") {
|
||||
return "qmd";
|
||||
}
|
||||
return command;
|
||||
}
|
||||
|
||||
function resolveSessionConfig(
|
||||
cfg: MemoryQmdConfig["sessions"],
|
||||
workspaceDir: string,
|
||||
@@ -405,7 +397,7 @@ export function resolveMemoryBackendConfig(params: {
|
||||
|
||||
const rawCommand = normalizeOptionalString(qmdCfg?.command) || "qmd";
|
||||
const parsedCommand = splitShellArgs(rawCommand);
|
||||
const command = normalizeQmdCommand(parsedCommand?.[0] || rawCommand.split(/\s+/)[0] || "qmd");
|
||||
const command = parsedCommand?.[0] || rawCommand.split(/\s+/)[0] || "qmd";
|
||||
const resolved: ResolvedQmdConfig = {
|
||||
command,
|
||||
mcporter: resolveMcporterConfig(qmdCfg?.mcporter),
|
||||
|
||||
Reference in New Issue
Block a user