@geohar/pi-cribsheet 0.21.6 → 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.
- package/CHANGELOG.md +125 -0
- 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.
|
|
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',
|
|
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": [
|