pi-goal-list-loop-audit 0.35.65 → 0.35.66

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
@@ -1,5 +1,18 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.35.66 — compiled-host auditor launcher (2026-08-26)
4
+
5
+ ### Fixed
6
+ Detached completion audits no longer launch the worker with a compiled Pi
7
+ executable. The process layer preserves explicit runtime overrides, keeps
8
+ Node/Node.js/Bun/Deno `process.execPath` values, and falls back to `node` for
9
+ compiled hosts that would otherwise parse worker flags such as `--job-dir`.
10
+
11
+ ### Tests
12
+ Runtime-resolution coverage includes Unix, Windows, Node.js aliases, Bun,
13
+ Deno, compiled Pi paths, and bare executable names. The existing explicit
14
+ runtime-override transport regression remains covered.
15
+
3
16
  ## 0.35.65 — status surfaces and worker liveness (2026-08-26)
4
17
 
5
18
  ### Added
@@ -573,7 +573,7 @@ interface AuditorProgressFile {
573
573
  export type AuditorInfrastructureClass = "no-verdict" | "timeout" | "transport" | "provider";
574
574
 
575
575
  export interface AuditorProcessRuntime {
576
- /** Override the worker launcher command (normally process.execPath). */
576
+ /** Override the worker launcher command (normally resolved from process.execPath, with a JS-runtime fallback for compiled hosts). */
577
577
  command?: string;
578
578
  /** Override the worker module (normally scripts/goal-auditor-worker.mjs). */
579
579
  workerPath?: string;
@@ -761,6 +761,17 @@ function stampToken<T extends GoalAuditorResult>(result: T, capturedToken: GoalR
761
761
  return { ...result, goalRevision: capturedToken };
762
762
  }
763
763
 
764
+ const JAVASCRIPT_RUNTIME_BASENAMES = new Set(["node", "nodejs", "bun", "deno"]);
765
+
766
+ /** Resolve the runtime that can execute the extension-less worker module.
767
+ * In a normal Node/Bun/Deno host, process.execPath is already a JavaScript
768
+ * runtime. In a compiled Pi host it is the Pi executable, which would parse
769
+ * worker flags such as --job-dir itself and exit before the worker starts. */
770
+ export function resolveWorkerCommand(execPath: string): string {
771
+ const base = path.basename(execPath.replace(/\\/g, "/")).replace(/\.exe$/i, "").toLowerCase();
772
+ return JAVASCRIPT_RUNTIME_BASENAMES.has(base) ? execPath : "node";
773
+ }
774
+
764
775
  /**
765
776
  * Run one completion audit in a detached, extension-less child process.
766
777
  * Infrastructure failures never become semantic disapprovals and never fall
@@ -881,7 +892,7 @@ export async function runDetachedGoalCompletionAuditor(args: {
881
892
  args.onProgress?.(asProgress(initialProgress, startedAt));
882
893
 
883
894
  const workerPath = runtime.workerPath ?? defaultWorkerPath();
884
- const command = runtime.command ?? process.execPath;
895
+ const command = runtime.command ?? resolveWorkerCommand(process.execPath);
885
896
  const spawn = runtime.spawn ?? nodeSpawn;
886
897
  const env = { ...process.env, ...(runtime.env ?? {}) };
887
898
  if (runtime.piBinary) env.GLLA_PI_BINARY = runtime.piBinary;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pi-goal-list-loop-audit",
3
- "version": "0.35.65",
3
+ "version": "0.35.66",
4
4
  "description": "Mission control for autonomous pi: interview-drafted goals, an audited task queue, and forever-loops (metric, spec, project-audit) that run for hours. A detached extension-less auditor process re-verifies every completion with raw evidence without holding the main pi turn; confirmed drafts, decision pauses and consent gates keep you in charge.",
5
5
  "license": "AGPL-3.0-only",
6
6
  "author": "dracon",