@mindrian_os/cli 2.0.0-beta.25 → 2.0.0-beta.29

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 +102 -0
  2. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,3 +1,105 @@
1
+ ## [2.0.0-beta.29] - 2026-09-09
2
+
3
+ ### Added
4
+ - **Phase 298 (SEED-032): Harness-as-Code.** MindrianOS declares and machine-enforces its own
5
+ agent harness for the first time. `data/harness-policies/` is the closed, versioned schema:
6
+ eleven slice-1 policies (five gates, four voice rules, the memory-write declaration, the
7
+ Larry contract-parity declaration), each carrying an enforcement rung (`declared` / `logged`
8
+ / `blocking`) read from disk, never hardcoded. `scripts/run-harness.cjs` is the one idempotent
9
+ policy runner: a tiered `--check`, a `--room <dir>` convergence scan (proven idempotent twice
10
+ in a row against a committed fixture, byte-identical output, zero writes), and a `--policy
11
+ <id>` promotion review that prints one evaluator's verdict and never recomputes it.
12
+ `scripts/build-harness-manifest.cjs` goes to manifest v2 (three additive keys -- `policies`,
13
+ `larry_surfaces`, `fixture_ref` -- `maps` stays exactly three) and now runs the Larry
14
+ contract-parity checks inline, so `--check` fails closed the moment any of Larry's three
15
+ speaking surfaces drops a core-contract phrase or the Desktop wire exceeds its 1,950-byte
16
+ budget. `node scripts/doctor.cjs --acceptance` gained a `harness-policies` blocker that spawns
17
+ the runner, wiring the whole harness into the release train's own gate. The pre-commit drift
18
+ guard now fires on any edit under `data/harness-policies/` or `data/harness-fixtures/`, so the
19
+ manifest's own digest cannot silently rot. Two long-red manifest-cluster tests were repaired
20
+ (repointed at the file that actually carries the guard after Phase 235-01's rewrite) rather
21
+ than left recorded as known-broken. 15 plans, 6 waves, goal-backward verified.
22
+ - **Admin-only commands stop leaking into recommendations (SEED-052).** The Brain
23
+ recommendation scorer (`lib/workflow/f-selector-ranker.cjs`) now reads each command's
24
+ `visibility` field (mirrored into `data/command-registry.json` by the generator) and filters
25
+ out `visibility: admin` candidates for a non-admin navigator, fail-closed by default. Closes a
26
+ live, reproduced leak: `/mos:admin` was ranking as the #2 recommendation for every navigator,
27
+ admin or not, before this fix.
28
+ - **Skill-optimization smoke calibration reconciliation (SEED-061).** `scripts/skillopt-funnel.cjs`
29
+ gained a deterministic, exact-match reconciliation pass over `enumerateQueries`'s full-roster
30
+ output: a `should_not_trigger` negative labeled `expected_skill: null` that exactly collides
31
+ with a real positive elsewhere in the roster is corrected before the flag rule scores it,
32
+ closing a disclosed false-alarm class from Phase 230's smoke calibration (`230-07-CALIBRATION.md`).
33
+ The fix also closes a resume-path staleness hole: a resumed funnel run now re-applies the
34
+ reconciled label instead of reading a stale persisted verdict. Zero live model calls anywhere
35
+ in the fix or its tests.
36
+ - **`scripts/release.sh` Step 5.5 stops crying wolf on a good push (SEED-051).** The tag-push
37
+ verification gate now checks an independent `git ls-remote` on `origin/main`'s SHA before
38
+ deciding whether a still-not-visible tag is a real failure or just GitHub replication lag.
39
+ When the push demonstrably landed, a slow tag now prints a warning and the ceremony continues
40
+ through the acceptance/marketplace/post-verify steps; when it did not land, the original hard
41
+ abort is preserved. The abort-vs-warn decision lives in a new, independently testable library,
42
+ `scripts/release-lib/verify-tag-push.sh`. Reproduces and fixes the exact false alarm hit on
43
+ the v1.15.0 release ceremony (2026-07-02).
44
+
45
+ ### Changed
46
+ - Twelve stale-duplicate roadmap phase stubs (283, 297, 299, 300, 302, 304, 305, 306, 309, 312,
47
+ 325, 326) closed as `ABSORBED BY PHASE <N>`, each citing the specific already-shipped phase
48
+ and code evidence, after tracing that their seeds' own required capabilities were already
49
+ live -- no renumbering, no plans lost, roadmap now tells the truth about what still needs
50
+ building. Two further clusters fused (319 absorbs 320-322/324 into one Host Runtime Decision
51
+ Record; 333 absorbs 334 into one Room-as-GraphRAG walk-test-then-build phase).
52
+
53
+ ## [2.0.0-beta.27] - 2026-09-07
54
+
55
+ ### Added
56
+ - Larry recognizes Theo by name on all three surfaces. `agents/larry-extended.md` gained
57
+ `## If asked about Theo by name` (Theo is MindrianOS's own teaching-graph backend behind every
58
+ `brain_*` call; a direct by-name question gets an honest brief answer, never volunteered), with a
59
+ narrow inline carve-out on the Never-Do "mention databases or architecture" rule (quick
60
+ 260907-i8j). The Desktop/Cowork MCP wire, `lib/mcp/runtime-instructions.cjs`, gained a THEO
61
+ clause inside the 1,950-byte served budget (1888 -> 1944 bytes) with the Canon Part 8 BOUNDARIES
62
+ paragraph byte-identical and still the tail (quick 260907-m2j). No endpoint, host, or wiring
63
+ detail is disclosed on any surface.
64
+ - `### Honest about thin grounding` in `skills/larry-personality/SKILL.md`: on any thin `brain_*`
65
+ signal (an empty DirectiveEnvelope `signals` set, a zero or ambiguous `normalize_framework_name`
66
+ match, a low `orchestration_readiness` score) one capability-honesty clause rides inside the
67
+ answer Larry is already giving, naming no backend noun. Finishes wiring Decision #8, "Honest
68
+ refusal everywhere", into Larry's voice (quick 260907-i8j).
69
+ - `lib/core/repo-version.cjs`: the one canonical answer to "what version is this repo" (module +
70
+ CLI), refusing with a named error instead of guessing when resolved from a `.claude/worktrees/*`
71
+ checkout (quick 260906-t3s).
72
+ - `scripts/check-worktree-hygiene.cjs` plus a `worktree-hygiene` blocker in `doctor --acceptance`:
73
+ diffs `.claude/worktrees/*` on disk against `git worktree list`, classifies every unregistered
74
+ checkout (`live-gitdir` / `safe-orphan` / `review`) by hashing its files against the object
75
+ database, and is the only governed delete path (`--prune --confirm`; `review` is never
76
+ auto-deleted). 18 hermetic tests (quick 260906-t3s).
77
+ - `docs/CANON-PHASE-MAP.md` `## Amendment cascade rule`: every canon amendment discovers the
78
+ version-pinning tests by an escaped-regex-aware grep instead of a hand-named list, and bumps
79
+ `Date:` together with `Version:` (quick 260907-m2l).
80
+ - `docs/autopsies/2026-09-06-worktree-version-contamination-incident.md`, cross-referenced from
81
+ CLAUDE.md's WORKSPACE GUARD (quick 260906-t3s).
82
+
83
+ ### Fixed
84
+ - Canon version floors: `test-205-elevation-doctrine-floor` (pinned 1.24) and
85
+ `test-cirs-render-coverage-floor` (pinned 1.16) cascaded to the live v1.27;
86
+ `test-bono-verdict` and `test-canon-part-9-ratification` redesigned from live-header equality
87
+ (structurally doomed the moment a later entry ships) to append-only provenance plus a monotonic
88
+ floor; the `run-all-340.sh` quarantine on part-9-ratification lifted; `docs/MINDRIAN-CANON.md`
89
+ `Date:` restored to 2026-09-05, the v1.27 commit date, after Phase 340's three bumps dropped it
90
+ (quick 260907-m2l).
91
+ - Four stale lines in `agents/larry-extended.md` (em-dash wording under a hyphens-only rule, a
92
+ hardcoded sensor count now read from the registry, a nonexistent `lib/memory/user-md-persona.cjs`
93
+ path corrected to `lib/core/user-md-ops.cjs`, a moved dual-path registration note) and a
94
+ memory-layer contradiction in `skills/larry-personality/SKILL.md` (quick 260907-m2j).
95
+
96
+ ### Removed
97
+ - `lib/mcp/larry-server-instructions.md`: an orphan loaded by nothing at runtime that named nine
98
+ tools which do not exist and opened with the exact first-contact string `test-143.2` forbids.
99
+ Its one live rule, the BCH-03 two-pass turn-ordering doctrine, relocated verbatim into
100
+ `skills/larry-personality/SKILL.md`; `tests/test-bch-01-ownership.cjs` repointed at it
101
+ (quick 260907-m2j).
102
+
1
103
  ## [2.0.0-beta.25] - 2026-09-06
2
104
 
3
105
  ### Added
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mindrian_os/cli",
3
- "version": "2.0.0-beta.25",
3
+ "version": "2.0.0-beta.29",
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",