@massu/core 1.16.0 → 1.16.2

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 CHANGED
@@ -10,6 +10,64 @@ 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
+ ## [1.16.2] - 2026-07-15
14
+
15
+ ### Security
16
+
17
+ - **License-response signature verification is now STRICT by default (SEC-3 cutover).** The client
18
+ previously ACCEPTED unsigned or wrong-key `/validate-key` responses with a one-shot warning
19
+ (transition mode) unless the operator set `MASSU_REQUIRE_SIGNED_LICENSE=true`. As of `1.16.2`,
20
+ strict mode is the DEFAULT: an unsigned or invalid-signature response is rejected and the client
21
+ falls through to the grace-period cache or the free tier, closing the MITM / malicious-endpoint
22
+ tier-forgery window for good. This is safe because `1.16.1` shipped the rotated key as the bundled
23
+ PRIMARY pubkey and production signs every successful response with it (verified by a live
24
+ `valid:true` signature smoke). The only way back to warn-and-accept is an explicit
25
+ `MASSU_REQUIRE_SIGNED_LICENSE=false` — an emergency valve for a production signing outage.
26
+
27
+ ### Fixed
28
+
29
+ - **Public-sync boundary correction (repo tooling; no npm-package change).** Completing the `1.16.1`
30
+ public sync surfaced that its sync tooling wrongly copied `.claude/agents/` and
31
+ `.claude/commands/_verification-laws.md` into the public git repo to satisfy an
32
+ internal-governance test's DOGFOOD assertion. That crosses the documented public/internal boundary:
33
+ the review/workflow agents reach users through the npm package (`@massu/core` `files:
34
+ ["agents/**/*"]`), not the public git repo, and the public-repo leak-guard allowlist intentionally
35
+ omits `.claude/agents/`. `1.16.2` reverts those copies and instead excludes
36
+ `verification-laws-shipped-and-wired.test.ts` from the mirror (the same pattern already used for
37
+ the other internal-only governance drift-guards), and genericizes two dev-script comments that
38
+ referenced internal incident paths so the public mirror carries no dangling internal references.
39
+
40
+ ## [1.16.1] - 2026-07-14
41
+
42
+ ### Security
43
+
44
+ - **License-response signing key rotated (SEC-1).** The Ed25519 key that signs `/validate-key`
45
+ responses was rotated after a live private key was found committed in a tracked runbook (SEC-1,
46
+ `docs/reports/2026-07-14-codebase-audit-findings.md`). Production now signs with the new key and
47
+ stamps the new fingerprint `18c04567…`; the bundled client pubkey (`license-pubkey.generated.ts`)
48
+ is regenerated to trust the new key as primary while keeping the old key in the allowlist for the
49
+ transition grace window. A live signature smoke confirmed a real `/validate-key` success is signed
50
+ by the new key and verifies. The drift-guard `no-committed-private-keys.test.ts` forbids
51
+ re-introduction of any private key.
52
+
53
+ ### Fixed
54
+
55
+ - **The 2026-07-14 codebase-audit closure is now actually delivered.** The audit-closure fixes were
56
+ committed (`4f4c688`) but never published — `1.16.0` on npm predates all of them. `1.16.1` ships:
57
+ fail-closed engine startup on a fatal DB/ABI error (SF-1), Pro-tier gating of the `/v1` capability
58
+ endpoints (SEC-2), the two wired-but-previously-dead CLI subcommands `massu rule show` /
59
+ `massu rule effectiveness` (DF-1/DF-2), the documented-but-missing webhook-test route (BND-1), and
60
+ the cloud-sync "server-error-as-empty" fix (BND-3).
61
+
62
+ ### Added
63
+
64
+ - **CR-64 release-integrity gate — a published version number is immutable.** A pre-push + CI gate
65
+ (`scripts/release-integrity-check.mjs`) fails the moment `packages/core`'s version equals an
66
+ already-published npm version whose `vX.Y.Z` tag is missing or not at HEAD. This closes the class
67
+ where `1.16.0` was published without a git tag or release ceremony and then reused for six more
68
+ commits that read as "SHIPPED" while never delivered to customers. Incident:
69
+ `docs/incidents/2026-07-14-npm-publish-decoupled-from-release-ceremony.md`.
70
+
13
71
  ## [1.16.0] - 2026-07-14
14
72
 
15
73
  ### Fixed — cloud sync had, in practice, NEVER succeeded for a real session