@massu/core 2.1.0 → 2.3.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.
Files changed (3) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/dist/cli.js +321 -261
  3. package/package.json +3 -2
package/CHANGELOG.md CHANGED
@@ -10,6 +10,49 @@ 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.3.0] - 2026-07-23
14
+
15
+ ### Fixed
16
+
17
+ - **Corrected the `node:sqlite` Node floor `22.13.0 → 22.16.0` — the true version where the
18
+ built-in engine gains FTS5 AND `DatabaseSync.isTransaction`.** `2.0.0` (CR-69) made Node's
19
+ built-in `node:sqlite` the default DB engine and set the floor to `>=22.13.0` on the belief
20
+ that FTS5 was available there. It is not: `node:sqlite` is flag-free from 22.13.0, but Node
21
+ enabled the `SQLITE_ENABLE_FTS5` compile flag **and** added `DatabaseSync.prototype.isTransaction`
22
+ in the **same release, 22.16.0** (22.15.1 has neither; identical bundled SQLite 3.49.1 — a Node
23
+ build-config change). Below 22.16 the memory DB's `observations_fts` virtual table cannot be
24
+ created (`no such module: fts5`) and the nested-savepoint adapter throws `cannot start a
25
+ transaction within a transaction`. **Installs on Node 22.13–22.15 never had a working default DB
26
+ engine.** This release raises `engines.node` to `>=22.16.0` in `@massu/core` and both adapters
27
+ (`@massu/adapter-rails` / `@massu/adapter-spring` → `1.1.0`, CR-71 coherence), moves every CI pin
28
+ to the true floor (`22.16.0`, tested AT the real floor — not latest-22.x), and adds a real
29
+ can-fail capability drift-guard (`node-sqlite-capability-floor.test.ts`) that exercises FTS5 +
30
+ `isTransaction` at the pinned floor Node so a future floor drop fails loudly. Also repairs 6
31
+ `windows-latest`-only node-bootstrap test-fixtures from the 2.2.0 work (glob-separator,
32
+ none-found isolation, remedy-regex, re-exec stdin fidelity). Semver: MINOR (a floor *correction*
33
+ — no working support in 22.13–22.15 is removed). Incident:
34
+ `docs/incidents/2026-07-23-node-sqlite-fts5-floor-wrong.md`.
35
+ (plan-2026-07-23-node-sqlite-fts5-floor-correction)
36
+
37
+ ## [2.2.0] - 2026-07-22
38
+
39
+ ### Added
40
+
41
+ - **Windows Node bootstrap — CR-70 Layer 2 auto-recovery now covers Windows.** `2.1.0` shipped
42
+ the self-bootstrapping launcher that re-execs massu under a compatible installed Node when the
43
+ running Node is below the floor — but discovery was Unix-only (a slash-rooted allowlist, a POSIX
44
+ ownership gate). On Windows it degraded to a correct-but-manual winget/nodejs.org remedy. `2.2.0`
45
+ extends the SAME chokepoint, floor SoT, and re-exec to Windows: discovery now enumerates the
46
+ Windows install layouts (nvm-windows, fnm, volta, scoop, the MSI / winget / Chocolatey
47
+ `C:\Program Files\nodejs`, and `%LOCALAPPDATA%\Programs\nodejs`) from their env pointers only —
48
+ never `%PATH%` / `where.exe` — with a strict absolute-path allowlist-root containment trust gate
49
+ (the `getuid` analogue). A Windows customer with a compatible Node already installed now gets the
50
+ identical zero-onus auto-fix on `npm i -g @massu/core@2.2.0`; otherwise the already-shipped
51
+ correct Windows loud remedy. The POSIX path is byte-for-byte unchanged (regression-guarded). A
52
+ real `windows-latest` CI leg (`Windows Bootstrap Gate`) proves re-exec fidelity, installer
53
+ symmetry, and the doctor canary at runtime on Windows. No new Canonical Rule — Windows parity of
54
+ CR-70, folded into `canonical-rules-detail.md#cr-70`.
55
+
13
56
  ## [2.1.0] - 2026-07-22
14
57
 
15
58
  ### Added