@geohar/pi-cribsheet 0.22.0-dev2 → 0.22.0

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.
Files changed (2) hide show
  1. package/CHANGELOG.md +52 -2
  2. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -9,6 +9,56 @@ This file ships in the Pi package, where Pi shows the entries newer than the
9
9
  version you last ran. `scripts/bump-version.sh` refuses a release whose
10
10
  version has no heading here.
11
11
 
12
+ ## [0.22.0] - 2026-11-09
13
+
14
+ ### Fixed
15
+
16
+ - **Shared store recovery.** One failed reconnect no longer leaves the
17
+ shared (Quack) client unusable until the daemon restarts; threads that
18
+ lose the same session relaunch the server once between them; and with
19
+ `[duckdb] launch = false` a reconnect waits for the supervised server.
20
+ - **`tags=` lookups return k results.** The tag filter now runs inside the
21
+ store query instead of after the top results were picked.
22
+ - **The embedding cache can't be poisoned** by the hash-embedder fallback:
23
+ it keys on the embedder actually built and never caches hash vectors.
24
+ - A zero vector scores 0 instead of NaN, which sorted above every match.
25
+ - Hybrid retrieval scores keyword-only candidates on their stored vectors
26
+ (heading breadcrumb plus body, as the dense search ranks them) instead of
27
+ re-embedding the bare body.
28
+
29
+ ### Changed
30
+
31
+ - `code_lookup` and summary-alias scoring use numpy (about 140 ms to 0.1 ms
32
+ per code query at 16k symbols). numpy is now a direct dependency.
33
+ - Shared mode sends each vector as one literal: writes about 20x faster.
34
+ - A note write is one transaction; metadata refreshes are one statement
35
+ per batch.
36
+ - A `crib_meta` table records the schema version, record-cache format and
37
+ embedder; a change drops or rebuilds what depended on it, and switching
38
+ embedders at the same vector size now recreates the store.
39
+ - The generation ledger forgets files that no longer need a description;
40
+ the embedding cache drops other embedders' vectors.
41
+ - `crib status` shows `store_stats` (rows, versions, sizes, reconnects) and
42
+ embedding-cache hits; the store checkpoints after a startup reconcile.
43
+
44
+ ### Added
45
+
46
+ - `crib store install-extensions`: fetch the shared-mode DuckDB extensions
47
+ ahead of time, for containers and offline machines.
48
+
49
+ ### Removed
50
+
51
+ - The `json` store backend (`[store] backend = "json"` now warns and uses
52
+ DuckDB; the old `~/.cache/crib/store.json` can be deleted), and leftover
53
+ chroma-era code paths.
54
+
55
+ ### Upgrading from a 0.22.0 dev release
56
+
57
+ - Chunks whose tags were stored as a comma-joined string are converted to the
58
+ new list form when the store opens, so `tags=` lookups work at once.
59
+ - Embedding-cache rows keyed by the old configured model name are dropped
60
+ once; the vectors in the store itself are untouched.
61
+
12
62
  ## [0.22.0-dev2] - 2026-11-09
13
63
 
14
64
  ### Added
@@ -33,8 +83,8 @@ version has no heading here.
33
83
 
34
84
  - **chroma.** DuckDB is the only vector store. Gone with it: `ChromaStore`,
35
85
  the shared chroma server, the `[chroma]` config table (now ignored with a
36
- one-time warning), the chroma CVE guard, `crib store migrate`, and the
37
- `chromadb` dependency. Upgrading: [docs/migrating-to-duckdb.md](docs/migrating-to-duckdb.md).
86
+ one-time warning), the chroma CVE guard, and the `chromadb` dependency.
87
+ Upgrading: [docs/migrating-to-duckdb.md](https://github.com/georgeharker/cribsheet/blob/main/docs/migrating-to-duckdb.md).
38
88
 
39
89
  ### Added
40
90
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@geohar/pi-cribsheet",
3
- "version": "0.22.0-dev2",
3
+ "version": "0.22.0",
4
4
  "description": "Pi extension: run the crib (cribsheet) memory + code-index MCP server via sharedserver, inject the reach-for-crib directive, and ship the /crib recall command. Pairs with pi-mcp-adapter.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",