@coreyuan/vector-mind 1.1.1 → 1.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/README.md +17 -1
  2. package/dist/context-governance.d.ts +7 -0
  3. package/dist/context-governance.js +41 -1
  4. package/dist/context-governance.js.map +1 -1
  5. package/dist/file-indexing.js +6 -2
  6. package/dist/file-indexing.js.map +1 -1
  7. package/dist/memory-recall.d.ts +6 -0
  8. package/dist/memory-recall.js +73 -102
  9. package/dist/memory-recall.js.map +1 -1
  10. package/dist/memory-safety.d.ts +17 -0
  11. package/dist/memory-safety.js +61 -0
  12. package/dist/memory-safety.js.map +1 -0
  13. package/dist/operation-scope.d.ts +6 -2
  14. package/dist/operation-scope.js +19 -1
  15. package/dist/operation-scope.js.map +1 -1
  16. package/dist/security-signals.d.ts +33 -0
  17. package/dist/security-signals.js +239 -0
  18. package/dist/security-signals.js.map +1 -0
  19. package/dist/server-instructions.js +1 -1
  20. package/dist/server-instructions.js.map +1 -1
  21. package/dist/tool-catalog.js +3 -3
  22. package/dist/tool-catalog.js.map +1 -1
  23. package/dist/tool-handlers/files.js +13 -1
  24. package/dist/tool-handlers/files.js.map +1 -1
  25. package/dist/tool-handlers/memory.js +75 -6
  26. package/dist/tool-handlers/memory.js.map +1 -1
  27. package/dist/tool-handlers/notes-decisions.js +27 -7
  28. package/dist/tool-handlers/notes-decisions.js.map +1 -1
  29. package/dist/tool-handlers/operations.js +7 -1
  30. package/dist/tool-handlers/operations.js.map +1 -1
  31. package/dist/tool-handlers/requirements.js +71 -14
  32. package/dist/tool-handlers/requirements.js.map +1 -1
  33. package/dist/tool-handlers.js +52 -6
  34. package/dist/tool-handlers.js.map +1 -1
  35. package/dist/tool-output.d.ts +38 -0
  36. package/dist/tool-output.js +31 -5
  37. package/dist/tool-output.js.map +1 -1
  38. package/dist/tool-schemas.d.ts +4 -0
  39. package/dist/tool-schemas.js +4 -0
  40. package/dist/tool-schemas.js.map +1 -1
  41. package/docs/capability-matrix.md +1 -0
  42. package/package.json +1 -1
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  VectorMind 是面向 AI 编程助手的本地项目记忆 MCP。它把需求、决策、改动原因、项目约定和文件状态保存在项目目录内,帮助长周期开发减少上下文丢失、跨项目串线和旧逻辑回退。
4
4
 
5
- 当前版本:`1.1.1`
5
+ 当前版本:`1.1.4`
6
6
 
7
7
  ## 核心能力
8
8
 
@@ -14,6 +14,7 @@ VectorMind 是面向 AI 编程助手的本地项目记忆 MCP。它把需求、
14
14
  - **更新权威决策**:新决策可以 supersede 旧需求或旧记忆,避免后续会话按过时规则实现。
15
15
  - **隔离多个项目**:记忆、pending buffer、索引和数据库都按 `project_root` 隔离。
16
16
  - **安全读取项目文件**:使用 canonical realpath 校验,拒绝通过符号链接或 junction 越过项目边界。
17
+ - **安全扫描不可信内容与操作**:文件、内存、`grep` 和符号查询结果附带 `security_scan`;高置信度敏感数据外传只在具体操作预检中阻断,普通文档、文章、测试样例和明确的普通上传保持 advisory,不改变正常分析流程。
17
18
  - **保存长期会话检查点**:创建有界、版本化 checkpoint,并只读恢复或比较上下文。
18
19
  - **诊断记忆质量**:检查冲突、重复、过大 checkpoint、陈旧索引和孤立记忆。
19
20
  - **控制上下文体积**:默认使用精简工具集和紧凑输出,大结果会保留关键 ID 与完成状态。
@@ -128,6 +129,17 @@ npm run admin:dev
128
129
 
129
130
  VectorMind 的质量信号只是上下文证据,不替模型或用户做决定。
