@geohar/pi-cribsheet 0.22.1 → 0.23.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 +97 -0
  2. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -9,6 +9,103 @@ 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.23.0-dev2] - 2026-11-13
13
+
14
+ ### Added
15
+
16
+ - `crib project doctor` (`project_doctor`): what in a project needs
17
+ attention, report-only, each finding naming the command that fixes it.
18
+ It checks dangling dependencies; dependencies on a superseded decision
19
+ (naming its replacement) or a declined plan; cited sections that changed
20
+ or vanished; moved or orphaned learnings; one id in several files;
21
+ near-duplicate notes, decisions and plans; and pending descriptions.
22
+ - `crib project related <ref>` (`project_related`): one item's links both
23
+ ways and its nearest notes, decisions, plans, learnings and symbols.
24
+ - `crib project lookup` (`project_lookup`): one search across notes,
25
+ decisions, plans and learnings, with `--kind` and `--status` filters.
26
+ - `[generate] mode = "on" | "explicit" | "off"`. Without a models
27
+ config it is `explicit`: crib generates descriptions, keywords and
28
+ summaries only when you run a verb that asks for them, and never drives
29
+ the Claude CLI in the background on its own. Background indexing still
30
+ saves code structure; `status` counts the descriptions waiting.
31
+ - `status` reports the daemon: uptime, startup milestones, the background
32
+ work running now, queue depths, and whether file events are arriving.
33
+ The daemon writes a log, by default `~/.cache/crib/daemon.log`.
34
+ - When file events are delayed (macOS fseventsd under load), the daemon
35
+ says so and sweeps for changes every two minutes until they recover.
36
+
37
+ ### Changed
38
+
39
+ - After a note, decision or plan write, `similar` compares the whole item
40
+ with every note, decision and plan in the project, not just its first
41
+ line against one pillar. Each match says whether it is a duplicate, a
42
+ confusingly similar title, already settled (done, declined, parked,
43
+ superseded) or just related, and what to do. Plan adds return it too.
44
+ - Decision and plan reads list `suggested_deps`: active decisions the item
45
+ is close to but doesn't depend on, with the command to add the link.
46
+ - `design_import` and `plan_import` name, for each section, the existing
47
+ decisions or plans closest to it.
48
+ - The learnings report names where an orphaned learning probably went.
49
+ - `dep_add` with a different kind changes an existing dependency's kind
50
+ and keeps it verified.
51
+ - Summary aliases are embedded once and kept, instead of re-embedded after
52
+ every daemon start; the keyword index is read from the store.
53
+
54
+ ### Fixed
55
+
56
+ - `status` no longer shows a git remote's password or token.
57
+
58
+ ### Upgrading
59
+
60
+ - The store's schema changes again, so the first daemon on this version
61
+ rebuilds its cache from your files once.
62
+ - If you relied on background generation without a models config, set
63
+ `[generate] mode = "on"`.
64
+
65
+ ## [0.23.0-dev1] - 2026-11-12
66
+
67
+ The DuckDB cache now has one uniform shape: an item per note, decision, plan,
68
+ learning or code symbol; one table per kind for that kind's own fields; one
69
+ table of links between items; and the lexical postings. The files stay the
70
+ truth. The store is kept exact by every read and write, and answers the
71
+ queries.
72
+
73
+ ### Added
74
+
75
+ - Dependency kinds. A dependency can say what it means: `follows` (blocked
76
+ until the target is done), `rests_on` (blocked while the target is stale)
77
+ or `informed_by` (checked for change, never blocks). Without one, a dep
78
+ gets the target's default: a plan is `follows`, a decision `rests_on`, a
79
+ note `informed_by`. Use `--follows`, `--rests-on`, `--informed-by` or
80
+ `dep-add --as`; reads report each dep's kind.
81
+ - A plain note can be a dependency target: checked for change, never
82
+ blocking. It used to read as a deleted dependency.
83
+
84
+ ### Changed
85
+
86
+ - Code search runs from the store, so crib no longer keeps every project's
87
+ symbols, keyword index and description vectors in memory. On a 10,000
88
+ symbol project a warm read of all records takes 0.2 s.
89
+ - Design and plan graph reads parse only files changed since the last read:
90
+ 0.16 s to 0.03 s on a 455-item project.
91
+ - The startup and post-pull reconcile reads only notes changed since they
92
+ were last indexed: 4.2 s to 0.5 s across 21 projects. An explicit
93
+ `reindex` still re-reads everything.
94
+ - The watcher refreshes the store as record files, decisions and plans
95
+ change; reads still catch anything it misses.
96
+ - Decisions written by crib no longer carry an empty `links: []` line.
97
+
98
+ ### Fixed
99
+
100
+ - Projects that vendor the same file (the same symbol in several projects)
101
+ no longer overwrite each other's symbols in the store.
102
+
103
+ ### Upgrading
104
+
105
+ - The store's schema changes, so the first daemon on this version rebuilds
106
+ its DuckDB cache once from the files. Nothing in your notes, decisions,
107
+ plans or symbol records changes.
108
+
12
109
  ## [0.22.1] - 2026-11-10
13
110
 
14
111
  ### Fixed
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@geohar/pi-cribsheet",
3
- "version": "0.22.1",
3
+ "version": "0.23.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",