@pellux/goodvibes-daemon 1.28.15 → 1.28.16

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,18 @@ All notable changes to the GoodVibes daemon.
4
4
 
5
5
  ---
6
6
 
7
+ ## [1.28.16] - 2026-08-07
8
+
9
+ ### Changes
10
+
11
+ - **One more module-scope read is gone from the compiled daemon's load path.**
12
+ The command catalog built its flag-arity table by calling an SDK helper at
13
+ module scope; under the single-file compiler's nondeterministic module
14
+ order that call could run before the helper exists, killing the binary at
15
+ load. The table is now built on first use. Found by auditing for the same
16
+ build-order lottery class 1.28.15 fixed — this was the last direct
17
+ module-scope call into the platform runtime in this product.
18
+
7
19
  ## [1.28.15] - 2026-08-07
8
20
 
9
21
  ### Changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pellux/goodvibes-daemon",
3
- "version": "1.28.15",
3
+ "version": "1.28.16",
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",
@@ -820,7 +820,15 @@ export function isRawInterceptCommand(command: DaemonCommand): boolean {
820
820
  * than one command's flag list has the same kind in all of them — asserted by
821
821
  * a unit test rather than left as an assumption — so one table is honest.
822
822
  */
823
- export const ALL_FLAG_ARITY: ReadonlyMap<string, CliFlagKind> = catalogFlagArity(DAEMON_CLI_CATALOG);
823
+ // Resolved on first use, not at module load: `catalogFlagArity` is an SDK
824
+ // import, and the single-file compiler's nondeterministic module order could
825
+ // run this line before the SDK module body exists — the binary then dies at
826
+ // load (the build-order lottery class fixed at runtime 2.0.13).
827
+ let allFlagArityCache: ReadonlyMap<string, CliFlagKind> | null = null;
828
+ export function allFlagArity(): ReadonlyMap<string, CliFlagKind> {
829
+ allFlagArityCache ??= catalogFlagArity(DAEMON_CLI_CATALOG);
830
+ return allFlagArityCache;
831
+ }
824
832
 
825
833
  /** Flag specs a given command accepts: the global ones plus its own. */
826
834
  export function flagsForCommand(command: DaemonCommand): readonly DaemonCommandFlagSpec[] {