@massu/core 2.5.3 → 2.5.5

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,62 @@ 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.5.5] - 2026-11-09
14
+
15
+ ### Fixed
16
+
17
+ - **Replies no longer wait for the session-end hook.** `massu init` ran the session-end
18
+ hook at the end of every reply, and it blocked: measured 11-15 seconds per reply (up to 21)
19
+ on a long session. It now runs in the background (Claude Code's `async` hook option) and
20
+ limits itself, because Claude Code sets no time limit on a background hook. Each run has a
21
+ 20-second budget (`MASSU_SESSION_END_BUDGET_MS`) and skips, and reports, work it has no time
22
+ for. A watchdog ends a run that overruns. Two runs for the same session never overlap: the
23
+ second asks the first to go again. A run after the first in a session takes about 0.4 seconds.
24
+ Run `massu init` again to pick up the background setting.
25
+ - **Session cost is now real.** Every stored session cost was 0 tokens. The transcript reader
26
+ dropped each response's token counts, and only the first reply of a session could be stored
27
+ at all. Cost is now calculated for each response at its own model's published price,
28
+ including 5-minute and 1-hour cache writes, fast mode, US-only routing, and Claude Haiku
29
+ 5.5's higher rate for prompts over 100,000 tokens. Each response is counted once, though a
30
+ transcript repeats it across several lines. A model with no known price is reported as
31
+ unknown, never guessed; the old fallback charged $3/$15 and counted cache reads as free.
32
+ - **Old cost records repair themselves.** Sessions whose transcripts are still on disk are
33
+ recalculated in the background; the rest show "unknown" instead of $0. `massu_cost_session`
34
+ and `massu_cost_trend` say which sessions are unknown or only partly priced.
35
+ - **Price overrides add to the built-in list instead of replacing it.** An
36
+ `analytics.cost.models` entry in `massu.config.yaml` now overrides one model. Before, any
37
+ entry discarded the built-in prices, so every other model was charged the fallback rate. A
38
+ new optional `cache_write_1h_per_million` sets the 1-hour cache-write price.
39
+ - **A failed cloud sync no longer queues a second copy of the item.** Retrying a queued item
40
+ that failed again added a duplicate to the queue each time. Items the time budget can't
41
+ reach now wait for the next run with their retry count unchanged.
42
+
43
+ The memory database moves to schema version 2 (new cost columns). Massu backs the database up
44
+ before changing its schema, as before.
45
+
46
+ ## [2.5.4] - 2026-11-08
47
+
48
+ ### Fixed
49
+
50
+ - **Release tooling no longer reports a successful publish as failed.** After `npm publish`
51
+ succeeded, the release verifier waited 90 seconds, then reported FAIL with "this is not
52
+ propagation lag". npm's registry can take a few minutes to serve a new version. The verifier
53
+ now has three results. PASS: the version is served and the package carries the fix. PENDING:
54
+ npm accepted the publish but isn't serving it yet; re-run `--verify-only`, don't publish again.
55
+ FAIL: npm refused the publish, or the served package is wrong.
56
+ - **Publishing no longer leaves uncommitted changes.** The four bundled-public-key modules
57
+ stamped the current time into their first line, so every publish rewrote four tracked files
58
+ whose keys hadn't changed. One shared, deterministic generator replaces the four hand-copied
59
+ ones, and a test confirms each committed module matches what the generator renders.
60
+ - **The public repository carries release tags again.** Every mirror sync now tags the public
61
+ commit that holds a release's exact tree, verifies the tag on GitHub, and never moves an
62
+ existing tag. This release backfills v2.0.0, v2.3.0 and v2.5.3.
63
+ - **The public repository's six `nx` security alerts are cleared.** They came from two test
64
+ fixtures that declared `nx ^17.0.0`. Nothing installs either fixture; both now declare
65
+ `^22.7.10`.
66
+
67
+ `@massu/core` behaves exactly as 2.5.3 did: every change is in release tooling and test fixtures.
68
+
13
69
  ## [2.5.3] - 2026-11-08
14
70
 
15
71
  ### Added