@tokenfactory/acc-runner 0.47.7 → 0.47.9

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.
Files changed (64) hide show
  1. package/dist/build-info.generated.d.ts +1 -1
  2. package/dist/build-info.generated.js +2 -2
  3. package/dist/codex-model-catalog.d.ts +4 -0
  4. package/dist/codex-model-catalog.d.ts.map +1 -1
  5. package/dist/codex-model-catalog.js +21 -2
  6. package/dist/codex-model-catalog.js.map +1 -1
  7. package/dist/cost-pricing.d.ts.map +1 -1
  8. package/dist/cost-pricing.js +39 -1
  9. package/dist/cost-pricing.js.map +1 -1
  10. package/dist/engines/codex.d.ts +5 -0
  11. package/dist/engines/codex.d.ts.map +1 -1
  12. package/dist/engines/codex.js +63 -1
  13. package/dist/engines/codex.js.map +1 -1
  14. package/dist/engines/gemini.d.ts +31 -19
  15. package/dist/engines/gemini.d.ts.map +1 -1
  16. package/dist/engines/gemini.js +71 -35
  17. package/dist/engines/gemini.js.map +1 -1
  18. package/dist/engines/registry.d.ts +9 -1
  19. package/dist/engines/registry.d.ts.map +1 -1
  20. package/dist/engines/registry.js +17 -6
  21. package/dist/engines/registry.js.map +1 -1
  22. package/dist/prepr-gate.d.ts +52 -0
  23. package/dist/prepr-gate.d.ts.map +1 -1
  24. package/dist/prepr-gate.js +91 -16
  25. package/dist/prepr-gate.js.map +1 -1
  26. package/dist/process-tree.d.ts +115 -0
  27. package/dist/process-tree.d.ts.map +1 -0
  28. package/dist/process-tree.js +272 -0
  29. package/dist/process-tree.js.map +1 -0
  30. package/dist/program.d.ts.map +1 -1
  31. package/dist/program.js +21 -1
  32. package/dist/program.js.map +1 -1
  33. package/dist/remote-ops/command.d.ts +7 -0
  34. package/dist/remote-ops/command.d.ts.map +1 -0
  35. package/dist/remote-ops/command.js +34 -0
  36. package/dist/remote-ops/command.js.map +1 -0
  37. package/dist/remote-ops/daemon.d.ts +62 -0
  38. package/dist/remote-ops/daemon.d.ts.map +1 -0
  39. package/dist/remote-ops/daemon.js +192 -0
  40. package/dist/remote-ops/daemon.js.map +1 -0
  41. package/dist/remote-ops/invocation.d.ts +26 -0
  42. package/dist/remote-ops/invocation.d.ts.map +1 -0
  43. package/dist/remote-ops/invocation.js +31 -0
  44. package/dist/remote-ops/invocation.js.map +1 -0
  45. package/dist/remote-ops/validate.d.ts +35 -0
  46. package/dist/remote-ops/validate.d.ts.map +1 -0
  47. package/dist/remote-ops/validate.js +60 -0
  48. package/dist/remote-ops/validate.js.map +1 -0
  49. package/dist/runtime/rework.d.ts.map +1 -1
  50. package/dist/runtime/rework.js +16 -0
  51. package/dist/runtime/rework.js.map +1 -1
  52. package/dist/task-runner.d.ts +3 -3
  53. package/dist/task-runner.d.ts.map +1 -1
  54. package/dist/task-runner.js +81 -10
  55. package/dist/task-runner.js.map +1 -1
  56. package/dist/user-cli/tasks.d.ts +9 -0
  57. package/dist/user-cli/tasks.d.ts.map +1 -1
  58. package/dist/user-cli/tasks.js +83 -3
  59. package/dist/user-cli/tasks.js.map +1 -1
  60. package/dist/watch.d.ts +77 -0
  61. package/dist/watch.d.ts.map +1 -1
  62. package/dist/watch.js +168 -8
  63. package/dist/watch.js.map +1 -1
  64. package/package.json +1 -1
@@ -11,7 +11,10 @@
11
11
  import chalk from "chalk";
12
12
  import { userClient } from "./client.js";
13
13
  /** Columns worth a terminal row. Mirrors the read-only MCP task query. */
