@pellux/goodvibes-daemon 1.28.13 → 1.28.15
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 +33 -0
- package/README.md +1 -1
- package/package.json +4 -4
- package/src/runtime/index.ts +31 -31
- package/src/version.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,39 @@ All notable changes to the GoodVibes daemon.
|
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
+
## [1.28.15] - 2026-08-07
|
|
8
|
+
|
|
9
|
+
### Changes
|
|
10
|
+
|
|
11
|
+
- **The compiled daemon no longer plays a build-order lottery at load**
|
|
12
|
+
(platform runtime 2.0.13): the daemon's runtime barrel read fifteen values
|
|
13
|
+
off the SDK's runtime namespace objects at module scope (`export const X =
|
|
14
|
+
ns.X`). Bun's single-file compiler emits module bodies in an order that
|
|
15
|
+
varies build-to-build, and such a read can land before the module that
|
|
16
|
+
defines the binding — the binary then dies at load with a ReferenceError on
|
|
17
|
+
some builds of identical source. Every one of those reads is now a grouped
|
|
18
|
+
live re-export from the SDK's registered runtime subpaths, resolved by the
|
|
19
|
+
module system instead of read at module scope. The shared post-build smoke
|
|
20
|
+
now also scans the compiled artifact for the eager pattern, so a
|
|
21
|
+
reintroduction fails the build even on a lucky ordering.
|
|
22
|
+
|
|
23
|
+
## [1.28.14] - 2026-08-06
|
|
24
|
+
|
|
25
|
+
### Changes
|
|
26
|
+
|
|
27
|
+
- **Post-wake capture ends when the room goes quiet, not when a fixed
|
|
28
|
+
threshold says so** (platform runtime 2.0.12): the silence floor is now
|
|
29
|
+
measured from the room's own ambient level in the pre-wake window, so a
|
|
30
|
+
fan or steady background noise no longer holds the microphone open to the
|
|
31
|
+
ceiling on every capture. The floor is a real setting
|
|
32
|
+
(`voice.wake.silenceFloorRms`, 0 = adaptive), and
|
|
33
|
+
`voice.wake.captureMaxSeconds: 0` now genuinely means no hard maximum —
|
|
34
|
+
whisper has no input limit, and capture closes on silence.
|
|
35
|
+
- The exec sandbox's self-description now names the built-in tools a turn
|
|
36
|
+
should use for daemon status and settings, so an assistant inside the
|
|
37
|
+
boundary is redirected instead of left probing a loopback that is not
|
|
38
|
+
the host's.
|
|
39
|
+
|
|
7
40
|
## [1.28.13] - 2026-08-06
|
|
8
41
|
|
|
9
42
|
### Changes
|
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://github.com/mgd34msu/goodvibes-daemon/actions/workflows/ci.yml)
|
|
4
4
|
[](https://opensource.org/licenses/MIT)
|
|
5
|
-
[](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.
|
|
3
|
+
"version": "1.28.15",
|
|
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.
|
|
69
|
-
"@pellux/goodvibes-terminal-shell": "2.0.
|
|
68
|
+
"@pellux/goodvibes-sdk": "2.0.13",
|
|
69
|
+
"@pellux/goodvibes-terminal-shell": "2.0.13",
|
|
70
70
|
"bash-language-server": "^5.6.0",
|
|
71
71
|
"fuse.js": "^7.1.0",
|
|
72
72
|
"graphql": "^16.13.2",
|
|
@@ -87,7 +87,7 @@
|
|
|
87
87
|
"web-tree-sitter": "^0.26.7"
|
|
88
88
|
},
|
|
89
89
|
"devDependencies": {
|
|
90
|
-
"@pellux/goodvibes-toolchain": "2.0.
|
|
90
|
+
"@pellux/goodvibes-toolchain": "2.0.13",
|
|
91
91
|
"@types/bun": "^1.3.10",
|
|
92
92
|
"typescript": "^5.9.3"
|
|
93
93
|
},
|
package/src/runtime/index.ts
CHANGED
|
@@ -12,13 +12,17 @@
|
|
|
12
12
|
* SDK.
|
|
13
13
|
*/
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
// Type-only: the runtime namespace objects must never be READ at module scope.
|
|
16
|
+
// An eager `export const X = ns.X` compiles to a top-level property read off a
|
|
17
|
+
// lazy namespace object, and Bun's single-file compiler orders module bodies
|
|
18
|
+
// nondeterministically — on some builds the read lands before the defining
|
|
19
|
+
// module and the binary dies at load. Values below are grouped live re-exports
|
|
20
|
+
// from the SDK's registered subpaths instead; the toolchain post-build-smoke
|
|
21
|
+
// scans compiled artifacts for the eager pattern and fails the build if one
|
|
22
|
+
// returns.
|
|
23
|
+
import type {
|
|
18
24
|
operations,
|
|
19
|
-
security,
|
|
20
25
|
shell,
|
|
21
|
-
transport,
|
|
22
26
|
ui,
|
|
23
27
|
} from '@pellux/goodvibes-sdk/platform/runtime';
|
|
24
28
|
|
|
@@ -29,46 +33,43 @@ export * from '@pellux/goodvibes-sdk/platform/runtime/feature-flags';
|
|
|
29
33
|
export * from '@pellux/goodvibes-sdk/platform/runtime/settings';
|
|
30
34
|
export * from '@pellux/goodvibes-sdk/platform/runtime/sandbox';
|
|
31
35
|
|
|
32
|
-
// Shell paths + the surface-scoped storage handle.
|
|
33
|
-
|
|
36
|
+
// Shell paths + the surface-scoped storage handle. Grouped live re-exports:
|
|
37
|
+
// class values (WorktreeRegistry etc.) carry their instance types with them.
|
|
38
|
+
export { createShellPathService, WorktreeRegistry } from '@pellux/goodvibes-sdk/platform/runtime/shell';
|
|
34
39
|
export type ShellPathService = shell.ShellPathService;
|
|
35
|
-
export
|
|
40
|
+
export { createSessionSurface } from '@pellux/goodvibes-sdk/platform/runtime/operations';
|
|
36
41
|
export type SessionSurface = operations.SessionSurface;
|
|
37
|
-
export const WorktreeRegistry = shell.WorktreeRegistry;
|
|
38
|
-
export type WorktreeRegistry = shell.WorktreeRegistry;
|
|
39
42
|
|
|
40
43
|
// Remote execution + the distributed runtime.
|
|
41
|
-
export
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
export type RemoteSupervisor = operations.RemoteSupervisor;
|
|
44
|
+
export {
|
|
45
|
+
DistributedRuntimeManager,
|
|
46
|
+
RemoteRunnerRegistry,
|
|
47
|
+
RemoteSupervisor,
|
|
48
|
+
} from '@pellux/goodvibes-sdk/platform/runtime/operations';
|
|
47
49
|
|
|
48
50
|
// Boot helpers the daemon runs itself (the facade does not know about them).
|
|
49
|
-
export
|
|
51
|
+
export { synchronizeConfiguredServices as syncConfiguredServices } from '@pellux/goodvibes-sdk/platform/runtime/bootstrap';
|
|
50
52
|
|
|
51
53
|
// Observability.
|
|
52
|
-
export
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
export type IdempotencyStore = observability.IdempotencyStore;
|
|
54
|
+
export {
|
|
55
|
+
TelemetryApiService,
|
|
56
|
+
ComponentHealthMonitor,
|
|
57
|
+
IdempotencyStore,
|
|
58
|
+
} from '@pellux/goodvibes-sdk/platform/runtime/observability';
|
|
58
59
|
|
|
59
60
|
// Security.
|
|
60
|
-
export
|
|
61
|
-
export type PolicyRuntimeState = security.PolicyRuntimeState;
|
|
61
|
+
export { PolicyRuntimeState } from '@pellux/goodvibes-sdk/platform/runtime/security';
|
|
62
62
|
|
|
63
63
|
// Integration helpers (surface-scoped continuity reads) and the no-op screen
|
|
64
64
|
// stand-ins. The daemon facade's service-graph contract names a panel manager
|
|
65
65
|
// and a keybindings manager because a surface that has a screen supplies real
|
|
66
66
|
// ones; the daemon has no screen, and the SDK ships the honest no-ops for
|
|
67
67
|
// exactly this case rather than leaving a hole a fake would fill.
|
|
68
|
-
export
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
68
|
+
export {
|
|
69
|
+
IntegrationHelperService,
|
|
70
|
+
createNoopPanelManager,
|
|
71
|
+
createNoopKeybindingsManager,
|
|
72
|
+
} from '@pellux/goodvibes-sdk/platform/runtime/ui';
|
|
72
73
|
export type PanelManagerLike = ui.PanelManagerLike;
|
|
73
74
|
export type KeybindingsManagerLike = ui.KeybindingsManagerLike;
|
|
74
75
|
|
|
@@ -77,8 +78,7 @@ export type Notification = ui.Notification;
|
|
|
77
78
|
export type RoutingDecision = ui.RoutingDecision;
|
|
78
79
|
|
|
79
80
|
// Outbound network transport installation (proxy/TLS policy from settings).
|
|
80
|
-
export
|
|
81
|
-
export type GlobalNetworkTransportInstaller = transport.GlobalNetworkTransportInstaller;
|
|
81
|
+
export { GlobalNetworkTransportInstaller } from '@pellux/goodvibes-sdk/platform/runtime/transport';
|
|
82
82
|
|
|
83
83
|
|
|
84
84
|
// Runtime event payload unions, re-exported so a consumer names one import path
|
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.
|
|
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
|