prjct-cli 2.42.6 → 2.43.2
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 +10 -37
- package/dist/bin/prjct-core.mjs +436 -434
- package/dist/daemon/entry.mjs +275 -273
- package/dist/mcp/server.mjs +245 -243
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,56 +2,29 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
-
Follow-ups from the v2.42.x range review (the reported-not-fixed list).
|
|
6
|
-
|
|
7
5
|
### Fixed
|
|
8
|
-
- **
|
|
9
|
-
- **SIGHUP now actually reloads.** The handler refreshed only the explicit-dispatch instance; schema-covered commands kept pre-reload group instances forever (the registry's lazy memos were never reset). Both lazy layers now register resetters and SIGHUP clears them.
|
|
6
|
+
- **CRITICAL: the memory cap no longer deletes knowledge.** `capEntries` (runs on every `prjct sync`) counted ALL `memory.%` events against the 500-row cap — high-churn telemetry (`memory.post_edit` fires on every file edit) inflated the total and the age-ordered delete silently destroyed the OLDEST remembered decisions/gotchas/learnings while keeping hundreds of newer telemetry rows. `memory.remember.*` is now invisible to the cap (count and delete); knowledge leaves the log only via `prjct forget`. The delete is also exact-id based instead of an id-range sweep. If a past sync capped your project: the `memories` mirror table still holds the rows with their original ids — restorable.
|
|
10
7
|
|
|
11
|
-
|
|
12
|
-
- **`routingMode: 'cold-only'`** — spec/audit-spec's "shim must serve these cold" condition moves from a side list in scripts/build.js into the manifest; the generated shim skip set is byte-identical, but the truth now lives where a manifest cleanup can't accidentally delete it.
|
|
13
|
-
- **Subagents get the repeat-miss slot** — the "Keeps being missed" entry the session digest gained now reaches subagent digests too (they do most of the editing and were blind to it).
|
|
14
|
-
- **Prune throttle is in-process** — the kv-store counter paid a read+write per session Stop just to decide "skip pruning" 9/10 times; per-process counting is the safe direction (cold runs prune more often, never less).
|
|
8
|
+
## [2.43.2] - 2026-06-11
|
|
15
9
|
|
|
16
|
-
|
|
10
|
+
### Bug Fixes
|
|
17
11
|
|
|
18
|
-
|
|
19
|
-
- **Lazy command loaders no longer memoize rejected promises.** A transient import/constructor error during the first dispatch of a command group used to be cached forever — every later command in that group replayed the same error for the daemon's lifetime (the old eager loading failed loud at startup instead). Both layers fixed (registry group loaders + the 17 `PrjctCommands` getters); the next dispatch now retries.
|
|
20
|
-
- **`mapOptions` numbers**: non-numeric input for a numeric flag maps to `undefined` (flag ignored) instead of `NaN`.
|
|
12
|
+
- release job is idempotent — recovery path for partial failures + retried npm publish (#426)
|
|
21
13
|
|
|
22
|
-
### Changed
|
|
23
|
-
- New CI guard: `manifest-completeness` instantiates every command group and verifies each manifest `routing.method` actually exists — restoring the registration-time validation the lazy refactor deferred to first dispatch.
|
|
24
|
-
- `registerLazyMethod` memoizes the resolved instance+method pair (was re-resolving per dispatch); dead `registerMethod` deleted (single registration mechanism).
|
|
25
|
-
- `runBinCommand` imports moved into the branches that use them — every bin command was paying the `version` branch's chalk/ai-provider/file-helper imports.
|
|
26
|
-
- `compareSemver` deduped to the `schemas/model.ts` implementation; the monotonic-stamp rule shared between `nextKvStamp` and `updateDoc`; `cosineSimilarity` single-sourced over `dot`/`l2Norm`.
|
|
27
14
|
|
|
15
|
+
## [2.43.1] - 2026-06-11
|
|
28
16
|
|
|
29
|
-
|
|
17
|
+
### Bug Fixes
|
|
30
18
|
|
|
31
|
-
|
|
32
|
-
- **Post-upgrade re-setup silently never ran.** `bin/prjct.ts` invoked `setup.run()` through a default export that the ESM-standardization PR (#132, 2026-02) deleted — `bin/` sits outside core's typecheck, so the call threw `TypeError` into its own catch and only stamped the version, on every upgrade, for four months. `run()` is a named export now and bin imports it directly.
|
|
19
|
+
- memory cap never deletes knowledge — exclude memory.remember.* from capEntries (#425)
|
|
33
20
|
|
|
34
|
-
### Performance
|
|
35
|
-
- **FTS5 prefix indexes** (migration 29): `searchFts` matches every keyword as a prefix query, but the FTS table had no prefix indexes — each term scanned the full-term index. Recreated with `prefix='2 3 4'` + content rebuild.
|
|
36
21
|
|
|
37
|
-
|
|
38
|
-
- **MCP tool descriptions are intent-led.** Six tools (analysis, workflow rules/list/status, signatures, history) were noun phrases with no "when to reach for this"; each now states what it returns and when to use it.
|
|
39
|
-
- **`package.json` overrides documented** in CONTRIBUTING.md — vulnerability class, the PR that introduced each pin (#251/#326), and the removal condition.
|
|
40
|
-
|
|
41
|
-
### Refactoring
|
|
42
|
-
- **God-files split.** `infrastructure/setup.ts` (892 → 472) extracted `codex-skill.ts` + `statusline-installer.ts`; `memory/project-memory.ts` (1086 → 660) extracted `entries.ts` (types + row mapping + pure filters) and `format.ts` (markdown rendering). All importers updated per the no-re-export rule.
|
|
43
|
-
- **Dropped the `glob` dependency** — the single call site (monorepo workspace discovery) uses native `node:fs` `globSync` (node ≥22 / bun; the engine floor is already 22.5). `@types/node@22` pinned as a devDependency (types resolved to a transitive v20 that predates `globSync`).
|
|
22
|
+
## [2.43.0] - 2026-06-10
|
|
44
23
|
|
|
45
|
-
###
|
|
46
|
-
- **Daemon command groups load lazily.** `PrjctCommands` and the registry bindings eagerly imported and instantiated all ~18 command-group classes at daemon startup; both now use memoized dynamic-import loaders (new `registerLazyMethod`), so the first socket request stops paying for the whole command tree (daemon module import: 67ms → 40ms warm).
|
|
24
|
+
### Features
|
|
47
25
|
|
|
48
|
-
|
|
49
|
-
- **All prjct data paths honor `PRJCT_CLI_HOME`.** New shared lazy resolver (`core/infrastructure/cli-home.ts`); fixed the four sites with no override at all — the embeddings key file, the auto-updater state dir, the context7 verify cache, and session-cleanup's rotation, which had drifted from the writer's path and rotated the user's *real* cache file from test runs.
|
|
50
|
-
- Dropped the dead `daemon start --port/--no-http` flags — parsed for years but never accepted by `startDaemon` (the latent type error only surfaced when the handler moved under core's typecheck).
|
|
26
|
+
- vault v2 — signal-first RAG (telemetry quarantine, link-only tags, dashboard index) (#424)
|
|
51
27
|
|
|
52
|
-
### Refactoring
|
|
53
|
-
- **`bin/prjct.ts` split**: the ~550 lines of bin-only command handlers moved to `core/cli/bin-commands.ts` (1082 → 536 lines); the entry point keeps startup concerns only.
|
|
54
|
-
- **`core/workflow/` → `core/workflow-engine/`** — disambiguates the rule engine from `core/workflows/` (implementations).
|
|
55
28
|
|
|
56
29
|
## [2.42.6] - 2026-06-10
|
|
57
30
|
|