prjct-cli 2.37.3 → 2.37.5

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,7 +2,28 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
- ## [2.37.3] - 2026-06-01
5
+ ## [2.37.5] - 2026-06-01
6
+
7
+ Robustness sweep: close an entire class of "works in the terminal, broken via the daemon" bugs — and add a test so it can't come back.
8
+
9
+ ### Fixed
10
+ - **Commands silently dropped their flags when run through the daemon.** A command whose cold handler (`core/index.ts`) reads option flags but has no explicit `case` in the daemon dispatcher fell through to the option-less registry path, dropping every flag. Beyond `embeddings` (fixed in 2.37.3), this hit:
11
+ - `prjct capture "…" --tags … --force` — tags and the secret-override were dropped (an explicit `capture` is registered, so it skipped the unknown-verb auto-route and fell through).
12
+ - `prjct init --pack … --persona … --yes` — onboarding pack/persona selection was ignored.
13
+ - `prjct regen --md` — agents got non-md output.
14
+ - `prjct login --url …`, `prjct logout`, `prjct auth` — flags/args dropped.
15
+ Each now has an explicit dispatch case mirroring the cold path (and `init` correctly uses the request's cwd, not the daemon's).
16
+
17
+ ### Internal
18
+ - New `dispatch-option-parity.test.ts`: every option-bearing cold command must be either cold-handled (`_binCommands`) or explicitly cased in the daemon dispatcher. CI now fails if a future option-taking command reintroduces this drift.
19
+
20
+ Hot-path performance (batch 2 from the optimization audit) — the UserPromptSubmit hook fires on every prompt and blocks context injection, so its DB work is the most worth trimming.
21
+
22
+ ### Performance
23
+ - **Inbox depth is now a `COUNT`, not a 200-row overfetch + deserialize.** The prompt hook read up to 200 event rows, JSON-parsed each, filtered by type, and used only `.length`. New `projectMemory.countByType()` runs a single exact-type `COUNT` — and reports the true count instead of capping at 50.
24
+ - **Improvement-signal recall is now an exact-type query.** It used the generic `recall({types:['improvement-signal']})`, which does a broad `type LIKE 'memory.remember.%'` 4× overfetch + JS type-filter. New `projectMemory.recallByType()` queries the one exact type, newest-first, using the index. Together these cut the every-prompt hook from up to three `events` overfetch-scans to targeted indexed lookups.
25
+
26
+ Deferred (audit batch 2 remainder): stop-hook transcript read-once + step parallelization, embeddings backfill delta query, FTS5 prefix-index rebuild — all detached/session-end work, lower priority than the per-prompt path.
6
27
 
7
28
  Confirmed-bug batch from a full optimization audit (4 parallel reviewers, each finding adversarially verified — two "high severity" findings turned out false and were dropped).
8
29