130
131
 
132
+ ### 安全扫描边界与开销
133
+
134
+ 安全扫描用于识别提示注入、凭据访问、主机探测和本地敏感数据外传。它不会接管 MCP 其他工具,也不会主导 AI 的推理、设计或实现方向:
135
+
136
+ - 文件、内存、`grep`、语义搜索和符号查询返回的扫描结果属于 advisory 信号,明确标记 `advisory_only`、`coverage` 和 `complete`。
137
+ - 只有 `preflight_operation_scope` 发现高置信度敏感凭据外传时,才会对该具体操作返回 blocker;普通读取、查询、代码生成和其他 MCP 功能不受影响。
138
+ - 用户授权例外必须由宿主配置 `VECTORMIND_SECURITY_AUTH_TOKEN` 并注入匹配的 `security_authorization_token`,同时提供原因和目标主机 allowlist;模型不能自行伪造授权。
139
+ - 扫描只产生有界的本地 CPU、文件读取和少量输出 token 开销,不增加 AI 推理轮次。无 finding 时 compact 输出不会展开安全详情;完整字段可通过 `format=json` 查看。
140
+
141
+ 完整能力和边界见 [docs/capability-matrix.md](docs/capability-matrix.md)。
142
+
131
143
  ## 需求明确性软引导
132
144
 
133
145
  VectorMind 会在 MCP 握手中向 AI 提供需求明确性规则。AI 只有在获得完整授权后才应行动:当前消息明确提出工作,或当前消息明确指向唯一未完成的用户请求;无论采用哪条路径,选定请求都必须明确相关目标、对象、范围和动作。已完成请求不能授权新动作,无完整授权时,AI 应在调用工具或采取行动前先向用户询问。
@@ -166,6 +178,9 @@ npm run verify
166
178
 
167
179
  - `npm run smoke` 会先重建核心产物,再运行 security、checkpoint、operation 和完整 MCP smoke。
168
180
  - `npm run verify` 会运行核心构建、管理面板测试与生产构建,以及全部 smoke。
181
+ - `security-regression-cases.mjs` 覆盖提示注入、凭据路径、普通上传、敏感外传,以及 DNS/SSH/SCP/SFTP、PowerShell、Node/Python、base64 和环境变量通道。
182
+ - 安全回归还验证宿主授权令牌、错误令牌旁路、目标主机 allowlist、文件 advisory 语义、grep 多文件覆盖和符号链接越界保护。
183
+ - `npm run verify` 已包含上述安全回归、checkpoint/operation 回归、管理面板测试和生产构建。
169
184
  - `prepublishOnly` 强制执行完整 `verify`。
170
185
  - 发布前可用 `npm pack --dry-run --ignore-scripts --json` 检查核心产物、管理服务和预构建客户端是否进入包。
171
186
 
@@ -178,3 +193,4 @@ npm publish --access public
178
193
  ## 一句话
179
194
 
180
195
  VectorMind 让 AI 记住需求、决策、改动原因和项目边界,在长期开发中少丢上下文、少乱改、少回退到旧逻辑。
196
+ Focused context recovery is explicitly relevance-filtered and full recovery remains output-bounded; neither mode claims repository or live-runtime coverage. A missing match therefore does not prove that a fact never existed. Durable operational facts such as domains, origin hosts, ports, deployment directories, and credential-file references remain recallable, while secret values are recursively redacted before long-term memory persistence, symbol extraction, and document indexing. Requirement creation also reports or rejects high-confidence overlap so an unfinished incident is not silently fragmented into a new lifecycle.
@@ -43,6 +43,13 @@ export declare function sameRequirement(active: {
43
43
  background?: string | null;
44
44
  goal_key?: string | null;
45
45
  }): boolean;
