@pellux/goodvibes-daemon 1.28.12 → 1.28.14

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
@@ -4,6 +4,39 @@ All notable changes to the GoodVibes daemon.
4
4
 
5
5
  ---
6
6
 
7
+ ## [1.28.14] - 2026-08-06
8
+
9
+ ### Changes
10
+
11
+ - **Post-wake capture ends when the room goes quiet, not when a fixed
12
+ threshold says so** (platform runtime 2.0.12): the silence floor is now
13
+ measured from the room's own ambient level in the pre-wake window, so a
14
+ fan or steady background noise no longer holds the microphone open to the
15
+ ceiling on every capture. The floor is a real setting
16
+ (`voice.wake.silenceFloorRms`, 0 = adaptive), and
17
+ `voice.wake.captureMaxSeconds: 0` now genuinely means no hard maximum —
18
+ whisper has no input limit, and capture closes on silence.
19
+ - The exec sandbox's self-description now names the built-in tools a turn
20
+ should use for daemon status and settings, so an assistant inside the
21
+ boundary is redirected instead of left probing a loopback that is not
22
+ the host's.
23
+
24
+ ## [1.28.13] - 2026-08-06
25
+
26
+ ### Changes
27
+
28
+ - **Fixed: an unnamed transcription or synthesis request goes to the voice
29
+ provider the user actually configured** (platform runtime 2.0.11). The
30
+ daemon's provider picker answered "use whatever this host has configured"
31
+ with the first name on its internal registration list — a cloud provider —
32
+ even when that provider had no key and the host carried fully provisioned
33
+ local engines. On a machine set up for local voice, every wake-word
34
+ transcription failed "OpenAI API key missing" while the user's working
35
+ whisper was never asked, and no settings key could override the pick.
36
+ Unnamed requests now prefer providers that report themselves configured,
37
+ with configured local engines first — free, offline, no key. A named
38
+ provider keeps exactly its previous behavior.
39
+
7
40
  ## [1.28.12] - 2026-08-05
8
41
 
9
42
  ### 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.12-blue.svg)](https://github.com/mgd34msu/goodvibes-daemon)
5
+ [![Version](https://img.shields.io/badge/version-1.28.14-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.12",
3
+ "version": "1.28.14",
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.10",
69
- "@pellux/goodvibes-terminal-shell": "2.0.10",
68
+ "@pellux/goodvibes-sdk": "2.0.12",
69
+ "@pellux/goodvibes-terminal-shell": "2.0.12",
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.12';
9
+ let _version = '1.28.14';
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