@mindrian_os/cli 1.15.3-beta.18 → 1.15.3-beta.22

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 +54 -0
  2. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,3 +1,57 @@
1
+ ## [1.15.3-beta.22] - 2026-07-16
2
+
3
+ ### Added
4
+ -
5
+
6
+ ## [1.15.3-beta.20] - 2026-07-16
7
+
8
+ ### Added
9
+ - **Eureka entity extraction gets a two-tier WHAT-vs-WHY classifier.** A free, fully local
10
+ embedding pass (`lib/core/eureka/embedding-classifier.cjs`) now resolves the confident
11
+ majority of candidates at zero API spend, reusing the same encoder Eureka's own ranking
12
+ already depends on. The existing LLM classifier is demoted to an escalation-only path,
13
+ called per artifact only for the genuinely ambiguous residual the embedding tier cannot
14
+ confidently place. Measured on a real room: 61.1% of candidates resolve locally and
15
+ correctly, 14.3% fewer artifact-level LLM calls. Honest degrade throughout: no LLM key
16
+ means a disclosed low-confidence embedding best-guess, never a silent default; `classifier_source`
17
+ now reports `embedding` / `model` / `mixed` / `fallback` so every result states which tier
18
+ produced it. Tunable via `MINDRIAN_WHATWHY_MARGIN` (default 0.10, calibrated against a
19
+ measured holdout set). (Quick task 260714-k44.)
20
+
21
+ ### Fixed
22
+ - **A low-confidence WHY term is no longer structurally indistinguishable from a confident one.**
23
+ When Eureka's two-tier classifier places a candidate as a framework (WHY) term but has no
24
+ working LLM to confirm the low-margin embedding best-guess, the term lands in the artifact's
25
+ `framework_terms` prop. The only trace that the guess was low-confidence lived in the aggregate
26
+ `status.json` counter (`tier2_low_confidence`); once written onto the node, the guess looked
27
+ exactly like a confidently-resolved term. Each term that lands via the no-LLM degrade path is
28
+ now disclosed per-term in an additive `framework_terms_low_confidence` sibling prop (always a
29
+ subset of `framework_terms`); a confident later run removes the marker; and existing readers of
30
+ `framework_terms`, which stays a plain comma-joined scalar, are unaffected. The 219 metadata
31
+ test now pins the disclosure so it cannot silently disappear. Caught live by the run-all-221
32
+ regression chain. (Quick task 260715-cu8.)
33
+ - **Eureka's ranked top-25 no longer refills with scaffold pairs when real entities are thin.**
34
+ Every room stores one `memory_artifact` node per file as document scaffolding. When a room's
35
+ real-entity cohort is thin, those scaffolding nodes were pairing with each other and flooding
36
+ the ranked top-25 with `memory_artifact`-vs-`memory_artifact` pairs that carry no cross-domain
37
+ signal (measured at 72.0 percent of the top-25 on a live room once entity extraction correctly
38
+ thinned the entity population). Scaffold-vs-scaffold pairs are now excluded from the ranked-pair
39
+ candidate set by construction, at the point the candidate list is built, so the structural share
40
+ drops to 0.0 percent on the same live substrate regardless of how sparse the real entities are.
41
+ The exclusions are counted honestly in the report provenance (`scaffold_pairs_excluded`, in both
42
+ the JSON and the markdown table), never silently dropped. Pairs with only ONE scaffolding side
43
+ are unaffected, so a real entity paired with the artifact it came from still ranks. (Quick task
44
+ 260715-0nj.)
45
+ - **Eureka's entity-extraction pre-step no longer fails silently.** `/mos:eureka run`'s
46
+ auto-extraction step (shipped in beta.18) could fail (a thrown error, or the more likely
47
+ internally-caught non-zero return) with zero visible trace: exit 0, status `done`, nothing
48
+ in the report to say extraction never actually populated the graph. This reproduced the
49
+ exact false-success shape found in a live intern QA session. Failures on both paths now
50
+ surface as an additive `extraction_error` field in the eureka status.json plus one stderr
51
+ line; ranking, fallback behavior, and exit codes are unchanged (the degrade-never-throw
52
+ contract stays intact, only the silence is gone). Proven via a RED-then-GREEN reproduction
53
+ test wired into the permanent suite. (Quick task 260714-jjm.)
54
+
1
55
  ## [1.15.3-beta.18] - 2026-07-13
2
56
 
3
57
  ### Added
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mindrian_os/cli",
3
- "version": "1.15.3-beta.18",
3
+ "version": "1.15.3-beta.22",
4
4
  "description": "Install MindrianOS into Claude Code with one command -- `npx @mindrian_os/cli`. Ships the MindrianOS plugin (Larry + PWS methodology + Data Room) plus a setup/diagnostics CLI (install/doctor/update).",
5
5
  "scripts": {
6
6
  "mcp": "node bin/mindrian-mcp-server.cjs",