@massu/core 2.0.0 → 2.2.0
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 +64 -0
- package/dist/cli.js +1183 -867
- package/dist/hooks/auto-learning-pipeline.js +1 -0
- package/dist/hooks/classify-failure.js +1 -0
- package/dist/hooks/cost-tracker.js +1 -0
- package/dist/hooks/fix-detector.js +1 -0
- package/dist/hooks/incident-pipeline.js +1 -0
- package/dist/hooks/intent-suggester.js +1 -0
- package/dist/hooks/memory-recall.js +1 -0
- package/dist/hooks/post-edit-context.js +1 -0
- package/dist/hooks/post-tool-use.js +1 -0
- package/dist/hooks/pre-compact.js +1 -0
- package/dist/hooks/pre-delete-check.js +1 -0
- package/dist/hooks/pre-tool-use-gate.js +1 -0
- package/dist/hooks/quality-event.js +1 -0
- package/dist/hooks/rule-enforcement-pipeline.js +1 -0
- package/dist/hooks/security-gate.js +1 -0
- package/dist/hooks/session-end.js +1 -0
- package/dist/hooks/session-start.js +1 -0
- package/dist/hooks/user-prompt.js +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -10,6 +10,70 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
|
10
10
|
> redistributed under the **Apache License 2.0**. Full license + NOTICE:
|
|
11
11
|
> `packages/core/assets/embedder/MODEL-LICENSE`.
|
|
12
12
|
|
|
13
|
+
## [2.2.0] - 2026-07-22
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
|
|
17
|
+
- **Windows Node bootstrap — CR-70 Layer 2 auto-recovery now covers Windows.** `2.1.0` shipped
|
|
18
|
+
the self-bootstrapping launcher that re-execs massu under a compatible installed Node when the
|
|
19
|
+
running Node is below the floor — but discovery was Unix-only (a slash-rooted allowlist, a POSIX
|
|
20
|
+
ownership gate). On Windows it degraded to a correct-but-manual winget/nodejs.org remedy. `2.2.0`
|
|
21
|
+
extends the SAME chokepoint, floor SoT, and re-exec to Windows: discovery now enumerates the
|
|
22
|
+
Windows install layouts (nvm-windows, fnm, volta, scoop, the MSI / winget / Chocolatey
|
|
23
|
+
`C:\Program Files\nodejs`, and `%LOCALAPPDATA%\Programs\nodejs`) from their env pointers only —
|
|
24
|
+
never `%PATH%` / `where.exe` — with a strict absolute-path allowlist-root containment trust gate
|
|
25
|
+
(the `getuid` analogue). A Windows customer with a compatible Node already installed now gets the
|
|
26
|
+
identical zero-onus auto-fix on `npm i -g @massu/core@2.2.0`; otherwise the already-shipped
|
|
27
|
+
correct Windows loud remedy. The POSIX path is byte-for-byte unchanged (regression-guarded). A
|
|
28
|
+
real `windows-latest` CI leg (`Windows Bootstrap Gate`) proves re-exec fidelity, installer
|
|
29
|
+
symmetry, and the doctor canary at runtime on Windows. No new Canonical Rule — Windows parity of
|
|
30
|
+
CR-70, folded into `canonical-rules-detail.md#cr-70`.
|
|
31
|
+
|
|
32
|
+
## [2.1.0] - 2026-07-22
|
|
33
|
+
|
|
34
|
+
### Added
|
|
35
|
+
|
|
36
|
+
- **Zero-onus hook Node bootstrap — `@massu/core` now makes ITSELF run under a compatible
|
|
37
|
+
Node instead of crashing.** `2.0.0` removed the native `better-sqlite3` ABI for Node
|
|
38
|
+
`>= 22.13` by defaulting to `node:sqlite`, but three residual gaps remained: a sub-floor
|
|
39
|
+
Node still broke a bare hook, the installer permitted the hook and MCP-server launchers to
|
|
40
|
+
diverge, and `doctor` verified hooks were *configured* but never that they *execute*. This
|
|
41
|
+
release closes all three (CR-70):
|
|
42
|
+
- **Self-bootstrapping launcher.** A single chokepoint at the top of the CLI
|
|
43
|
+
(`bootstrapNodeOrExit`, above the subcommand dispatch, so it covers both the `hook-runner`
|
|
44
|
+
and MCP-server paths) checks the running Node against the floor. At or above the floor it
|
|
45
|
+
is a no-op single version compare; below the floor it discovers a compatible Node from a
|
|
46
|
+
**strict absolute-path allowlist** (nvm / fnm / volta install dirs + Homebrew kegs —
|
|
47
|
+
never bare `PATH`/`which`) and re-execs under it with full stdin/stdout/exit-code
|
|
48
|
+
fidelity. If no compatible Node exists it fails **loud** with a copy-paste install remedy
|
|
49
|
+
— never a silent hook crash. Opt out with `MASSU_NO_NODE_BOOTSTRAP=1` (still fails loud
|
|
50
|
+
below the floor).
|
|
51
|
+
- **Installer launch symmetry.** The `.mcp.json` server command and the hook commands are
|
|
52
|
+
locked to one launch mechanism (`npx -y @massu/core@<version>`, the hook only appending
|
|
53
|
+
`hook-runner <name>`), so the wrapped-server / bare-hooks asymmetry that masked the
|
|
54
|
+
original incident cannot be reintroduced.
|
|
55
|
+
- **Truthful hook health.** `massu doctor` now runs a real canary hook end-to-end under the
|
|
56
|
+
current Node and reports **RED** on any runtime failure (`ERR_DLOPEN_FAILED`, non-zero
|
|
57
|
+
exit, timeout) — extending the truthful-doctor probe from database construction to hook
|
|
58
|
+
execution.
|
|
59
|
+
|
|
60
|
+
Zero customer action required: upgrading `@massu/core` is the entire fix. Enforced by five
|
|
61
|
+
drift-guards + pattern-scanner Checks 47/48/49 (CR-70). Plan:
|
|
62
|
+
`plan-2026-07-22-zero-onus-hook-node-bootstrap`. Incident:
|
|
63
|
+
`docs/incidents/2026-07-22-native-abi-hooks-bare-node-launch.md`.
|
|
64
|
+
|
|
65
|
+
## [2.0.1] - 2026-07-22
|
|
66
|
+
|
|
67
|
+
### Fixed
|
|
68
|
+
|
|
69
|
+
- **`massu doctor` now recognizes hooks committed in `.claude/settings.json`, not only
|
|
70
|
+
`.claude/settings.local.json`.** Claude Code reads and merges both files, but doctor's
|
|
71
|
+
"Hooks Config" and "Shell Hooks" checks inspected only `settings.local.json` — so a project
|
|
72
|
+
that version-controls its hooks in the committed `settings.json` (the norm for a shared/
|
|
73
|
+
governance config) reported "No hooks configured" and an overall **UNHEALTHY** verdict even
|
|
74
|
+
though every hook was wired and firing. Both checks now count the union of hooks across
|
|
75
|
+
`settings.json` + `settings.local.json`. Guarded by `doctor-hooks-config.test.ts`.
|
|
76
|
+
|
|
13
77
|
## [2.0.0] - 2026-07-21
|
|
14
78
|
|
|
15
79
|
**Breaking release.** The local database engine now defaults to Node's built-in
|