@massu/core 2.0.0 → 2.1.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 +45 -0
- package/dist/cli.js +1120 -864
- 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,51 @@ 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.1.0] - 2026-07-22
|
|
14
|
+
|
|
15
|
+
### Added
|
|
16
|
+
|
|
17
|
+
- **Zero-onus hook Node bootstrap — `@massu/core` now makes ITSELF run under a compatible
|
|
18
|
+
Node instead of crashing.** `2.0.0` removed the native `better-sqlite3` ABI for Node
|
|
19
|
+
`>= 22.13` by defaulting to `node:sqlite`, but three residual gaps remained: a sub-floor
|
|
20
|
+
Node still broke a bare hook, the installer permitted the hook and MCP-server launchers to
|
|
21
|
+
diverge, and `doctor` verified hooks were *configured* but never that they *execute*. This
|
|
22
|
+
release closes all three (CR-70):
|
|
23
|
+
- **Self-bootstrapping launcher.** A single chokepoint at the top of the CLI
|
|
24
|
+
(`bootstrapNodeOrExit`, above the subcommand dispatch, so it covers both the `hook-runner`
|
|
25
|
+
and MCP-server paths) checks the running Node against the floor. At or above the floor it
|
|
26
|
+
is a no-op single version compare; below the floor it discovers a compatible Node from a
|
|
27
|
+
**strict absolute-path allowlist** (nvm / fnm / volta install dirs + Homebrew kegs —
|
|
28
|
+
never bare `PATH`/`which`) and re-execs under it with full stdin/stdout/exit-code
|
|
29
|
+
fidelity. If no compatible Node exists it fails **loud** with a copy-paste install remedy
|
|
30
|
+
— never a silent hook crash. Opt out with `MASSU_NO_NODE_BOOTSTRAP=1` (still fails loud
|
|
31
|
+
below the floor).
|
|
32
|
+
- **Installer launch symmetry.** The `.mcp.json` server command and the hook commands are
|
|
33
|
+
locked to one launch mechanism (`npx -y @massu/core@<version>`, the hook only appending
|
|
34
|
+
`hook-runner <name>`), so the wrapped-server / bare-hooks asymmetry that masked the
|
|
35
|
+
original incident cannot be reintroduced.
|
|
36
|
+
- **Truthful hook health.** `massu doctor` now runs a real canary hook end-to-end under the
|
|
37
|
+
current Node and reports **RED** on any runtime failure (`ERR_DLOPEN_FAILED`, non-zero
|
|
38
|
+
exit, timeout) — extending the truthful-doctor probe from database construction to hook
|
|
39
|
+
execution.
|
|
40
|
+
|
|
41
|
+
Zero customer action required: upgrading `@massu/core` is the entire fix. Enforced by five
|
|
42
|
+
drift-guards + pattern-scanner Checks 47/48/49 (CR-70). Plan:
|
|
43
|
+
`plan-2026-07-22-zero-onus-hook-node-bootstrap`. Incident:
|
|
44
|
+
`docs/incidents/2026-07-22-native-abi-hooks-bare-node-launch.md`.
|
|
45
|
+
|
|
46
|
+
## [2.0.1] - 2026-07-22
|
|
47
|
+
|
|
48
|
+
### Fixed
|
|
49
|
+
|
|
50
|
+
- **`massu doctor` now recognizes hooks committed in `.claude/settings.json`, not only
|
|
51
|
+
`.claude/settings.local.json`.** Claude Code reads and merges both files, but doctor's
|
|
52
|
+
"Hooks Config" and "Shell Hooks" checks inspected only `settings.local.json` — so a project
|
|
53
|
+
that version-controls its hooks in the committed `settings.json` (the norm for a shared/
|
|
54
|
+
governance config) reported "No hooks configured" and an overall **UNHEALTHY** verdict even
|
|
55
|
+
though every hook was wired and firing. Both checks now count the union of hooks across
|
|
56
|
+
`settings.json` + `settings.local.json`. Guarded by `doctor-hooks-config.test.ts`.
|
|
57
|
+
|
|
13
58
|
## [2.0.0] - 2026-07-21
|
|
14
59
|
|
|
15
60
|
**Breaking release.** The local database engine now defaults to Node's built-in
|