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

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