@geohar/pi-cribsheet 0.22.0-dev1 → 0.22.0-dev2

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 +125 -0
  2. package/package.json +5 -3
package/CHANGELOG.md ADDED
@@ -0,0 +1,125 @@
1
+ # Changelog
2
+
3
+ All notable changes to cribsheet are recorded here. The format follows
4
+ [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and versions follow
5
+ [Semantic Versioning](https://semver.org/spec/v2.0.0.html). Dev releases
6
+ (`X.Y.Z-devN`) are cut from the `dev` branch.
7
+
8
+ This file ships in the Pi package, where Pi shows the entries newer than the
9
+ version you last ran. `scripts/bump-version.sh` refuses a release whose
10
+ version has no heading here.
11
+
12
+ ## [0.22.0-dev2] - 2026-11-09
13
+
14
+ ### Added
15
+
16
+ - `docs/vector-store.md`: the DuckDB setup (embedded vs shared mode, every
17
+ `[duckdb]` key, file layout, the per-machine caches, recovery).
18
+ - `docs/migrating-to-duckdb.md`: upgrading a 0.21.x machine from chroma.
19
+ - This changelog. The Pi package ships it and points `pi.changelogPath` at it,
20
+ so Pi lists what changed after an update.
21
+
22
+ ### Changed
23
+
24
+ - `scripts/bump-version.sh` refuses a version with no `CHANGELOG.md` heading,
25
+ and copies the changelog into `plugins/pi/` with each release.
26
+ - Dev-release tags are published as GitHub prereleases, so they never take
27
+ "Latest" from the last stable release.
28
+ - Docs no longer describe chroma as the current store.
29
+
30
+ ## [0.22.0-dev1] - 2026-11-09
31
+
32
+ ### Removed
33
+
34
+ - **chroma.** DuckDB is the only vector store. Gone with it: `ChromaStore`,
35
+ 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).
38
+
39
+ ### Added
40
+
41
+ - **DuckDB store**, selected by `[store] backend = "duckdb"` (the default),
42
+ with exact cosine search. `[duckdb] mode = "embedded"` opens the file in
43
+ process. `mode = "shared"` runs a loopback-only, token-protected DuckDB
44
+ server (`crib-duckdb`, port 7734) through sharedserver.
45
+ `[duckdb] launch = false` attaches to a server something else supervises.
46
+ - **Embedding cache.** Embedded vectors persist, so a warm start embeds only
47
+ new or changed text.
48
+ - **Record cache.** Symbol-index reads skip unchanged TOML files; on un-bien,
49
+ cold start went from 3.0 s to 87 ms.
50
+ - **Generation ledger.** Background generation backs off from inputs that
51
+ already failed: 1 h, 4 h, 16 h, about 2.7 days, then every 7 days.
52
+ `[generate] backlog_budget` (default 50) caps describes per daemon start.
53
+
54
+ ### Changed
55
+
56
+ - `[generate] timeout` is passed to the llmkit provider, so a hung endpoint
57
+ is abandoned.
58
+ - A structured generation call that returns no data counts as a failure.
59
+ - crib never forks: subprocesses go through `posix_spawn` (`crib.proc`).
60
+ Forking a process that has loaded macOS's Network.framework can crash the
61
+ child.
62
+ - crib's DuckDB connections keep extensions and secrets under crib's own
63
+ directory, never `~/.duckdb`.
64
+ - Requires `polyllmkit>=0.2.2`.
65
+
66
+ ### Fixed
67
+
68
+ - Malformed `lsp.json` or `grammar.json` files print a warning instead of
69
+ being silently ignored.
70
+
71
+ ## [0.21.6] - 2026-11-08
72
+
73
+ ### Changed
74
+
75
+ - Shared chroma mode is refused only for an off-box bind; loopback is allowed.
76
+
77
+ ## [0.21.5] - 2026-11-08
78
+
79
+ ### Added
80
+
81
+ - Per-set read-only tool exposure, for example `--tools notes:ro`: the
82
+ mutating verbs are never registered.
83
+
84
+ ### Security
85
+
86
+ - Shared chroma mode is refused until `[chroma].allow_unpatched_remote` is
87
+ set, guarding the unpatched server CVE-2026-45829.
88
+
89
+ ## [0.21.4] - 2026-11-04
90
+
91
+ ### Fixed
92
+
93
+ - A finished `project_index` sweep keeps its final counts in `project_status`.
94
+
95
+ ## [0.21.3] - 2026-11-04
96
+
97
+ ### Added
98
+
99
+ - Tool-set exposure: `crib serve --tools` and `[tools] expose` choose the
100
+ MCP surface per deployment.
101
+ - `project_status` carries a `jobs` section.
102
+
103
+ ### Changed
104
+
105
+ - `project_index` returns at once and its sweep runs in the daemon; poll
106
+ `project_status` instead of blocking.
107
+ - `project_relocate` runs its heavy half in the daemon, so a client
108
+ disconnect can't cancel it. It also completes a move-and-rename: mount
109
+ rename plus citation rewrite.
110
+
111
+ ## [0.21.1] - 2026-11-03
112
+
113
+ ### Added
114
+
115
+ - `project_relocate`: re-home a project at its moved repo, keeping its
116
+ identity.
117
+
118
+ ## [0.21.0] - 2026-11-03
119
+
120
+ ### Changed
121
+
122
+ - The directive names `project=` on every read.
123
+ - One funnel anchors every session (the era gate); sync reads ask when a
124
+ session has no anchor.
125
+ - 2026-era clients are served directly; a stateless refusal says what to do.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@geohar/pi-cribsheet",
3
- "version": "0.22.0-dev1",
3
+ "version": "0.22.0-dev2",
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",
@@ -9,13 +9,15 @@
9
9
  "extensions": [
10
10
  "./src/index.ts"
11
11
  ],
12
- "image": "https://cdn.jsdelivr.net/npm/@geohar/pi-cribsheet/assets/preview.png"
12
+ "image": "https://cdn.jsdelivr.net/npm/@geohar/pi-cribsheet/assets/preview.png",
13
+ "changelogPath": "./CHANGELOG.md"
13
14
  },
14
15
  "files": [
15
16
  "src",
16
17
  "dist",
17
18
  "instructions.txt",
18
19
  "mcp.json.example",
20
+ "CHANGELOG.md",
19
21
  "README.md",
20
22
  "LICENSE",
21
23
  "assets"
@@ -24,7 +26,7 @@
24
26
  "build": "tsc",
25
27
  "clean": "rm -rf dist",
26
28
  "typecheck": "tsc --noEmit",
27
- "prepack": "node -e \"require('fs').copyFileSync('../../CLAUDE.md.example', './instructions.txt')\"",
29
+ "prepack": "node -e \"const fs=require('fs');fs.copyFileSync('../../CLAUDE.md.example','./instructions.txt');fs.copyFileSync('../../CHANGELOG.md','./CHANGELOG.md')\"",
28
30
  "prepublishOnly": "npm run clean && npm run build"
29
31
  },
30
32
  "keywords": [