ko-qmd 2.8.3-ko.4 → 2.8.3-ko.5

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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,45 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [2.8.3-ko.5] - 2026-09-24
6
+
7
+ Rerank gets an input cap. Truncating each document to 128 tokens keeps KB
8
+ goldset quality (Hit@5 0.97 / Recall@5 0.77) while cutting cold rerank p90 from
9
+ 3.6s to 0.9s on an M3 Max. The cap can be set daemon-wide
10
+ (`QMD_RERANK_MAX_DOC_TOKENS`) or per request (`rerankMaxDocTokens` on REST
11
+ `/query` and SDK `search()`). The README is now a Korean guide to ko-qmd itself,
12
+ and the English reference lives in `docs/REFERENCE.md`.
13
+
14
+ ### Changes
15
+
16
+ - README.md is rewritten in Korean around ko-qmd itself: what differs from
17
+ upstream, install, quick start, MCP/REST/SDK, environment variables and the
18
+ maintenance guide that used to live in `README.ko.md` (now removed). The
19
+ upstream-derived English reference (full CLI, MCP tool parameters, SDK API,
20
+ score fusion) moved to `docs/REFERENCE.md`, with install and import names
21
+ switched to `ko-qmd`.
22
+ - REST `POST /query` and SDK `search()` take `rerankMaxDocTokens`, a
23
+ per-request rerank doc token cap. For that request it overrides the daemon's
24
+ `QMD_RERANK_MAX_DOC_TOKENS`, and it never raises the context budget. A caller
25
+ like the KB seam can then turn a capped rerank on for one machine without
26
+ changing the daemon's env. The rerank cache key follows the effective cap
27
+ (request, else env). Invalid values (non-integer, ≤ 0, strings) are ignored.
28
+ - `QMD_RERANK_MAX_DOC_TOKENS` caps the tokens of each document sent to the
29
+ reranker, below the context budget. Unset keeps today's behaviour. On the KB
30
+ goldset (40 queries, candidateLimit 15), a cap of 128 keeps quality at
31
+ Hit@5 0.97 / Recall@5 0.77 against 0.95 / 0.76 uncapped. It cuts cold p90 from
32
+ 3623ms to 897ms on an M3 Max and from 4720ms to 2192ms on another Apple Silicon
33
+ Mac. The cap is part of the rerank cache key, so capped and uncapped scores
34
+ never mix. Listed in `qmd doctor`.
35
+ - `scripts/dogfood.sh` warms the embedding model with one vec query after
36
+ every daemon restart (deploy and `--restore`). A fresh daemon's first vec
37
+ query took 15.5s, so the first KB seam search after a restart hit its 20s
38
+ limit and fell back to rg. A failed warm-up is a warning, not a failed restart.
39
+ - `scripts/dogfood.sh` waits for the *restarted* daemon. `launchctl kickstart -k`
40
+ returns while the old process is still shutting down and answering `/health`,
41
+ so the restart looked done ~9s before the new process listened. A `/health`
42
+ whose `uptime` predates the kickstart is now treated as the old process.
43
+
5
44
  ## [2.8.3-ko.4] - 2026-09-24
6
45
 
7
46
  Korean documents are now chunked at their real token budget, and Hangul