docs: complete changelog for all PRs merged since v2.0.1
Cover ~25 community PRs including embedding stability fixes, BM25 field weight and hyphenation fixes, reranker context sizing, launcher reliability, XDG compliance, and the --no-rerank flag.
This commit is contained in:
parent
cc32c9958d
commit
9bafd3d0e9
85
CHANGELOG.md
85
CHANGELOG.md
@ -2,44 +2,93 @@
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
### Added
|
||||
### Changes
|
||||
|
||||
- AST-aware chunking for code files via `web-tree-sitter`. Supported
|
||||
languages: TypeScript/JavaScript, Python, Go, and Rust. Code files
|
||||
are chunked at function, class, and import boundaries instead of
|
||||
arbitrary text positions. Markdown and unknown file types are unchanged.
|
||||
- `--chunk-strategy <auto|regex>` flag for `qmd embed` and `qmd query`.
|
||||
Default is `regex` (existing behavior). Use `auto` to enable AST-aware
|
||||
chunking for code files.
|
||||
- `qmd status` now shows AST grammar availability.
|
||||
- SDK: `chunkStrategy` option on `embed()` and `search()` methods.
|
||||
- GitHub Actions workflow to build the Nix flake on Linux and macOS.
|
||||
`--chunk-strategy <auto|regex>` flag on `qmd embed` and `qmd query`
|
||||
(default `regex`). SDK: `chunkStrategy` option on `embed()` and
|
||||
`search()`. `qmd status` shows grammar availability.
|
||||
- `qmd bench <fixture.json>` command for search quality benchmarks.
|
||||
Measures precision@k, recall, MRR, and F1 across BM25, vector, hybrid,
|
||||
and full pipeline backends. Ships with an example fixture against
|
||||
the eval-docs test collection.
|
||||
the eval-docs test collection. #470 (thanks @jmilinovich)
|
||||
- `models:` section in `index.yml` lets you configure `embed`, `rerank`,
|
||||
and `generate` model URIs per config. Resolution order is
|
||||
and `generate` model URIs per collection. Resolution order is
|
||||
config > env var (`QMD_EMBED_MODEL`, `QMD_RERANK_MODEL`,
|
||||
`QMD_GENERATE_MODEL`) > built-in default.
|
||||
`QMD_GENERATE_MODEL`) > built-in default. #502
|
||||
(thanks @JohnRichardEnders)
|
||||
- CLI search output now emits clickable OSC 8 terminal hyperlinks when
|
||||
stdout is a TTY. Links resolve `qmd://` paths to absolute filesystem
|
||||
paths and open in editors via URI templates (default:
|
||||
`vscode://file/{path}:{line}:{col}`). Configure with `QMD_EDITOR_URI`
|
||||
or `editor_uri` in the YAML config.
|
||||
or `editor_uri` in the YAML config. #508 (thanks @danmackinlay)
|
||||
- `--no-rerank` flag skips the reranking step in `qmd query` — useful
|
||||
when you want fast results or don't have a GPU. Also exposed as
|
||||
`rerank: false` on the MCP `query` tool. #370 (thanks @mvanhorn),
|
||||
#478 (thanks @zestyboy)
|
||||
- ONNX conversion script for deploying embedding models via
|
||||
Transformers.js. #399 (thanks @shreyaskarnik)
|
||||
- GitHub Actions workflow to build the Nix flake on Linux and macOS.
|
||||
|
||||
### Fixes
|
||||
|
||||
- Fix paths in nix flake
|
||||
- Make the Nix flake's Bun dependency fetch a fixed-output derivation so
|
||||
sandboxed Linux builds can install dependencies offline.
|
||||
- Embedding: prevent `qmd embed` from running indefinitely when the
|
||||
embedding loop stalls. #458 (thanks @ccc-fff)
|
||||
- Embedding: truncate oversized text before embedding to prevent GGML
|
||||
crash, and bound memory usage during batch embedding. #393
|
||||
(thanks @lskun), #395 (thanks @ProgramCaiCai)
|
||||
- Embedding: set explicit embed context size (default 2048, configurable
|
||||
via `QMD_EMBED_CONTEXT_SIZE`) instead of using the model's full
|
||||
window. #500
|
||||
- Embedding: error on dimension mismatch instead of silently rebuilding
|
||||
the vec0 table. #501
|
||||
- Embedding: handle vec0 `OR REPLACE` limitation in `insertEmbedding`.
|
||||
#456 (thanks @antonio-mello-ai)
|
||||
- Embedding: fix model selection when multiple models are configured.
|
||||
#494
|
||||
- BM25: correct field weights to include all 3 FTS columns — title,
|
||||
body, and path were not weighted correctly. #462 (thanks @goldsr09)
|
||||
- BM25: handle hyphenated tokens in FTS5 lex queries so terms like
|
||||
"real-time" match correctly. #463 (thanks @goldsr09)
|
||||
- BM25: preserve underscores in search terms instead of stripping them.
|
||||
#404
|
||||
- BM25: use CTE in `searchFTS` to prevent query planner regression with
|
||||
collection filter.
|
||||
- Reranker: increase default context size 2048→4096 and make
|
||||
configurable via `QMD_RERANK_CONTEXT_SIZE`. Fix template overhead
|
||||
underestimate 200→512. #453 (thanks @builderjarvis)
|
||||
- GPU: catch initialization failures and fall back to CPU instead of
|
||||
crashing.
|
||||
- MCP: read version from `package.json` instead of hardcoding. #431
|
||||
- MCP: include collection name in status output. #416
|
||||
- Multi-get: support brace expansion patterns in glob matching. #424
|
||||
- Launcher: prioritize `package-lock.json` to prevent Bun false
|
||||
positive. #385 (thanks @rymalia)
|
||||
- Launcher: remove `$BUN_INSTALL` check that caused false Bun detection.
|
||||
#362 (thanks @syedair)
|
||||
- Launcher: skip Git Bash path detection on WSL. #371
|
||||
(thanks @oysteinkrog)
|
||||
- Model cache: respect `XDG_CACHE_HOME` for model cache directory. #457
|
||||
(thanks @antonio-mello-ai)
|
||||
- SQLite: add macOS Homebrew SQLite support for Bun and restore
|
||||
actionable errors. #377 (thanks @serhii12)
|
||||
- Pin zod to exact 4.2.1 to fix `tsc` build failure. #382
|
||||
(thanks @rymalia)
|
||||
- Preserve dots and original case in `handelize()` — filenames like
|
||||
`MEMORY.md` no longer become `memory-md`. #475 (thanks @alexei-led)
|
||||
- Include `line` in `--json` search output so editor integrations can
|
||||
jump directly to `file:line`. #506 (thanks @danmackinlay)
|
||||
- Nix: fix paths in flake and make Bun dependency a fixed-output
|
||||
derivation so sandboxed Linux builds work offline. #479
|
||||
(thanks @surma-dump)
|
||||
- Sync stale `bun.lock` (`better-sqlite3` 11.x → 12.x). CI and release
|
||||
script now use `--frozen-lockfile` to prevent recurrence. #386
|
||||
(thanks @Mic92)
|
||||
- Sync duplicated `handelize()` test expectations with the restored lowercase
|
||||
behavior.
|
||||
- Include `line` in `--json` search output so editor integrations can jump
|
||||
directly to `file:line`. Closes #505 (thanks @danmackinlay)
|
||||
- Approve native build scripts in pnpm so `better-sqlite3` and
|
||||
tree-sitter modules compile correctly. Update vitest ^3.0.0 → ^3.2.4.
|
||||
|
||||
## [2.0.1] - 2026-03-10
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user