fix(memory): add qmd mcporter search tool override (#57363)

* fix(memory): add qmd mcporter search tool override

* fix(memory): tighten qmd search tool override guards

* chore(config): drop generated docs baselines from qmd pr

* fix(memory): keep explicit qmd query override on v2 args

* docs(changelog): normalize qmd search tool attribution

* fix(memory): reuse v1 qmd tool after query fallback
This commit is contained in:
Vincent Koc
2026-03-29 20:07:32 -07:00
committed by GitHub
parent e7984272a7
commit da35718cb2
11 changed files with 350 additions and 52 deletions

View File

@@ -10887,6 +10887,10 @@ export const GENERATED_BASE_CONFIG_SCHEMA = {
},
],
},
searchTool: {
type: "string",
minLength: 1,
},
includeDefaultMemory: {
type: "boolean",
},
@@ -13622,6 +13626,11 @@ export const GENERATED_BASE_CONFIG_SCHEMA = {
help: 'Selects the QMD retrieval path: "query" uses standard query flow, "search" uses search-oriented retrieval, and "vsearch" emphasizes vector retrieval. Keep default unless tuning relevance quality.',
tags: ["storage"],
},
"memory.qmd.searchTool": {
label: "QMD Search Tool Override",
help: "Overrides the exact mcporter tool name used for QMD searches while preserving `searchMode` as the semantic retrieval mode. Use this only when your QMD MCP server exposes a custom tool such as `hybrid_search` and keep it unset for the normal built-in tool mapping.",
tags: ["storage"],
},
"memory.qmd.includeDefaultMemory": {
label: "QMD Include Default Memory",
help: "Automatically indexes default memory files (MEMORY.md and memory/**/*.md) into QMD collections. Keep enabled unless you want indexing controlled only through explicit custom paths.",

View File

@@ -42,6 +42,7 @@ const TARGET_KEYS = [
"memory.citations",
"memory.backend",
"memory.qmd.searchMode",
"memory.qmd.searchTool",
"memory.qmd.scope",
"memory.qmd.includeDefaultMemory",
"memory.qmd.mcporter.enabled",

View File

@@ -891,6 +891,8 @@ export const FIELD_HELP: Record<string, string> = {
"Automatically starts the mcporter daemon when mcporter-backed QMD mode is enabled (default: true). Keep enabled unless process lifecycle is managed externally by your service supervisor.",
"memory.qmd.searchMode":
'Selects the QMD retrieval path: "query" uses standard query flow, "search" uses search-oriented retrieval, and "vsearch" emphasizes vector retrieval. Keep default unless tuning relevance quality.',
"memory.qmd.searchTool":
"Overrides the exact mcporter tool name used for QMD searches while preserving `searchMode` as the semantic retrieval mode. Use this only when your QMD MCP server exposes a custom tool such as `hybrid_search` and keep it unset for the normal built-in tool mapping.",
"memory.qmd.includeDefaultMemory":
"Automatically indexes default memory files (MEMORY.md and memory/**/*.md) into QMD collections. Keep enabled unless you want indexing controlled only through explicit custom paths.",
"memory.qmd.paths":

View File

@@ -391,6 +391,7 @@ export const FIELD_LABELS: Record<string, string> = {
"memory.qmd.mcporter.serverName": "QMD MCPorter Server Name",
"memory.qmd.mcporter.startDaemon": "QMD MCPorter Start Daemon",
"memory.qmd.searchMode": "QMD Search Mode",
"memory.qmd.searchTool": "QMD Search Tool Override",
"memory.qmd.includeDefaultMemory": "QMD Include Default Memory",
"memory.qmd.paths": "QMD Extra Paths",
"memory.qmd.paths.path": "QMD Path",

View File

@@ -14,6 +14,7 @@ export type MemoryQmdConfig = {
command?: string;
mcporter?: MemoryQmdMcporterConfig;
searchMode?: MemoryQmdSearchMode;
searchTool?: string;
includeDefaultMemory?: boolean;
paths?: MemoryQmdIndexPath[];
sessions?: MemoryQmdSessionConfig;

View File

@@ -102,6 +102,7 @@ const MemoryQmdSchema = z
command: z.string().optional(),
mcporter: MemoryQmdMcporterSchema.optional(),
searchMode: z.union([z.literal("query"), z.literal("search"), z.literal("vsearch")]).optional(),
searchTool: z.string().trim().min(1).optional(),
includeDefaultMemory: z.boolean().optional(),
paths: z.array(MemoryQmdPathSchema).optional(),
sessions: MemoryQmdSessionSchema.optional(),