14
- const LIST_COLUMNS = "id, title, status, priority, risk, repo, branch, pr_number, agent_id, runner_id, updated_at";
14
+ const LIST_COLUMNS = "id, title, status, priority, risk, repo, branch, pr_number, agent_id, runner_id, executor, started_at, updated_at";
15
+ /** Statuses in which runner_id means a runner currently owns the row. Mirrors
16
+ * IN_FLIGHT_STATUSES in src/pages/tasks/executionOwner.ts (tests assert equal). */
17
+ export const IN_FLIGHT = new Set(["claimed", "running", "needs-review", "changes-requested", "merging"]);
15
18
  /** 1..100, defaulting to 25 — the same clamp the MCP read tools use. */
16
19
  export function clampLimit(raw, fallback = 25) {
17
20
  const n = typeof raw === "string" ? Number.parseInt(raw, 10) : raw;
@@ -35,6 +38,20 @@ export function statusColour(status) {
35
38
  return chalk.gray;
36
39
  }
37
40
  }
41
+ export function executionOwner(row) {
42
+ // started_at is the honest execution-start timestamp (set once by
43
+ // acc.transition_task on the →running move, 0018), not a mutable proxy.
44
+ const started = row.started_at ? ` since ${row.started_at}` : "";
45
+ // An external/human reservation IS ownership the moment it is registered —
46
+ // the fleet is already blocked (migration 0473) — so it is surfaced
47
+ // regardless of status, before the row ever reaches a running state.
48
+ if (row.executor === "external")
49
+ return `EXTERNAL/HUMAN SESSION${started}`;
50
+ // A runner only owns the row while it is actually in flight holding it.
51
+ if (IN_FLIGHT.has(row.status ?? "") && row.runner_id)
52
+ return `RUNNER ${row.runner_id}${started}`;
53
+ return null;
54
+ }
38
55
  /**
39
56
  * One task per line, padded to the widest id/status in THIS result set rather
40
57
  * than to a fixed width — a board of short ids should not be indented for the
@@ -46,8 +63,9 @@ export function formatTaskRows(rows) {
46
63
  return rows.map((r) => {
47
64
  const status = (r.status ?? "").padEnd(statusWidth);
48
65
  const pr = r.pr_number ? chalk.cyan(`#${r.pr_number}`) : "";
66
+ const owner = executionOwner(r);
49
67
  const title = (r.title ?? "(untitled)").slice(0, 72);
50
- return `${chalk.bold(r.id.padEnd(idWidth))} ${statusColour(r.status)(status)} ${title}${pr ? ` ${pr}` : ""}`;
68
+ return `${chalk.bold(r.id.padEnd(idWidth))} ${statusColour(r.status)(status)} ${title}${pr ? ` ${pr}` : ""}${owner ? ` ${chalk.bgYellow.black(` EXECUTING: ${owner} `)}` : ""}`;
51
69
  });
52
70
  }
53
71
  export async function taskListCommand(opts = {}, deps = {}) {
@@ -92,8 +110,10 @@ const SHOW_FIELDS = [
92
110
  "pr_number",
93
111
  "agent_id",
94
112
  "runner_id",
113
+ "executor",
95
114
  "parent_task_id",
96
115
  "created_at",
116
+ "started_at",
97
117
  "updated_at",
98
118
  ];
99
119
  export async function taskShowCommand(taskId, opts = {}, deps = {}) {
@@ -112,10 +132,16 @@ export async function taskShowCommand(taskId, opts = {}, deps = {}) {
112
132
  throw new Error(`No task ${taskId} is visible to you.`);
113
133
  }
114
134
  const row = data;
135
+ const owner = executionOwner(row);
115
136
  if (opts.json) {
116
- say(JSON.stringify(row, null, 2));
137
+ say(JSON.stringify({ ...row, execution_owner: owner }, null, 2));
117
138
  return;
118
139
  }
140
+ if (owner) {
141
+ say(chalk.bgYellow.black(` WARNING: ${taskId} is already executing on ${owner}. `));
142
+ say(chalk.yellow("Do not start another session unless you are deliberately taking over."));
143
+ say("");
144
+ }
119
145
  const width = Math.max(...SHOW_FIELDS.map((f) => f.length));
120
146
  for (const field of SHOW_FIELDS) {
121
147
  const value = row[field];
@@ -128,4 +154,58 @@ export async function taskShowCommand(taskId, opts = {}, deps = {}) {
128
154
  say(String(row.description).trim());
129
155
  }
130
156
  }
157
+ export async function taskReserveExternalCommand(taskId, opts = {}, deps = {}) {
158
+ const say = deps.log ?? ((line) => console.log(line));
159
+ const sb = await userClient(deps);
160
+ const { data, error } = await sb
161
+ .from("tasks")
162
+ .select("id,status,runner_id,executor,started_at")
163
+ .eq("id", taskId)
164
+ .maybeSingle();
165
+ if (error)
166
+ throw new Error(`Could not read task ${taskId}: ${error.message}`);
167
+ if (!data)
168
+ throw new Error(`No task ${taskId} is visible to you.`);
169
+ const row = data;
170
+ const owner = executionOwner(row);
171
+ if (owner) {
172
+ throw new Error(`WARNING: ${taskId} is already executing on ${owner}. Refusing to register a second executor.`);
173
+ }
174
+ // Reserving is a record of ownership, never a dispatch. acc.set_task_executor
175
+ // (migration 0473 §4) flips the executor discriminator on a row that is
176
+ // already past the queue leg (queued/running), surrenders runner_id and
177
+ // changes no status: acc.dispatch_queued_tasks skips executor='external'
178
+ // candidates and the claim-lock guards raise external_executor_reserved, so
179
+ // the fleet cannot take the task. A row that has NOT been dispatched is
180
+ // refused here rather than started — starting it would be a second path into
181
+ // the queue outside the dispatcher (AC3). Dispatch it with executor external
182
+ // first (board, or MCP dispatch_task), which runs acc.start_task's fences and
183
+ // reserves it in the same transaction (0473 §4b).
184
+ if (row.status !== "queued" && row.status !== "running") {
185
+ throw new Error(`${taskId} is ${row.status ?? "undispatched"}, not dispatched; reserve-external never starts a task. ` +
186
+ "Dispatch it with executor external first (board, or MCP dispatch_task); that reserves it for you.");
187
+ }
188
+ const { data: rpcData, error: rpcError } = await sb.rpc("set_task_executor", {
189
+ p_task_id: taskId,
190
+ p_executor: "external",
191
+ });
192
+ if (rpcError)
193
+ throw new Error(`Could not reserve ${taskId} for external execution: ${rpcError.message}`);
194
+ // The RPC can refuse by value rather than raising — e.g. a runner already
195
+ // holds the task's claim locks ('claimed_by_runner'). Surface that as a
196
+ // failure instead of claiming a reservation that did not land.
197
+ const result = (rpcData ?? null);
198
+ if (result && result.ok === false) {
199
+ const held = result.runner_id ? ` (held by runner ${result.runner_id})` : "";
200
+ throw new Error(`Could not reserve ${taskId} for external execution: ${result.error ?? "refused"}${held}.`);
201
+ }
202
+ const body = {
203
+ ok: true,
204
+ task_id: taskId,
205
+ executor: "external",
206
+ enforcing: true,
207
+ detail: "Reserved for an external/human session; dispatcher runners will not claim it.",
208
+ };
209
+ say(opts.json ? JSON.stringify(body, null, 2) : `${chalk.bgYellow.black(" EXECUTING ")} ${taskId} reserved for an external/human session. Dispatcher runners will not claim it.`);
210
+ }
131
211
  //# sourceMappingURL=tasks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/user-cli/tasks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tasks.js","sourceRoot":"","sources":["../../src/user-cli/tasks.ts"],"names":[],"mappings":"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"}
package/dist/watch.d.ts CHANGED
@@ -18,6 +18,7 @@ import { ClaimDeadman, type HeartbeatDeadmanFields } from "./claim-deadman/index
18
18
  import type { EngineAccountIdentity } from "./engines/types.js";
19
19
  import type { ClaudeExitClass } from "./failure-classifier.js";
20
20
  import type { StoredSession } from "./types.js";
21
+ import { type ProcessTreeRegistry } from "./process-tree.js";
21
22
  import { RefreshReuseDetectedError, classifyHeartbeatError, nextHeartbeatDelayMs, type HeartbeatErrorKind } from "./runtime/auth-lifecycle.js";
22
23
  import { HeartbeatVerifier } from "./heartbeat/beat.js";
23
24
  export { RefreshReuseDetectedError, classifyHeartbeatError, nextHeartbeatDelayMs, type HeartbeatErrorKind, };
@@ -762,6 +763,48 @@ export declare function reassertRunningClaims(state: WatchState): Promise<void>;
762
763
  * engine's tasks, and other engines keep claiming.
763
764
  */
