v1.1.1
tobi/qmdv1.1.1Mar 7, 2026by github-actions[bot]
AI Summary
Small fix release addressing reranker document truncation issues and Nix build dependencies. Reranker now properly truncates documents exceeding the 2048-token context window instead of producing garbage scores.
Key Highlights
- Reranker truncates documents exceeding 2048-token context window
- Nix build dependencies updated with python3 and cctools
New Features
- Reranker document truncation for long chunks (e.g., from PDF ingestion)
Full Release Notes
## [1.1.1] - 2026-03-06 ### Fixes - Reranker: truncate documents exceeding the 2048-token context window instead of silently producing garbage scores. Long chunks (e.g. from PDF ingestion) now get a fair ranking. - Nix: add python3 and cctools to build dependencies. #214 (thanks @pcasaretto) ## [1.1.0] - 2026-02-20 QMD now speaks in **query documents** — structured multi-line queries where every line is typed (`lex:`, `vec:`, `hyde:`), combining keyword precision with semantic recall. A single plain query still works exactly as before (it's treated as an implicit `expand:` and auto-expanded by the LLM). Lex now supports quoted phrases and negation (`"C++ performance" -sports -athlete`), making intent-aware disambiguation practical. The formal query grammar is documented in [docs/SYNTAX.md](https://github.com/tobi/qmd/blob/main/docs/SYNTAX.md). The npm package now uses the standard `#!/usr/bin/env node` bin convention, replacing the custom bash wrapper. This fixes native module ABI mismatches when installed via bun and works on any platform with node >= 22 on PATH. ### Changes - **Query document format**: multi-line queries with typed sub-queries (`lex:`, `vec:`, `hyde:`). Plain queries remain the default (`expand:` implicit, but not written inside the document). First sub-query gets 2× fusion weight — put your strongest signal first. Formal grammar in `[docs/SYNTAX.md`](https://github.com/tobi/qmd/blob/main/docs/SYNTAX.md). - **Lex syntax**: full BM25 operator support. `"exact phrase"` for verbatim matching; `-term` and `-"phrase"` for exclusions. Essential for disambiguation when a term is overloaded across domains (e.g. `performance -sports -athlete`). - **`expand:` shortcut**: send a single plain query (or start the document with `expand:` on its only line) to auto-expand via the local LLM. Query documents themselves are limited to `lex`, `vec`, and `hyde` lines. - **MCP `query` tool** (renamed from `structured_search`): rewrote the tool description to fully teach AI agents the query document format, lex syntax, and combination strategy. Includes worked examples with intent-aware lex. - **HTTP `/query` endpoint** (renamed from `/search`; `/search` kept as silent alias). - **`collections` array filter**: filter by multiple collections in a single query (`collections: ["notes", "brain"]`). Removed the single `collection` string param — array only. - **Collection `include`/`exclude`**: `includeByDefault: false` hides a collection from all queries unless explicitly named via `collections`. CLI: `qmd collection exclude <name>` / `qmd collection include <name>`. - **Collection `update-cmd`**: attach a shell command that runs before every `qmd update` (e.g. `git stash && git pull --rebase --ff-only && git stash pop`). CLI: `qmd collection update-cmd <name> '<cmd>'`. - **`qmd status` tips**: shows actionable tips when collections lack context descriptions or update commands. - **`qmd collection` subcommands**: `show`, `update-cmd`, `include`, `exclude`. Bare `qmd collection` now prints help. - **Packaging**: replaced custom bash wrapper with standard `#!/usr/bin/env node` shebang on `dist/qmd.js`. Fixes native module ABI mismatches when installed via bun, and works on any platform where node >= 22 is on PATH. - **Removed MCP tools** `search`, `vector_search`, `deep_search` — all superseded by `query`. - **Removed** `qmd context check` command. - **CLI timing**: each LLM step (expand, embed, rerank) prints elapsed time inline (`Expanding query... (4.2s)`). ### Fixes - `qmd collection list` shows `[excluded]` tag for collections with `includeByDefault: false`. - Default searches now respect `includeByDefault` — excluded collections are skipped unless explicitly named. - Fix main module detection when installed globally via npm/bun (symlink resolution).