@mindrian_os/cli 1.15.2 → 1.15.3-beta.10
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 +48 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,51 @@
|
|
|
1
|
+
## [1.15.3-beta.10] - 2026-07-05
|
|
2
|
+
|
|
3
|
+
### Added
|
|
4
|
+
- **Ratification-tracked next-actions now surface in the statusline's `Next:` slot.** Quick task 260705-ui4, motivated by the rethinking-mindrianos standing-consultant room's own unconverted research entries (`ratification_status: proposed` frontmatter) going invisible once the routing engine had nothing else to offer. Reuses the existing `next-move-cache` mechanism end to end (Canon Part 7: no second cache) -- new `lib/statusline/ratification-next.cjs` resolves the active room FRESH per call (avoiding the frozen-roomDir staleness class found at `bin/mindrian-mcp-server.cjs:65`), shallow-scans `research/*/` for `ratification_status: proposed`, and returns an enum/count-only cue (`ratify strong (2 open)`, never entry titles or target prose -- Canon Part 8). `persistFromDecision(decision, opts)` gained an opt-in `opts.fallbackProvider` on the case-3 clear leg only; no-opts behavior stays byte-identical, so the existing clear-semantics tests are unmodified. The statusline's context-percentage color contract (50/65/80 thresholds) and risk chip are untouched -- the `Next:` segment itself carries zero color/ANSI treatment, so the new cue needed none. New tests/test-statusline-ratification-next.cjs 12/12; context-aware 19/19 unmodified; live-signals 10/10.
|
|
5
|
+
|
|
6
|
+
## [1.15.3-beta.8] - 2026-07-05
|
|
7
|
+
|
|
8
|
+
### Added
|
|
9
|
+
- **JTBD-driven regroup of the 11 `/mos:help` families** (refines the beta.6 3-card selector, not a redesign). Every family's membership is now traceable to a coherent Jobs-To-Be-Done outcome instead of ad-hoc navigational grouping: filled the 2 missing `serves_jtbd` tags (`ingest-methodology`, `stance`), reassigned 9 commands across 3 JTBD-coherent moves, renamed `frame-the-problem` to "Frame & Validate", and gave every family an explicit `jtbd: []` declaration. `scripts/check-help-coverage.cjs` now permanently machine-enforces this coherence (new `jtbd_missing_declaration` / `jtbd_unknown_tag` / `jtbd_incoherent` checks, vocabulary enumerated from disk) so the map can't silently drift back into vibes-based grouping.
|
|
10
|
+
- **Staleness-prevention for the commands/-to-skills/ mirror workaround.** `scripts/build-skill-mirrors.cjs --check` is now wired into pre-commit (tracked + installed hook), `scripts/verify-release` (new step 10b), and `doctor --acceptance` (folded into the existing coverage-gate point), so a future `commands/*.md` edit can never again silently strand a stale `skills/<name>/SKILL.md` mirror. Also hardened `--check` to verify the hand-authored `trending-to-absurd` skill stays present and genuinely divergent from its command. The new gate immediately caught and fixed 3 real stale mirrors left over from the JTBD regroup on its first run.
|
|
11
|
+
|
|
12
|
+
## [1.15.3-beta.6] - 2026-07-05
|
|
13
|
+
|
|
14
|
+
### Added
|
|
15
|
+
- **Every `/mos:` command is now also reachable via the `skills/` loading path** (`scripts/build-skill-mirrors.cjs`, new generator, write + `--check` modes). Root cause: on a confirmed-affected Windows Claude Code install, this plugin's `commands/*.md` files fail to register ("No commands match") while `skills/` and MCP-server prompts from the same plugin load fine -- reproduced identically on an unrelated marketplace plugin on the same machine, and confirmed against Anthropic's own docs (commands/ is the legacy flat-file path; skills/ is the recommended one). `commands/*.md` stays the single, untouched source of truth -- this repo's own command-registry/render-coverage/help-coverage tooling all read commands/ only. 105 new byte-identical `skills/<name>/SKILL.md` mirrors generated (106 with the pilot's `help`); `trending-to-absurd` skip-listed (pre-existing hand-authored skill already covers it). One documented, precedented field exception: wired commands' `connector.sensor_triggers` is rewritten to `[]` on the mirror only (61 of 105) to avoid a duplicate-tuple collision in `build-connector-registry.cjs` -- the same pattern the pre-existing `trending-to-absurd` skill already used for the identical reason.
|
|
16
|
+
|
|
17
|
+
### Fixed
|
|
18
|
+
- Unanchored `.gitignore` patterns (`room/`, `export/`) were also matching the new `skills/room/` and `skills/export/` mirror directories, silently dropping them from commits with no CIRS gate catching it (gates check filesystem presence, not git-tracking status). Anchored both to repo root.
|
|
19
|
+
|
|
20
|
+
## [1.15.3-beta.4] - 2026-07-05
|
|
21
|
+
|
|
22
|
+
### Fixed
|
|
23
|
+
- **`vunknown` version banner on Windows, root-caused.** `session-start`'s `$PLUGIN_ROOT` was a git-bash MSYS path (`/c/Users/...`), which Windows-native `node.exe` cannot resolve inside `require()` -- every version-resolution call on that platform silently failed to `unknown`. Normalized once via `cygpath -m` (no-op on Linux/macOS) and threaded through all 8 call sites in the script that previously passed the raw path.
|
|
24
|
+
- **`check-card-fire.cjs` (the SEED-021 Stop hook) leaked its internal classification slug to the user as a fake "error".** A `decision:'block'` envelope with no `systemMessage` renders its `reason` field as "Stop hook error: <slug>" even when the hook is working correctly. Added a calm, fixed `systemMessage` on the intercept branch; the slug stays in `reason` for logs.
|
|
25
|
+
- **The same hook over-fired on plain binary (yes/no) closers**, forcing a card for simple confirmations the same as a genuine multi-option fork. New `gate-is-simple-binary` pass-reason exempts exact 2-option closers while preserving the Phase 209 floor for genuine 3+-way forks.
|
|
26
|
+
- **`/mos:help`'s last stale-copy residual** ("in this lane", "four color-coded lanes") reworded to match the real 11-family / 3-card design shipped in beta.3.
|
|
27
|
+
|
|
28
|
+
## [1.15.3-beta.3] - 2026-07-05
|
|
29
|
+
|
|
30
|
+
### Added
|
|
31
|
+
- **`doctor --report-registration-bug`** -- a new diagnostic mode for the confirmed Claude Code host-side command-registration bug (commands fail to register while skills/MCP prompts load fine, reproduced across unrelated plugins). Rules out every locally-checkable cause first (install-cache drift, silent-disable, legacy config-pin drift, marketplace-clone dirty state, version-of-record agreement) before assembling a paste-ready report for Anthropic. Never claims "fixed" -- diagnostic only.
|
|
32
|
+
- **`lib/core/command-registration-check.cjs`** -- a precondition sweep (frontmatter fences, YAML tabs, legal command names, case-insensitive collisions, description length) wired into the new doctor mode, the release gate, and pre-commit.
|
|
33
|
+
- **`/mos:help` reshaped** from a stale "4-lane" claim to the real 11 command families, rendered as 3 native `AskUserQuestion` cards (4+4+3) instead of one artificially-merged card.
|
|
34
|
+
- **The legacy `config.json` version-pin drift (F11)** is now detected and auto-repaired by `doctor --fix` -- confirmed recurring twice on the same real Windows machine before this fix; two Windows-specific correctness bugs in the fix itself (a missing config.json schema variant, a Windows-illegal `:` in a backup filename) were also found and fixed the same day.
|
|
35
|
+
- The cold-start banner's command count is now computed live instead of a hardcoded literal that had drifted stale (last read "45" against an actual 107).
|
|
36
|
+
|
|
37
|
+
## [1.15.3-beta.1] - 2026-07-03
|
|
38
|
+
|
|
39
|
+
### Changed
|
|
40
|
+
- **Phase 210 - Revert persona-enforcement over-reach (restores Larry's conversational judgment).** Root cause of the navigator-reported "v1.15 behaves less like Larry" regression: five phases in the v1.15 window (2026-06-24 through 2026-07-02) turned voice/gate judgment calls into mechanical HARD-FAIL/BINDING checks. Each is now softened to advisory or relevance-gated behavior while its underlying capability stays intact:
|
|
41
|
+
- **(A) Shape-declaration gate is advisory (Phases 190 + 209-03).** `scripts/check-shape-declaration.cjs --check` now WARNs and exits 0 -- every violation is still detected and enumerated, so the lint signal survives; `--strict` restores the pre-210 hard-fail. Rewired at both call sites (release.sh Step 2, doctor --acceptance); the render-coverage, corpus-stats, connector, and projection gates keep their HARD-ABORT semantics.
|
|
42
|
+
- **(B) Voice-glyph mapping is a default, not a lock (Phase 192).** Natural voice detection wins when it yields a color; the stance color fills the default only when detection is silent. The stance-toggle footer is offered when the navigator is genuinely mid-decision about conversational mode, not on every turn.
|
|
43
|
+
- **(C) APO voice-contract scores, never vetoes (Phase 202).** The disqualifier filter is gone: violations dent the candidate's blended score (0.05 per violation, visible as voiceFlagged + voiceViolations on the record) while quality primacy stays structural. The detector itself is byte-untouched.
|
|
44
|
+
- **(D) Elevation quorum suggests, never forces (Phase 205).** `sessionEndQuorum` returns suggested:true / forced:false; the hedged hypothesis floor (offered, never committed, no edge written) is byte-preserved.
|
|
45
|
+
- **(E) Force-fire is relevance-gated (Phase 209).** The Stop-hook backstop no longer blocks when the navigator already plainly answered the question, or when the gate has zero subject connection to the current turn (new shared predicate `lib/core/gate-relevance.cjs`; conservative verdict: uncertainty still intercepts). The trailer imperative flips from unconditional `[BINDING:` to conditional `[FIRE-IF-FORK:`; all 80 body-stamped commands swept to the v2 firing block; both auto-loaded doctrine surfaces (larry-extended agent, ui-system skill) now teach fire-if-genuine-fork. A genuine, relevant, unanswered fork STILL fires the card -- proven in both directions by the phase's two-directional tests.
|
|
46
|
+
- **Canon v1.24.** Part 11 R16's enforcement clause amended (Appendix D entry 37, navigator-ratified) from unconditional HARD-FAIL to advisory-by-default with a --strict opt-in.
|
|
47
|
+
- **Preserve guarantees.** The Phase 194 session-room-binding gate, Phase 196 Brain-egress PreToolUse guardrail, and Phase 200 semantic-floor gate are byte-untouched (data-boundary, not persona); the 19 standalone v1.15 bug fixes and every underlying capability (declared-shape tracking, the glyph vocabulary, the elevation taxonomy, the AskUserQuestion primitive) survive. `tests/run-all-210.sh` PASS=14 FAIL=0 SKIP=0; the five softened phases' own aggregators (190/192/202/205/209) all green; doctor --acceptance 14/14.
|
|
48
|
+
|
|
1
49
|
## [1.15.2] - 2026-07-02
|
|
2
50
|
|
|
3
51
|
### Fixed
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mindrian_os/cli",
|
|
3
|
-
"version": "1.15.
|
|
3
|
+
"version": "1.15.3-beta.10",
|
|
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",
|