764
765
  export declare function claimPauseReason(state: Pick<WatchState, "capacityClaimPaused" | "gitAuthFailed" | "capacityProbe">): ClaimPauseReason | null;
766
+ /**
767
+ * RUNNER-TEST-HANG-SLOT-LEAK-1: the number of task slots in use — the live
768
+ * task-controller count, and ONLY that.
769
+ *
770
+ * This is the whole slot-accounting invariant in one place: a slot is a LIVE
771
+ * `runTask` controller in `state.running`, never a surviving process. A leaked
772
+ * process tree whose task has already ended is tracked in `processTreeRegistry`
773
+ * (reaped by `reapTaskProcessTree` when the task leaves) and must NEVER count
774
+ * toward the claim ceiling — otherwise N hung `pnpm run test` children would
775
+ * wedge the runner out of claiming forever, which is exactly the incident this
776
+ * change fixes. Reading `running.size` here (not any process count) is what
777
+ * lets a runner with 4 leaked trees keep claiming.
778
+ */
779
+ export declare function taskSlotsInUse(state: Pick<WatchState, "running">): number;
780
+ /** RUNNER-TEST-HANG-SLOT-LEAK-1: injectable seams for `reapTaskProcessTree`. */
781
+ export interface ReapTreeOptions {
782
+ /** Registry to reap from. Default: the shared `processTreeRegistry`. */
783
+ registry?: ProcessTreeRegistry;
784
+ /** Per-group kill. Default: SIGTERM→SIGKILL via `terminateProcessGroup`. */
785
+ kill?: (pgid: number) => void;
786
+ /** Breadcrumb sink. Default: a best-effort `log_activity` RPC. */
787
+ emit?: (verb: string, payload: Record<string, unknown>) => void;
788
+ }
789
+ /**
790
+ * RUNNER-TEST-HANG-SLOT-LEAK-1: kill every process tree a task still owns and,
791
+ * when anything was actually killed, emit a `runner.orphan_reaped` breadcrumb
792
+ * naming the task and the reaped process-group ids. Called immediately for
793
+ * local completion, pause, cancellation and shutdown; the poll detects an
794
+ * external release, rescue or archive on its next tick.
795
+ *
796
+ * Best-effort end to end: a reap never throws into the pump loop, and a failed
797
+ * breadcrumb is swallowed. Returns the reaped pgids (empty when the task owned
798
+ * no tracked tree — the common case, since the guarded runner sweeps its own
799
+ * group on exit; this is the belt-and-braces for an aborted or orphaned run).
800
+ */
801
+ export declare function reapTaskProcessTree(state: Pick<WatchState, "supabase" | "session">, taskId: string, opts?: ReapTreeOptions): number[];
802
+ /**
803
+ * An external release, rescue or archive can change the server row while the
804
+ * local test gate is still pending. Poll only tasks with a guarded process;
805
+ * fail open on a read error so a transient connection cannot kill live work.
806
+ */
807
+ export declare function reapInactiveTaskProcessTrees(state: Pick<WatchState, "supabase" | "session" | "running">, registry?: ProcessTreeRegistry): Promise<string[]>;
765
808
  /**
766
809
  * CLAIM-DEADMAN: parse the pending-dispatch fields off a `heartbeat_runner`
767
810
  * response. Tolerant of a scalar row, a single-row array, or null (today's
@@ -832,4 +875,38 @@ export declare function gracefulShutdown(state: Pick<WatchState, "running" | "su
832
875
  * already running finishes normally across a pause / resume / account swap.
833
876
  */
