From 6ac7c6837ee60fecaf94678b84deffa56c54ec80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobi=20L=C3=BCtke?= Date: Thu, 19 Feb 2026 06:56:17 -0500 Subject: [PATCH] chore: release 1.0.8 --- CHANGELOG.md | 25 +++++++++++++++++++++++++ package.json | 2 +- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f8ada81..212be32 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,31 @@ ## [Unreleased] +## [1.0.8] - 2026-02-19 + +QMD now speaks in **query documents** — structured multi-line queries where each line is typed (`lex:`, `vec:`, `hyde:`, `expand:`), combining keyword precision with semantic recall. A single plain query still works exactly as before. AI agents using the MCP tool get significantly richer search capability: lex now supports quoted phrases and negation (`"C++ performance" -sports -athlete`), making intent-aware disambiguation practical. + +### Changes + +- **Query document format**: multi-line queries with typed sub-queries (`lex:`, `vec:`, `hyde:`, `expand:`). Plain queries remain the default (`expand:` implicit). First sub-query gets 2× fusion weight — put your strongest signal first. +- **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:` type**: explicit auto-expansion via local LLM. Max one per query document. Identical to the prior default behavior for plain queries. +- **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 ` / `qmd collection include `. +- **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 ''`. +- **`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. +- **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. + ## [1.0.7] - 2026-02-18 ### Changes diff --git a/package.json b/package.json index 465523e..3d8adb7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@tobilu/qmd", - "version": "1.0.7", + "version": "1.0.8", "description": "Query Markup Documents - On-device hybrid search for markdown files with BM25, vector search, and LLM reranking", "type": "module", "bin": {