Skip to content

v2.8.3-ja.2

Latest

Choose a tag to compare

@github-actions github-actions released this 25 Sep 09:21
· 2 commits to main since this release

[2.8.3-ja.2] - 2026-09-25

Faster ONNX reranking, a fix for the misleading qmd update embedding count, and opt-in query-expansion and GPU controls.

Performance

  • ONNX reranker: tokenize only the first 1,500 characters of each candidate before truncating to 512 tokens. Model input is unchanged (30 real queries / 594 candidates: identical scores and rank order). MCP latency for candidateLimit 20 drops from about 1.48s to 1.22s, and for 40 from about 3.8s to 2.5s.

Fixes

  • qmd update no longer reports every document as needing embeddings when a non-default (e.g. ONNX) embed model is configured. It counted against the default GGUF model, so a 1,773-document index showed "1,773 need vectors" while qmd doctor correctly showed 41.

Query expansion

  • Add an opt-in retry guard for simplified-Chinese contamination in expanded queries. Configure queryExpansion.contaminationMarkers / maxAttempts in .qmd/index.yml, or QMD_EXPAND_ZH_MARKERS / QMD_EXPAND_MAX_ATTEMPTS. Disabled unless configured.
  • Change the expansion grammar to fixed line counts and a 10-280 character hyde bound. This applies to everyone using auto-expansion (query): in an 8-query check, a few queries returned one fewer vec line than before.

ONNX

  • qmd doctor reports the ONNX execution provider used for embedding and reranking.
  • Add QMD_ONNX_DEVICE=auto to opt into GPU (DirectML on Windows, CUDA on Linux x64). CPU remains the default: on a small embed/rerank model, DirectML on an integrated GPU was 6-10x slower than CPU.

[2.8.3-ja.1] - 2026-09-03

Sync with upstream tobi/qmd v2.8.3 (previous sync: 2026-06-29, v2.6.3-ja.1).

Security

  • Gate project-local collection paths and model URIs behind the trust prompt.
  • Verify Origin/Host on the MCP HTTP server and keep index paths inside the collection.
  • Stop running a checked-in .qmd config's update commands unattended.

MCP

  • Speak the stateless HTTP protocol (server/discover), added 2026-07-28.
  • Expire idle HTTP sessions with a configurable TTL.
  • Scope the HTTP daemon pidfile per --index; shut down gracefully on stdin EOF.

Japanese search (CJK FTS) reliability

  • Fix concurrent FTS table creation races and "database is busy" errors during CJK FTS rebuild.
  • Repair legacy/leftover FTS schema before CJK rebuild.
  • Fix UTF-16 surrogate pair splitting at chunk boundaries and dotted-token matching in quoted FTS phrases.

Embedding / reranking reliability

  • Bump node-llama-cpp to 3.20.0.
  • Fix rerank context creation races on cold start, embed context pool sizing, model download progress display, and rerank fallback handling.
  • Add an exclusive lock around embedding to prevent concurrent embed races.

CLI

  • Add --glob as an alias for collection add --mask; support comma-separated --mask globs.
  • Add orphaned-vector reclamation and --dry-run to qmd cleanup.
  • Fix --full-path silently degrading and native-addon ABI mismatches (spawn via process.execPath).

Build / compatibility

  • Bump better-sqlite3 to 13.0.3.
  • Fix npm install and tsc compatibility on Windows.