46
+ export declare function requirementOverlapScore(active: {
47
+ title: string;
48
+ context_data?: string | null;
49
+ }, next: {
50
+ title: string;
51
+ background?: string | null;
52
+ }): number;
46
53
  export declare function sameRootRequirement(active: {
47
54
  title: string;
48
55
  context_data?: string | null;
@@ -41,6 +41,7 @@ function focusedEvidenceCoverage(query, haystack) {
41
41
  let totalChars = 0;
42
42
  let matchedChars = 0;
43
43
  let independentRuns = 0;
44
+ const distinctTerms = new Set();
44
45
  let technicalAnchor = false;
45
46
  for (const segment of segments) {
46
47
  if (/^[a-z0-9_./:@#-]+$/.test(segment)) {
@@ -51,6 +52,7 @@ function focusedEvidenceCoverage(query, haystack) {
51
52
  continue;
52
53
  matchedChars += segment.length;
53
54
  independentRuns += 1;
55
+ distinctTerms.add(segment);
54
56
  if (segment.length >= 3 && (/\d/.test(segment) || /[_.\/@:#-]/.test(segment))) {
55
57
  technicalAnchor = true;
56
58
  }
@@ -63,6 +65,7 @@ function focusedEvidenceCoverage(query, haystack) {
63
65
  for (let index = 0; index <= segment.length - width; index += 1) {
64
66
  if (!haystack.includes(segment.slice(index, index + width)))
65
67
  continue;
68
+ distinctTerms.add(segment.slice(index, index + width));
66
69
  for (let offset = index; offset < index + width; offset += 1)
67
70
  covered[offset] = true;
68
71
  }
@@ -78,6 +81,7 @@ function focusedEvidenceCoverage(query, haystack) {
78
81
  matched_chars: matchedChars,
79
82
  coverage: totalChars > 0 ? matchedChars / totalChars : 0,
80
83
  independent_runs: independentRuns,
84
+ distinct_terms: distinctTerms.size,
81
85
  technical_anchor: technicalAnchor,
82
86
  };
83
87
  }
@@ -95,8 +99,11 @@ export function focusedTextIsRelevant(query, ...values) {
95
99
  return true;
96
100
  if (evidence.total_chars <= 4)
97
101
  return evidence.coverage === 1;
102
+ if (evidence.distinct_terms < 2)
103
+ return false;
98
104
  return evidence.coverage >= 0.58 ||
99
- (evidence.coverage >= 0.42 && evidence.matched_chars >= 6 && evidence.independent_runs >= 2);
105
+ (evidence.coverage >= 0.42 && evidence.matched_chars >= 6 && evidence.independent_runs >= 2) ||
106
+ (evidence.matched_chars >= 8 && evidence.independent_runs >= 3 && evidence.distinct_terms >= 3);
100
107
  }
101
108
  function focusedMatchIsRelevant(query, match) {
102
109
  return focusedTextIsRelevant(query, match.item.title, match.item.preview, match.item.file_path);
@@ -164,6 +171,39 @@ export function sameRequirement(active, next) {
164
171
  const nextBackground = normalize(next.background);
165
172
  return activeTitle === nextTitle && activeBackground === nextBackground;
166
173
  }
174
+ const REQUIREMENT_STOP_WORDS = new Set([
175
+ "after", "before", "build", "change", "continue", "debug", "deploy", "ensure", "fix", "implement",
176
+ "issue", "problem", "requirement", "the", "this", "update", "with", "修复", "实现", "继续", "问题", "需求",
177
+ ]);
178
+ function requirementTerms(value) {
179
+ const normalized = normalizeRequirementText(value);
180
+ const raw = normalized.match(/[a-z0-9_./:@#-]{3,}|\p{Script=Han}{2,}/gu) ?? [];
181
+ const expanded = raw.flatMap((term) => {
182
+ if (!/\p{Script=Han}/u.test(term) || term.length <= 2)
183
+ return [term];
184
+ return Array.from({ length: term.length - 1 }, (_, index) => term.slice(index, index + 2));
185
+ });
186
+ return new Set(expanded.filter((term) => !REQUIREMENT_STOP_WORDS.has(term)));
187
+ }
188
+ export function requirementOverlapScore(active, next) {
189
+ const left = requirementTerms(`${active.title}\n${active.context_data ?? ""}`);
190
+ const right = requirementTerms(`${next.title}\n${next.background ?? ""}`);
191
+ if (!left.size || !right.size)
192
+ return 0;
193
+ const shared = [...left].filter((term) => right.has(term));
194
+ if (!shared.length)
195
+ return 0;
196
+ const structuredAnchor = shared.some((term) => /[0-9_./:@#-]/u.test(term));
197
+ const sharedHanTerms = shared.filter((term) => /\p{Script=Han}/u.test(term));
198
+ if (!structuredAnchor && shared.length < 2 && sharedHanTerms.length < 2)
199
+ return 0;
200
+ const containment = shared.length / Math.min(left.size, right.size);
201
+ const jaccard = shared.length / new Set([...left, ...right]).size;
202
+ const hanEvidence = sharedHanTerms.length >= 4
203
+ ? Math.min(0.8, 0.4 + sharedHanTerms.length * 0.04)
204
+ : 0;
205
+ return Math.min(1, Math.max(jaccard, containment * (structuredAnchor ? 1 : 0.8), hanEvidence));
206
+ }
167
207
  function normalizeRequirementText(value) {
168
208
  return (value ?? "").normalize("NFKC").trim().replace(/\s+/g, " ").toLocaleLowerCase();
169
209
  }
@@ -1 +1 @@
1
- {"version":3,"file":"context-governance.js","sourceRoot":"","sources":["../src/context-governance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context-governance.js","sourceRoot":"","sources":["../src/context-governance.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import { INDEX_MAX_CODE_BYTES, INDEX_MAX_DOC_BYTES, INDEX_SKIP_MINIFIED, PENDING
4
4
  import { getContentChunkKind, isContentIndexableFile, isSymbolIndexableFile, looksLikeGeneratedFile, looksLikeMinifiedBundle, shouldIgnorePath, } from "./path-rules.js";
5
5
  import { extractSymbols } from "./symbols.js";
6
6
  import { logActivity } from "./activity-log.js";
7
+ import { sanitizePersistentMemoryText } from "./memory-safety.js";
7
8
  import { safeJson } from "./tool-output.js";
8
9
  import { resolvePathWithinRoot } from "./path-containment.js";
9
10
  let fileIndexingContext = null;
@@ -276,7 +277,8 @@ export function indexFile(absPath, reason) {
276
277
  logActivity("index_skip", { file_path: filePath, reason: "generated_file", bytes: stat.size });
277
278
  return;
278
279
  }
279
- const symbols = indexSymbols ? extractSymbols(absPath, content) : [];
280
+ const sanitizedContent = sanitizePersistentMemoryText(content);
281
+ const symbols = indexSymbols ? extractSymbols(absPath, sanitizedContent.text) : [];
280
282
  let chunkCount = 0;
281
283
  try {
282
284
  getDb().transaction(() => {
@@ -285,7 +287,7 @@ export function indexFile(absPath, reason) {
285
287
  else
286
288
  getDeleteSymbolsForFileStatement().run(filePath);
287
289
  if (indexContent)
288
- chunkCount = replaceFileContentChunks(filePath, absPath, content);
290
+ chunkCount = replaceFileContentChunks(filePath, absPath, sanitizedContent.text);
289
291
  else
290
292
  getDeleteFileChunkItemsStatement().run(filePath);
291
293
  })();
@@ -300,6 +302,8 @@ export function indexFile(absPath, reason) {
300
302
  symbols: symbols.length,
301
303
  chunks: chunkCount,
302
304
  bytes: stat.size,
305
+ secret_redaction_applied: sanitizedContent.redacted,
306
+ secret_redaction_categories: sanitizedContent.categories,
303
307
  });
304
308
  }
305
309
  export function removeFileIndexes(absPath) {
@@ -1 +1 @@
1
- {"version":3,"file":"file-indexing.js","sourceRoot":"","sources":["../src/file-indexing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-indexing.js","sourceRoot":"","sources":["../src/file-indexing.ts"],"names":[],"mappings":"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"}
@@ -43,6 +43,12 @@ type SemanticSearchOpts = {
43
43
  includeContent: boolean;
44
44
  previewChars: number;
45
45
  contentMaxChars: number;
46
+ matchFilter?: (item: {
47
+ title: string | null;
48
+ content: string;
49
+ file_path: string | null;
50
+ }) => boolean;
51
+ dedupeByRequirement?: boolean;
46
52
  };
47
53
  export declare const BOOTSTRAP_DEFAULT_CONTEXT_KINDS: string[];
48
54
  export declare function parseMetadataJson(metadata: string | null | undefined): Record<string, unknown>;
@@ -209,30 +209,39 @@ function normalizeSearchText(input) {
209
209
  }
210
210
  function extractSearchTokens(raw) {
211
211
  const text = normalizeSearchText(raw);
212
- const tokens = new Set();
212
+ const tokens = [];
213
+ const seen = new Set();
214
+ const add = (token) => {
215
+ if (token.length < 2 || SEMANTIC_TOKEN_STOPWORDS.has(token) || seen.has(token))
216
+ return;
217
+ seen.add(token);
218
+ tokens.push(token);
219
+ };
213
220
  for (const token of text.match(/[a-z0-9_./:@#-]{2,}/g) ?? []) {
214
- if (!SEMANTIC_TOKEN_STOPWORDS.has(token))
215
- tokens.add(token);
221
+ add(token);
216
222
  for (const part of token.split(/[^a-z0-9]+/).filter((p) => p.length >= 2)) {
217
- if (!SEMANTIC_TOKEN_STOPWORDS.has(part))
218
- tokens.add(part);
223
+ add(part);
219
224
  }
220
225
  }
221
- for (const seq of text.match(/\p{Script=Han}+/gu) ?? []) {
222
- if (seq.length >= 2 && seq.length <= 18)
223
- tokens.add(seq);
224
- for (const n of [2, 3, 4]) {
225
- if (seq.length < n)
226
- continue;
227
- for (let i = 0; i <= seq.length - n; i++) {
228
- tokens.add(seq.slice(i, i + n));
226
+ const hanSequences = text.match(/\p{Script=Han}+/gu) ?? [];
227
+ for (const seq of hanSequences) {
228
+ if (seq.length <= 18)
229
+ add(seq);
230
+ }
231
+ // Round-robin n-grams keep later clauses represented instead of letting the
232
+ // first long Chinese clause consume the entire bounded token budget.
233
+ for (const width of [2, 3, 4]) {
234
+ const maxOffset = Math.max(0, ...hanSequences.map((seq) => seq.length - width));
235
+ for (let offset = 0; offset <= maxOffset; offset++) {
236
+ for (const seq of hanSequences) {
237
+ if (offset + width <= seq.length)
238
+ add(seq.slice(offset, offset + width));
239
+ if (tokens.length >= 48)
240
+ return tokens;
229
241
  }
230
242
  }
231
243
  }
232
- return Array.from(tokens)
233
- .filter((token) => token.length >= 2 && !SEMANTIC_TOKEN_STOPWORDS.has(token))
234
- .sort((a, b) => b.length - a.length)
235
- .slice(0, 48);
244
+ return tokens.slice(0, 48);
236
245
  }
237
246
  function countNeedleOccurrences(haystack, needle) {
238
247
  if (!haystack || !needle)
@@ -299,15 +308,26 @@ function mergeSemanticMatches(sets, opts) {
299
308
  best.set(match.item.id, match);
300
309
  }
301
310
  }
302
- return Array.from(best.values())
303
- .sort((a, b) => b.score - a.score || b.item.id - a.item.id)
304
- .slice(0, opts.topK);
311
+ const ranked = Array.from(best.values())
312
+ .sort((a, b) => b.score - a.score || b.item.id - a.item.id);
313
+ return dedupeSemanticMatches(ranked, opts).slice(0, opts.topK);
314
+ }
315
+ function dedupeSemanticMatches(matches, opts) {
316
+ if (!opts.dedupeByRequirement)
317
+ return matches;
318
+ const seen = new Set();
319
+ return matches.filter((match) => {
320
+ const key = match.item.req_id != null ? `req:${match.item.req_id}` : `item:${match.item.id}`;
321
+ if (seen.has(key))
322
+ return false;
323
+ seen.add(key);
324
+ return true;
325
+ });
305
326
  }
306
327
  function filterAndRankSemanticRows(rows, scoreOf, opts) {
307
328
  const explicitKinds = new Set(opts.kinds ?? []);
308
- return rows
309
- .map((r) => ({ row: r, score: adjustSemanticScore(r, scoreOf(r)) }))
310
- .filter(({ row }) => {
329
+ const ranked = rows
330
+ .filter((row) => {
311
331
  if (isHiddenFromDefaultRecall(row))
312
332
  return false;
313
333
  if (isObviouslyCorruptedText(row.title, row.content, row.file_path))
@@ -320,11 +340,18 @@ function filterAndRankSemanticRows(rows, scoreOf, opts) {
320
340
  return false;
321
341
  if (shouldIgnoreDbFilePath(row.file_path) && row.kind !== "change_intent")
322
342
  return false;
343
+ if (opts.matchFilter && !opts.matchFilter({
344
+ title: row.title,
345
+ content: row.content,
346
+ file_path: row.file_path,
347
+ }))
348
+ return false;
323
349
  return true;
324
350
  })
351
+ .map((r) => ({ row: r, score: adjustSemanticScore(r, scoreOf(r)) }))
325
352
  .sort((a, b) => b.score - a.score)
326
- .slice(0, opts.topK)
327
353
  .map(({ row, score }) => toSemanticMatch(row, score, opts.includeContent, opts.previewChars, opts.contentMaxChars));
354
+ return dedupeSemanticMatches(ranked, opts).slice(0, opts.topK);
328
355
  }
329
356
  export function makePreviewText(content, max) {
330
357
  if (max <= 0)
@@ -648,35 +675,10 @@ function tokenSearchInternal(opts) {
648
675
  if (!tokens.length)
649
676
  return { query: q, top_k: opts.topK, mode: "token", matches: [] };
650
677
  const rawLimit = Math.min(160, Math.max(opts.topK * 12, 80));
651
- const searchTokens = tokens.slice(0, 8);
652
678
  const effectiveKinds = opts.kinds?.length ? opts.kinds : TOKEN_SEARCH_DEFAULT_KINDS;
653
- const kindClause = effectiveKinds.length
654
- ? `AND kind IN (${effectiveKinds.map(() => "?").join(", ")})`
655
- : "";
656
- const recencyBoost = `
657
- + CASE
658
- WHEN updated_at >= datetime('now', '-2 days') THEN 4
659
- WHEN updated_at >= datetime('now', '-14 days') THEN 2
660
- WHEN updated_at >= datetime('now', '-60 days') THEN 1
661
- ELSE 0
662
- END`;
663
- const candidateScore = `
664
- (
665
- CASE kind
666
- WHEN 'decision' THEN 9
667
- WHEN 'memory_compaction' THEN 8
668
- WHEN 'convention' THEN 7
669
- WHEN 'project_summary' THEN 6
670
- WHEN 'note' THEN 5
671
- WHEN 'requirement' THEN 4
672
- WHEN 'change_intent' THEN 3
673
- ELSE 0
674
- END
675
- ${recencyBoost}
676
- )`;
677
679
  const includesIndexedChunks = effectiveKinds.some((k) => k === "code_chunk" || k === "doc_chunk");
678
680
  if (!includesIndexedChunks) {
679
- const candidateLimit = Math.min(1600, Math.max(rawLimit * 5, 800));
681
+ const placeholders = effectiveKinds.map(() => "?").join(", ");
680
682
  const stmt = getDb().prepare(`
681
683
  SELECT
682
684
  id,
@@ -690,15 +692,9 @@ function tokenSearchInternal(opts) {
690
692
  metadata_json,
691
693
  updated_at
692
694
  FROM memory_items
693
- WHERE 1=1
694
- ${kindClause}
695
- ORDER BY
696
- ${candidateScore} DESC,
697
- updated_at DESC,
698
- id DESC
699
- LIMIT ?
695
+ WHERE kind IN (${placeholders})
700
696
  `);
701
- const candidates = stmt.all(...effectiveKinds, candidateLimit);
697
+ const candidates = stmt.all(...effectiveKinds);
702
698
  const scoreMap = new Map();
703
699
  const rows = candidates.filter((row) => {
704
700
  const score = tokenLexicalScore(row, q, tokens);
@@ -711,11 +707,10 @@ function tokenSearchInternal(opts) {
711
707
  return { query: q, top_k: opts.topK, mode: "token", matches };
712
708
  }
713
709
  const memoryFirstKinds = effectiveKinds.filter((k) => k !== "code_chunk" && k !== "doc_chunk");
714
- const memoryFirstLimit = Math.min(1200, Math.max(rawLimit * 4, 300));
715
710
  let memoryFirstRows = [];
716
711
  const memoryFirstScores = new Map();
717
712
  if (memoryFirstKinds.length) {
718
- const memoryKindClause = `AND kind IN (${memoryFirstKinds.map(() => "?").join(", ")})`;
713
+ const memoryKindPlaceholders = memoryFirstKinds.map(() => "?").join(", ");
719
714
  const memoryStmt = getDb().prepare(`
720
715
  SELECT
721
716
  id,
@@ -729,15 +724,9 @@ function tokenSearchInternal(opts) {
729
724
  metadata_json,
730
725
  updated_at
731
726
  FROM memory_items
732
- WHERE 1=1
733
- ${memoryKindClause}
734
- ORDER BY
735
- ${candidateScore} DESC,
736
- updated_at DESC,
737
- id DESC
738
- LIMIT ?
727
+ WHERE kind IN (${memoryKindPlaceholders})
739
728
  `);
740
- const candidates = memoryStmt.all(...memoryFirstKinds, memoryFirstLimit);
729
+ const candidates = memoryStmt.all(...memoryFirstKinds);
741
730
  memoryFirstRows = candidates.filter((row) => {
742
731
  const score = tokenLexicalScore(row, q, tokens);
743
732
  if (score <= 0)
@@ -746,41 +735,23 @@ function tokenSearchInternal(opts) {
746
735
  return true;
747
736
  });
748
737
  }
749
- const conditions = [];
750
- const values = [];
751
- for (const token of searchTokens) {
752
- const like = `%${escapeLike(token)}%`;
753
- conditions.push(`content LIKE ? ESCAPE '\\'`);
754
- values.push(like);
755
- conditions.push(`title LIKE ? ESCAPE '\\'`);
756
- values.push(like);
757
- conditions.push(`file_path LIKE ? ESCAPE '\\'`);
758
- values.push(like);
738
+ const indexedKinds = effectiveKinds.filter((k) => k === "code_chunk" || k === "doc_chunk");
739
+ const ftsTokens = tokens.filter((token) => token.length >= 3).slice(0, 24);
740
+ let rows = [];
741
+ if (indexedKinds.length && ftsTokens.length && isFtsAvailable()) {
742
+ const ftsQuery = ftsTokens.map((token) => `"${token.replaceAll('"', '""')}"`).join(" OR ");
743
+ const indexedKindPlaceholders = indexedKinds.map(() => "?").join(", ");
744
+ rows = getDb().prepare(`
745
+ SELECT m.id, m.kind, m.title, m.content, m.file_path, m.start_line, m.end_line,
746
+ m.req_id, m.metadata_json, m.updated_at
747
+ FROM ${MEMORY_ITEMS_FTS_TABLE}
748
+ JOIN memory_items m ON m.id = ${MEMORY_ITEMS_FTS_TABLE}.rowid
749
+ WHERE ${MEMORY_ITEMS_FTS_TABLE} MATCH ?
750
+ AND m.kind IN (${indexedKindPlaceholders})
751
+ ORDER BY bm25(${MEMORY_ITEMS_FTS_TABLE}) ASC
752
+ LIMIT ?
753
+ `).all(ftsQuery, ...indexedKinds, rawLimit);
759
754
  }
760
- if (!conditions.length)
761
- return { query: q, top_k: opts.topK, mode: "token", matches: [] };
762
- const stmt = getDb().prepare(`
763
- SELECT
764
- id,
765
- kind,
766
- title,
767
- content,
768
- file_path,
769
- start_line,
770
- end_line,
771
- req_id,
772
- metadata_json,
773
- updated_at
774
- FROM memory_items
775
- WHERE (${conditions.join(" OR ")})
776
- ${kindClause}
777
- ORDER BY
778
- ${candidateScore} DESC,
779
- updated_at DESC,
780
- id DESC
781
- LIMIT ?
782
- `);
783
- const rows = stmt.all(...values, ...effectiveKinds, rawLimit);
784
755
  const scoreMap = new Map(memoryFirstScores);
785
756
  for (const row of rows) {
786
757
  if (!scoreMap.has(row.id))