834
877
  export declare function buildResumeControllerDeps(state: WatchState, factory: typeof runTask): Pick<ResumeControllerDeps, "setServerPause" | "stopClaims" | "clearServerPause" | "restartClaims" | "onLog">;
878
+ /**
879
+ * A stable RunnerSupabaseClient facade that forwards every access to whatever
880
+ * client `getClient()` returns *now*.
881
+ *
882
+ * The access JWT is baked into `global.headers.Authorization` at client
883
+ * creation time (see createRunnerClient in supabase.ts), so a token rotation
884
+ * does not mutate the client in place — it REPLACES the whole object (doRefresh:
885
+ * `state.supabase = createRunnerClient(…)`). A long-running task that captured
886
+ * the pre-rotation client by value therefore kept presenting the expired JWT,
887
+ * and every RPC it made (update_task_signal, transition/report/lock RPCs) died
888
+ * on "JWT expired" until an operator restarted the runner. Handing the task this
889
+ * proxy instead of a snapshot means each `deps.supabase.rpc(…)` re-resolves
890
+ * against the current client, so RPCs issued after a rotation authenticate with
891
+ * the fresh JWT.
892
+ *
893
+ * This creates no additional client — it only ever delegates to the single
894
+ * `state.supabase` the runner already maintains. Methods are bound to the real
895
+ * client so supabase-js's private (`#`) instance fields resolve correctly. It
896
+ * lives here (not in supabase.ts) so the many watch-suite mocks of
897
+ * `../src/supabase.js` do not need to re-export it.
898
+ */
899
+ export declare function createLiveClientProxy(getClient: () => RunnerSupabaseClient): RunnerSupabaseClient;
900
+ /**
901
+ * The per-task view of the runner session that reads the CURRENT access token
902
+ * on every access. `runnerId` is stable across a rotation, but the access token
903
+ * is not — doRefresh replaces `state.session` wholesale — so anything in the
904
+ * task path that reads `session.accessToken` (the per-task `.mcp.json` bearer
905
+ * handed to acc-mcp-server) must read it live, not a claim-time snapshot. Mirror
906
+ * of createLiveClientProxy for the token.
907
+ */
908
+ export declare function liveTaskSession(getSession: () => StoredSession): {
909
+ readonly accessToken: string;
910
+ readonly runnerId: string;
911
+ };
835
912
  //# sourceMappingURL=watch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../src/watch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../src/watch.ts"],"names":[],"mappings":"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"}
