@pellux/goodvibes-daemon 1.28.5 → 1.28.7

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
@@ -6,6 +6,39 @@ All notable changes to the GoodVibes daemon.
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [1.28.7] - 2026-08-02
10
+
11
+ ### Changes
12
+
13
+ - **Changed: payment limits hold the amount you would say out loud.** The
14
+ budget settings drop their unit suffix — `payments.budget.perPurchaseCeiling`,
15
+ `dailyItem`, `dailyOverage`, `overageToleranceDailyAllowance` — and hold
16
+ plain amounts in the configured currency, written exactly as you give them:
17
+ `100` is a hundred dollars, `19.99` is nineteen ninety-nine, and `$100`,
18
+ `100.00` and `100` all mean the same hundred. This daemon migrates its
19
+ settings file on load with a receipt; your limits are unchanged, only how
20
+ they are written (platform runtime 2.0.5).
21
+ - Fixed: every platform state store this daemon keeps writes atomically and
22
+ quarantines a corrupt file with a receipt instead of failing on it — the
23
+ watcher-snapshot fix from 1.28.6 is now the platform-wide rule. The daemon
24
+ settings file itself deliberately keeps its stricter contract: an
25
+ unparseable settings file still refuses the boot loudly, because defaults
26
+ may be more permissive than what the file held.
27
+
28
+ ## [1.28.6] - 2026-08-02
29
+
30
+ ### Changes
31
+
32
+ - **Fixed: a corrupt watcher snapshot no longer crash-loops this daemon.**
33
+ A host freeze left the snapshot file as valid JSON followed by NUL bytes,
34
+ and the daemon died parsing it — once at boot, and once on a periodic tick
35
+ 47 seconds after every restart, so the service never stayed up. The
36
+ platform runtime (2.0.4) now writes that file atomically and quarantines a
37
+ corrupt one with a receipt beside it, rebuilding watcher state from live
38
+ registrations. A torn file costs a rebuilt cache instead of the daemon.
39
+ - Fixed: refusing an unknown owner-profile field id now names the valid ids
40
+ instead of citing a documentation section.
41
+
9
42
  ## [1.28.5] - 2026-08-01
10
43
 
11
44
  ### Changes
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [![CI](https://github.com/mgd34msu/goodvibes-daemon/actions/workflows/ci.yml/badge.svg)](https://github.com/mgd34msu/goodvibes-daemon/actions/workflows/ci.yml)
4
4
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
- [![Version](https://img.shields.io/badge/version-1.28.5-blue.svg)](https://github.com/mgd34msu/goodvibes-daemon)
5
+ [![Version](https://img.shields.io/badge/version-1.28.7-blue.svg)](https://github.com/mgd34msu/goodvibes-daemon)
6
6
 
7
7
  The GoodVibes daemon: one long-running process per machine that holds the control plane every
8
8
  GoodVibes client talks to. It answers the operator verb families over HTTP, reads and replies on
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pellux/goodvibes-daemon",
3
- "version": "1.28.5",
3
+ "version": "1.28.7",
4
4
  "description": "The GoodVibes daemon \u2014 the one long-running host for the control plane, channels, cluster membership, scheduled work, knowledge and memory stores, and the verb families every GoodVibes client calls.",
5
5
  "type": "module",
6
6
  "main": "src/daemon/cli.ts",
@@ -65,8 +65,8 @@
65
65
  "@anthropic-ai/bedrock-sdk": "^0.28.1",
66
66
  "@anthropic-ai/sdk": "^0.82.0",
67
67
  "@ast-grep/napi": "^0.42.0",
68
- "@pellux/goodvibes-sdk": "2.0.3",
69
- "@pellux/goodvibes-terminal-shell": "2.0.3",
68
+ "@pellux/goodvibes-sdk": "2.0.5",
69
+ "@pellux/goodvibes-terminal-shell": "2.0.5",
70
70
  "bash-language-server": "^5.6.0",
71
71
  "fuse.js": "^7.1.0",
72
72
  "graphql": "^16.13.2",
package/src/version.ts CHANGED
@@ -6,7 +6,7 @@ import { join } from 'node:path';
6
6
  // The prebuild script updates the fallback value before compilation.
7
7
  // Uses import.meta.dir (Bun) to locate package.json relative to this file,
8
8
  // which is correct regardless of the process working directory.
9
- let _version = '1.28.5';
9
+ let _version = '1.28.7';
10
10
  try {
11
11
  const pkg = JSON.parse(readFileSync(join(import.meta.dir, '..', 'package.json'), 'utf-8'));
12
12
  // Only trust a version read from OUR OWN package.json. A Bun single-file