prjct-cli 2.41.0 → 2.42.1

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,40 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ Hot-path performance pass over the hooks that fire on every Claude turn.
6
+
7
+ ### Fixed
8
+ - **Session-end embedding backfill was a silent no-op.** The Stop hook passed the project *path* where `backfill` expects the project *id*, so every session end wrote vectors to a phantom database under `~/.prjct-cli/projects/Users/…` instead of the real project DB. Vectors now land where semantic search reads them.
9
+
10
+ ### Performance (per-turn hooks)
11
+ - **Stop hook reads the config once and the transcript once.** It read `prjct.config.json` 4–5× per turn (once per sub-service, plus once per `remember()` call) and read+parsed the session transcript JSONL 3× (transcript-learner, friction-detector, skill-miss-detector). The hook now reads each once and threads them through; the three detectors share one JSONL tokenizer (`transcript-jsonl.ts`), deduplicating three identical parsers.
12
+ - **`StorageManager.update` is one transaction.** The optimistic-CAS retry loop (up to 8 × [2 SELECTs + UPDATE]) is now a single `BEGIN IMMEDIATE` read-modify-write — strictly stronger for multi-agent state (concurrent writers wait on the lock instead of looping), with 1 SELECT + 1 write per update.
13
+ - **Embedding backfill fetches only new entries.** A SQL anti-join replaces deserializing the whole memory corpus per Stop hook; noise-vector pruning (which needs the full corpus) is throttled to every 10th run.
14
+ - **Global config is stat-cached.** `resolveGlobalEmbeddings` did 7 `readFileSync`+parse of `global.json` per Stop hook; reads now revalidate against mtime+size, so a CLI write is still picked up by a long-lived daemon.
15
+ - **CLI cold-path reorder.** The hook fast path runs before the verb-registry import and the update/self-heal blocks (hooks need none of them); self-heal moved after the daemon fast path (SessionStart's own self-heal keeps coverage).
16
+
17
+ ## [2.42.1] - 2026-06-10
18
+
19
+ ### Performance
20
+
21
+ - hot paths — Stop hook config/transcript once, CAS→txn, backfill anti-join + ghost-DB fix (#416)
22
+
23
+ ### Refactoring
24
+
25
+ - perf: hot paths — Stop hook config/transcript once, CAS→txn, backfill anti-join + ghost-DB fix (#416)
26
+
27
+
28
+ ## [2.42.0] - 2026-06-10
29
+
30
+ ### Features
31
+
32
+ - LLM-first surface — untruncated agent output, subagent digest, skill-miss loop, indexed recall (#415)
33
+
34
+ ### Refactoring
35
+
36
+ - feat: LLM-first surface — untruncated agent output, subagent digest, skill-miss loop, indexed recall (#415)
37
+
38
+
5
39
  ## [2.41.0] - 2026-06-09
6
40
 
7
41
  Memory recall + apply-loop: prjct now *applies* what it learns at the moment it matters, not just on demand — and the knowledge survives model updates.