package/dist/watch.js CHANGED
@@ -79,6 +79,7 @@ import { checkVersion, compareSemver } from "./version-check.js";
79
79
  import { PACKAGE_VERSION } from "./pkg-version.js";
80
80
  import { buildFingerprintCaps, publishBuildFingerprintCaps, LOADED_BUILD_FINGERPRINT, } from "./build-fingerprint.js";
81
81
  import { recordRunningBuild } from "./runtime/running-build.js";
82
+ import { processTreeRegistry, } from "./process-tree.js";
82
83
  import { authPrecedenceHint, servingAuthKind, describeServingAuthKind, forwardsAmbientKey, anthropicApiKey, } from "./provider-auth.js";
83
84
  // RUNNER-SERVING-AUTH: the org's subscription-vs-BYOK choice, resolved once
84
85
  // per boot and expressed through the same ACC_RUNNER_SERVING_AUTH_KIND var the
@@ -418,6 +419,7 @@ async function handleTaskPaused(state, payload) {
418
419
  }
419
420
  if (ctrl) {
420
421
  ctrl.cancel();
422
+ reapTaskProcessTree(state, taskId);
421
423
  console.log(chalk.yellow(`⏸ ${taskId} paused (${msg.reason ?? "preempted"}) — session stopped`));
422
424
  }
423
425
  else {
@@ -447,6 +449,7 @@ function subscribeChannel(state, taskRunnerFactory) {
447
449
  const ctrl = state.running.get(taskId);
448
450
  if (ctrl) {
449
451
  ctrl.cancel();
452
+ reapTaskProcessTree(state, taskId);
450
453
  }
451
454
  else {
452
455
  state.queue = state.queue.filter((t) => t !== taskId);
@@ -690,6 +693,7 @@ async function pollOnce(state, factory) {
690
693
  return;
691
694
  state.polling = true;
692
695
  try {
696
+ await reapInactiveTaskProcessTrees(state);
693
697
  const { data, error } = await state.supabase.rpc("list_assigned_queued_tasks", {
694
698
  p_runner_id: state.session.runner_id,
695
699
  p_since: state.pollSince,
@@ -1153,7 +1157,100 @@ function deadmanCanClaim(state) {
1153
1157
  capacityProbe: state.capacityProbe,
1154
1158
  claimPaused: state.capacityClaimPaused,
1155
1159
  });
1156
- return state.running.size < limit;
1160
+ return taskSlotsInUse(state) < limit;
1161
+ }
1162
+ /**
1163
+ * RUNNER-TEST-HANG-SLOT-LEAK-1: the number of task slots in use — the live
1164
+ * task-controller count, and ONLY that.
1165
+ *
1166
+ * This is the whole slot-accounting invariant in one place: a slot is a LIVE
1167
+ * `runTask` controller in `state.running`, never a surviving process. A leaked
1168
+ * process tree whose task has already ended is tracked in `processTreeRegistry`
1169
+ * (reaped by `reapTaskProcessTree` when the task leaves) and must NEVER count
1170
+ * toward the claim ceiling — otherwise N hung `pnpm run test` children would
1171
+ * wedge the runner out of claiming forever, which is exactly the incident this
1172
+ * change fixes. Reading `running.size` here (not any process count) is what
1173
+ * lets a runner with 4 leaked trees keep claiming.
1174
+ */
1175
+ export function taskSlotsInUse(state) {
1176
+ return state.running.size;
1177
+ }
1178
+ /**
1179
+ * RUNNER-TEST-HANG-SLOT-LEAK-1: kill every process tree a task still owns and,
1180
+ * when anything was actually killed, emit a `runner.orphan_reaped` breadcrumb
1181
+ * naming the task and the reaped process-group ids. Called immediately for
1182
+ * local completion, pause, cancellation and shutdown; the poll detects an
1183
+ * external release, rescue or archive on its next tick.
1184
+ *
1185
+ * Best-effort end to end: a reap never throws into the pump loop, and a failed
1186
+ * breadcrumb is swallowed. Returns the reaped pgids (empty when the task owned
1187
+ * no tracked tree — the common case, since the guarded runner sweeps its own
1188
+ * group on exit; this is the belt-and-braces for an aborted or orphaned run).
1189
+ */
1190
+ export function reapTaskProcessTree(state, taskId, opts = {}) {
1191
+ const registry = opts.registry ?? processTreeRegistry;
1192
+ const details = registry.detailsForTask(taskId);
1193
+ const reaped = registry.reapTask(taskId, opts.kill);
1194
+ if (reaped.length === 0)
1195
+ return [];
1196
+ const emit = opts.emit ??
1197
+ ((verb, payload) => {
1198
+ try {
1199
+ void Promise.resolve(state.supabase.rpc("log_activity", {
1200
+ p_verb: verb,
1201
+ p_target_id: taskId,
1202
+ p_target_type: "task",
1203
+ p_payload: payload,
1204
+ })).catch(() => {
1205
+ /* best-effort breadcrumb */
1206
+ });
1207
+ }
1208
+ catch {
1209
+ // Mocked clients and shutdown races can throw before returning a promise.
1210
+ }
1211
+ });
1212
+ emit("runner.orphan_reaped", {
1213
+ task_id: taskId,
1214
+ runner_id: state.session.runner_id,
1215
+ pgids: reaped,
1216
+ count: reaped.length,
1217
+ command: details.map((group) => group.command).join(", "),
1218
+ elapsed_ms: Math.max(0, ...details.map((group) => group.elapsed_ms)),
1219
+ });
1220
+ return reaped;
1221
+ }
1222
+ /**
1223
+ * An external release, rescue or archive can change the server row while the
1224
+ * local test gate is still pending. Poll only tasks with a guarded process;
1225
+ * fail open on a read error so a transient connection cannot kill live work.
1226
+ */
1227
+ export async function reapInactiveTaskProcessTrees(state, registry = processTreeRegistry) {
1228
+ const reaped = [];
1229
+ for (const taskId of registry.trackedTaskIds()) {
1230
+ const ctrl = state.running.get(taskId);
1231
+ if (!ctrl) {
1232
+ if (reapTaskProcessTree(state, taskId, { registry }).length)
1233
+ reaped.push(taskId);
1234
+ continue;
1235
+ }
1236
+ try {
1237
+ const { data, error } = await state.supabase.rpc("fetch_task_for_runner", {
1238
+ p_task_id: taskId,
1239
+ });
1240
+ if (error || !data)
1241
+ continue;
1242
+ const task = data.task;
1243
+ if (!task || (task.status === "running" && task.runner_id === state.session.runner_id))
1244
+ continue;
1245
+ ctrl.cancel();
1246
+ if (reapTaskProcessTree(state, taskId, { registry }).length)
1247
+ reaped.push(taskId);
1248
+ }
1249
+ catch {
1250
+ // Retry on the next poll; an unavailable status read must not stop work.
1251
+ }
1252
+ }
1253
+ return reaped;
1157
1254
  }
1158
1255
  /**
1159
1256
  * CLAIM-DEADMAN: parse the pending-dispatch fields off a `heartbeat_runner`
@@ -2366,8 +2463,9 @@ export async function watchCommand(options = {}) {
2366
2463
  state.resumeController.stop();
2367
2464
  state.accountProbe?.stop();
2368
2465
  // v0.10 T-49-2: cancel every in-flight task (replaces v0.9 single cancel).
2369
- for (const ctrl of state.running.values()) {
2466
+ for (const [taskId, ctrl] of state.running) {
2370
2467
  ctrl.cancel();
2468
+ reapTaskProcessTree(state, taskId);
2371
2469
  }
2372
2470
  // FLEET-SERVE (wire): stop the chat lane (requeues in-flight chat turns for
2373
2471
  // the companion / next fleet runner) and restore the acc-mcp config. Best-
@@ -3538,6 +3636,54 @@ async function wireCapacityResume(state, factory, options) {
3538
3636
  // pause-tick / heartbeat cadence per its four-trigger schedule).
3539
3637
  state.accountProbe.start();
3540
3638
  }
3639
+ /**
3640
+ * A stable RunnerSupabaseClient facade that forwards every access to whatever
3641
+ * client `getClient()` returns *now*.
3642
+ *
3643
+ * The access JWT is baked into `global.headers.Authorization` at client
3644
+ * creation time (see createRunnerClient in supabase.ts), so a token rotation
3645
+ * does not mutate the client in place — it REPLACES the whole object (doRefresh:
3646
+ * `state.supabase = createRunnerClient(…)`). A long-running task that captured
3647
+ * the pre-rotation client by value therefore kept presenting the expired JWT,
3648
+ * and every RPC it made (update_task_signal, transition/report/lock RPCs) died
3649
+ * on "JWT expired" until an operator restarted the runner. Handing the task this
3650
+ * proxy instead of a snapshot means each `deps.supabase.rpc(…)` re-resolves
3651
+ * against the current client, so RPCs issued after a rotation authenticate with
3652
+ * the fresh JWT.
3653
+ *
3654
+ * This creates no additional client — it only ever delegates to the single
3655
+ * `state.supabase` the runner already maintains. Methods are bound to the real
3656
+ * client so supabase-js's private (`#`) instance fields resolve correctly. It
3657
+ * lives here (not in supabase.ts) so the many watch-suite mocks of
3658
+ * `../src/supabase.js` do not need to re-export it.
3659
+ */
3660
+ export function createLiveClientProxy(getClient) {
3661
+ return new Proxy({}, {
3662
+ get(_target, prop) {
3663
+ const client = getClient();
3664
+ const value = Reflect.get(client, prop, client);
3665
+ return typeof value === "function" ? value.bind(client) : value;
3666
+ },
3667
+ });
3668
+ }
3669
+ /**
3670
+ * The per-task view of the runner session that reads the CURRENT access token
3671
+ * on every access. `runnerId` is stable across a rotation, but the access token
3672
+ * is not — doRefresh replaces `state.session` wholesale — so anything in the
3673
+ * task path that reads `session.accessToken` (the per-task `.mcp.json` bearer
3674
+ * handed to acc-mcp-server) must read it live, not a claim-time snapshot. Mirror
3675
+ * of createLiveClientProxy for the token.
3676
+ */
3677
+ export function liveTaskSession(getSession) {
3678
+ return {
3679
+ get accessToken() {
3680
+ return getSession().access_token;
3681
+ },
3682
+ get runnerId() {
3683
+ return getSession().runner_id;
3684
+ },
3685
+ };
3686
+ }
3541
3687
  /**
3542
3688
  * v0.10 T-49-2: concurrent task pump.
3543
3689
  *
@@ -3587,7 +3733,9 @@ async function pump(state, factory) {
3587
3733
  while (!state.stopped &&
3588
3734
  !state.quarantined &&
3589
3735
  state.queue.length > 0 &&
3590
- state.running.size < effectiveLimit) {
3736
+ // RUNNER-TEST-HANG-SLOT-LEAK-1: count LIVE controllers only (see
3737
+ // taskSlotsInUse) — a leaked process tree must never gate a claim.
3738
+ taskSlotsInUse(state) < effectiveLimit) {
3591
3739
  const nextIndex = state.queue.findIndex((id) => !isCapacityPausedFor(state, state.taskEngines.get(id)));
3592
3740
  if (nextIndex === -1)
3593
3741
  return;
@@ -3595,12 +3743,17 @@ async function pump(state, factory) {
3595
3743
  if (!next)
3596
3744
  continue;
3597
3745
  const ctrl = factory(next, {
3598
- supabase: state.supabase,
3746
+ // Hand the task a LIVE view of the runner's Supabase client and session,
3747
+ // not a claim-time snapshot. doRefresh rotates state.supabase/
3748
+ // state.session when the access token expires; a task that outlived its
3749
+ // claim-time JWT used to keep the pre-rotation client forever and die on
3750
+ // "JWT expired" on every RPC (update_task_signal, transitions, locks,
3751
+ // reports). The proxy re-resolves to the current client on each RPC, and
3752
+ // the session getters read the current token — no per-task client is
3753
+ // created.
3754
+ supabase: createLiveClientProxy(() => state.supabase),
3599
3755
  cfg: state.cfg,
3600
- session: {
3601
- accessToken: state.session.access_token,
3602
- runnerId: state.session.runner_id,
3603
- },
3756
+ session: liveTaskSession(() => state.session),
3604
3757
  publicUrl: state.cfg.publicUrl,
3605
3758
  onUnknownAdvertisedEngine: (engineId, err) => repairUnknownAdvertisedEngine(state, engineId, err),
3606
3759
  // CLAIM-LOCK-GLOB: hand the per-runner claim-loss map
@@ -3615,6 +3768,10 @@ async function pump(state, factory) {
3615
3768
  void ctrl.promise
3616
3769
  .then((outcome) => {
3617
3770
  state.running.delete(next);
3771
+ // RUNNER-TEST-HANG-SLOT-LEAK-1: the task has left the runner (done,
3772
+ // needs-review, failed, cancelled, requeued, ignored…) — reap any
3773
+ // process tree it still owns so a hung test child can't outlive it.
3774
+ reapTaskProcessTree(state, next);
3618
3775
  touchActivity(state); // v0.12.0 (T-52-7): idle clock restarts at task end
3619
3776
  // Capacity exhaustion pauses only the refused engine's task claims.
3620
3777
  //
@@ -3763,6 +3920,9 @@ async function pump(state, factory) {
3763
3920
  })
3764
3921
  .catch((err) => {
3765
3922
  state.running.delete(next);
3923
+ // RUNNER-TEST-HANG-SLOT-LEAK-1: same reap on the crash path — a task
3924
+ // that threw must not leave a hung test tree pinned behind it.
3925
+ reapTaskProcessTree(state, next);
3766
3926
  touchActivity(state); // v0.12.0 (T-52-7): idle clock restarts at task end
3767
3927
  process.stderr.write(`[acc-runner] task ${next} crashed: ${err.message}\n`);
3768
3928
  // v0.56 (T-56-1): a crash is not a capacity signal — clear the probe