@tokenfactory/acc-runner 0.47.9 → 0.47.11

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 (44) hide show
  1. package/dist/build-info.generated.d.ts +1 -1
  2. package/dist/build-info.generated.js +2 -2
  3. package/dist/companion-autostart.d.ts.map +1 -1
  4. package/dist/companion-autostart.js +5 -0
  5. package/dist/companion-autostart.js.map +1 -1
  6. package/dist/companion-run.d.ts.map +1 -1
  7. package/dist/companion-run.js +46 -18
  8. package/dist/companion-run.js.map +1 -1
  9. package/dist/doctor.d.ts +20 -0
  10. package/dist/doctor.d.ts.map +1 -1
  11. package/dist/doctor.js +187 -3
  12. package/dist/doctor.js.map +1 -1
  13. package/dist/keychain.d.ts +31 -0
  14. package/dist/keychain.d.ts.map +1 -1
  15. package/dist/keychain.js +70 -1
  16. package/dist/keychain.js.map +1 -1
  17. package/dist/program.d.ts.map +1 -1
  18. package/dist/program.js +23 -1
  19. package/dist/program.js.map +1 -1
  20. package/dist/runtime/auth-lifecycle.d.ts +22 -1
  21. package/dist/runtime/auth-lifecycle.d.ts.map +1 -1
  22. package/dist/runtime/auth-lifecycle.js +28 -1
  23. package/dist/runtime/auth-lifecycle.js.map +1 -1
  24. package/dist/runtime/refresh-lock.d.ts +232 -0
  25. package/dist/runtime/refresh-lock.d.ts.map +1 -0
  26. package/dist/runtime/refresh-lock.js +609 -0
  27. package/dist/runtime/refresh-lock.js.map +1 -0
  28. package/dist/supervisor.d.ts +46 -0
  29. package/dist/supervisor.d.ts.map +1 -1
  30. package/dist/supervisor.js +65 -0
  31. package/dist/supervisor.js.map +1 -1
  32. package/dist/task-runner.d.ts.map +1 -1
  33. package/dist/task-runner.js +16 -0
  34. package/dist/task-runner.js.map +1 -1
  35. package/dist/token-provider.d.ts +12 -0
  36. package/dist/token-provider.d.ts.map +1 -1
  37. package/dist/token-provider.js +23 -3
  38. package/dist/token-provider.js.map +1 -1
  39. package/dist/watch.d.ts +31 -13
  40. package/dist/watch.d.ts.map +1 -1
  41. package/dist/watch.js +180 -37
  42. package/dist/watch.js.map +1 -1
  43. package/package.json +1 -1
  44. package/scripts/setup-dedicated-runner-linux.sh +17 -35
@@ -64,7 +64,7 @@
64
64
  * recovery stays `acc-runner login`.
65
65
  */
66
66
  import crypto from "node:crypto";
67
- import { clearSession as keychainClear, loadSession as keychainLoad, saveSession as keychainSave, } from "./keychain.js";
67
+ import { clearSession as keychainClear, loadSessionFromAccount, saveSessionToAccountVerified, sessionAccount, } from "./keychain.js";
68
68
  /** Prefix marking a runner as ephemeral to the autoscale sweep. */
69
69
  export const EPHEMERAL_RUNNER_PREFIX = "acc-eph-";
70
70
  /** Mint a fresh ephemeral runner id: acc-eph-<8 hex chars>. */
@@ -92,6 +92,7 @@ export function decodeJwtClaims(jwt) {
92
92
  sub: typeof parsed.sub === "string" ? parsed.sub : undefined,
93
93
  email: typeof parsed.email === "string" ? parsed.email : undefined,
94
94
  exp: typeof parsed.exp === "number" ? parsed.exp : undefined,
95
+ iat: typeof parsed.iat === "number" ? parsed.iat : undefined,
95
96
  };
96
97
  }
97
98
  catch {
@@ -100,14 +101,28 @@ export function decodeJwtClaims(jwt) {
100
101
  }
101
102
  class KeychainTokenProvider {
102
103
  mode = "keychain";
104
+ // RUNNER-REFRESH-ROTATION-LOST: the account captured at load(), reused by
105
+ // every save() so a rotated successor can never land in a different slot than
106
+ // the one the session was loaded from. Null until the first load().
107
+ bound = null;
103
108
  canRefresh() {
104
109
  return true;
105
110
  }
106
111
  load() {
107
- return keychainLoad();
112
+ const account = sessionAccount();
113
+ this.bound = account;
114
+ return loadSessionFromAccount(account);
108
115
  }
109
116
  save(session) {
110
- return keychainSave(session);
117
+ // Reuse the account captured at load; only fall back to re-resolving when a
118
+ // save somehow precedes a load (never on the watch path). The verified save
119
+ // writes, reads back, and throws KeychainSaveError on any divergence.
120
+ const account = this.bound ?? sessionAccount();
121
+ this.bound = account;
122
+ return saveSessionToAccountVerified(account, session);
123
+ }
124
+ boundAccount() {
125
+ return this.bound;
111
126
  }
112
127
  clear() {
113
128
  return keychainClear();
@@ -255,6 +270,11 @@ export class EnvTokenProvider {
255
270
  fleetSize() {
256
271
  return this.fleet.length;
257
272
  }
273
+ // Env-token runners source their credentials from env vars, not a keychain
274
+ // slot — there is no account to bind. (RUNNER-REFRESH-ROTATION-LOST)
275
+ boundAccount() {
276
+ return null;
277
+ }
258
278
  }
259
279
  export function resolveTokenMode(env = process.env) {
260
280
  const raw = env.ACC_RUNNER_TOKEN_MODE?.trim().toLowerCase();
@@ -1 +1 @@
1
- {"version":3,"file":"token-provider.js","sourceRoot":"","sources":["../src/token-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"token-provider.js","sourceRoot":"","sources":["../src/token-provider.ts"],"names":[],"mappings":"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"}
package/dist/watch.d.ts CHANGED
@@ -19,9 +19,11 @@ 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
21
  import { type ProcessTreeRegistry } from "./process-tree.js";
22
- import { RefreshReuseDetectedError, classifyHeartbeatError, nextHeartbeatDelayMs, type HeartbeatErrorKind } from "./runtime/auth-lifecycle.js";
22
+ import { RefreshExpiredError, RefreshReuseDetectedError, classifyHeartbeatError, nextHeartbeatDelayMs, type HeartbeatErrorKind } from "./runtime/auth-lifecycle.js";
23
+ import { EX_CONFIG } from "./runtime/refresh-lock.js";
23
24
  import { HeartbeatVerifier } from "./heartbeat/beat.js";
24
- export { RefreshReuseDetectedError, classifyHeartbeatError, nextHeartbeatDelayMs, type HeartbeatErrorKind, };
25
+ export { RefreshExpiredError, RefreshReuseDetectedError, classifyHeartbeatError, nextHeartbeatDelayMs, type HeartbeatErrorKind, };
26
+ export { EX_CONFIG };
25
27
  export declare const DEFAULT_CLAIM_PAUSE_MAX_MS: number;
26
28
  export declare const CLAIM_PAUSE_MAX_MS_ENV = "ACC_RUNNER_CLAIM_PAUSE_MAX_MS";
27
29
  /** CLAIM-PAUSE-BOUND: parse ACC_RUNNER_CLAIM_PAUSE_MAX_MS; junk/zero/negative → default. */
@@ -786,23 +788,39 @@ export interface ReapTreeOptions {
786
788
  /** Breadcrumb sink. Default: a best-effort `log_activity` RPC. */
787
789
  emit?: (verb: string, payload: Record<string, unknown>) => void;
788
790
  }
791
+ export declare function reapTaskProcessTree(state: Pick<WatchState, "supabase" | "session">, taskId: string, opts?: ReapTreeOptions): number[];
789
792
  /**
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).
793
+ * RUNNER-REAPER-KILLS-OWN-PREPR-GATE-1: server statuses that mean the task has
794
+ * LEFT this runner (released, parked, finished) — the only statuses the poll
795
+ * reaper may act on. A task at `running`, `needs-review` or `changes-requested`
796
+ * still belongs to the controller that holds it: the agent opens its PR itself
797
+ * (`gh pr create`) and the webhook flips the row to `needs-review` BEFORE the
798
+ * runner's pre-PR gate (`pnpm run typecheck|lint|build|test`) has run, so on
799
+ * 0.47.10 the poll read "not running" and SIGTERMed its own gate on the next
800
+ * tick — every such task parked `gate_tool_crashed:<gate>` (six tasks in the
801
+ * first two hours, 2026-10-11). Status alone is therefore
802
+ * never the signal; ownership (`runner_id`) is.
800
803
  */
801
- export declare function reapTaskProcessTree(state: Pick<WatchState, "supabase" | "session">, taskId: string, opts?: ReapTreeOptions): number[];
804
+ export declare const RELEASED_TASK_STATUSES: ReadonlySet<string>;
805
+ /**
806
+ * Decide whether a tracked task's server row says the task has left this
807
+ * runner. Pure, so the rule is testable without a process tree:
808
+ * - a row another runner now holds → released (reassigned / rescued);
809
+ * - a row at a released/terminal status → released (server sweep, operator
810
+ * park, archive), whoever it names;
811
+ * - everything else (`running`, `needs-review`, `changes-requested`, … with
812
+ * this runner or no runner on it) → still ours, leave the tree alone.
813
+ */
814
+ export declare function serverRowReleasedTask(task: {
815
+ status?: string | null;
816
+ runner_id?: string | null;
817
+ } | null | undefined, selfRunnerId: string): boolean;
802
818
  /**
803
819
  * An external release, rescue or archive can change the server row while the
804
820
  * local test gate is still pending. Poll only tasks with a guarded process;
805
821
  * fail open on a read error so a transient connection cannot kill live work.
822
+ * A row that merely ADVANCED (needs-review after the agent opened the PR) is
823
+ * not a release — see `serverRowReleasedTask`.
806
824
  */
807
825
  export declare function reapInactiveTaskProcessTrees(state: Pick<WatchState, "supabase" | "session" | "running">, registry?: ProcessTreeRegistry): Promise<string[]>;
808
826
  /**
@@ -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
@@ -88,11 +88,26 @@ import { fetchServingAuth, installServingAuth, servingAuthKindIsPinned, describe
88
88
  // AUTH-REFRESH: the refresh + heartbeat-classification
89
89
  // primitives now live in a shared module so the companion runner reuses them
90
90
  // verbatim. Re-exported below to keep watch.js's existing test-facing surface.
91
- import { RefreshReuseDetectedError, classifyHeartbeatError, expiresSoon, nextHeartbeatDelayMs, refreshAccessToken, } from "./runtime/auth-lifecycle.js";
91
+ import { RefreshExpiredError, RefreshReuseDetectedError, classifyHeartbeatError, expiresSoon, isTerminalRefreshError, nextHeartbeatDelayMs, } from "./runtime/auth-lifecycle.js";
92
+ import { KeychainSaveError, sessionAccount } from "./keychain.js";
93
+ // RUNNER-REFRESH-ROTATION-LOST (ROTATED): the instance-scoped refresh lock +
94
+ // keychain-adoption coordinator so a `watch` and a sibling rotator (companion
95
+ // or a second watch) on the same slot never revoke each other's token family.
96
+ import { coordinatedRefresh, emitRefreshRefused, EX_CONFIG } from "./runtime/refresh-lock.js";
97
+ import { resolveInstance } from "./instance.js";
92
98
  // AU-7 RUNNER-FLAP-ROOT-CAUSE: bounded + write-then-read-verified heartbeat.
93
99
  import { HEARTBEAT_RPC_TIMEOUT_MS, HeartbeatVerifier, nextBeatDelayMs, sendHeartbeat, withDeadline, } from "./heartbeat/beat.js";
94
100
  import { buildEnv, requireExecutable } from "./bin-resolve.js";
95
- export { RefreshReuseDetectedError, classifyHeartbeatError, nextHeartbeatDelayMs, };
101
+ export { RefreshExpiredError, RefreshReuseDetectedError, classifyHeartbeatError, nextHeartbeatDelayMs, };
102
+ // RUNNER-REFRESH-ROTATION-LOST: re-export the shared terminal-refusal exit code
103
+ // so existing `watch.js` importers keep resolving it after the move.
104
+ export { EX_CONFIG };
105
+ // RUNNER-REFRESH-ROTATION-LOST: EX_CONFIG (78) — the TERMINAL-refusal exit code
106
+ // — now lives in runtime/refresh-lock.ts so the companion can share it without
107
+ // importing this task-loop module. Re-exported here to keep watch.js's existing
108
+ // test/import surface stable. The systemd unit carries
109
+ // `RestartPreventExitStatus=78` (see supervisor.ts) so the supervisor leaves the
110
+ // unit failed instead of looping and burning every token family it can reach.
96
111
  const REFRESH_CHECK_MS = 30 * 60 * 1000;
97
112
  // v0.12.0 (T-52-7): idle-TTL check cadence ceiling. The actual cadence is
98
113
  // min(IDLE_CHECK_MS, ttl) so a tiny test TTL still gets checked in time.
@@ -278,15 +293,51 @@ export function capsConstrainedReviewerFactory(advertisedEngines, run = runRevie
278
293
  function touchActivity(state) {
279
294
  state.lastActivityMs = Date.now();
280
295
  }
281
- // Centralised handler for the reuse-detected case. Loud red banner so the
282
- // operator notices immediately, then exit(1) — there's no safe recovery
283
- // from the watch loop, the keychain has to be reset by `acc-runner login`.
284
- function failOnReuse(err) {
285
- process.stderr.write(chalk.red.bold("\n[acc-runner] CRITICAL: refresh-token reuse detected.\n"));
286
- process.stderr.write(chalk.red(`${err.message}\n`));
287
- process.stderr.write(chalk.red("If this machine is the legitimate owner, an attacker may have rotated your tokens.\n" +
288
- "Rotate any other credentials that were on this box and run `acc-runner login` from a trusted machine.\n"));
289
- process.exit(1);
296
+ /**
297
+ * RUNNER-REFRESH-ROTATION-LOST: centralised handler for a TERMINAL refresh
298
+ * refusal (reuse OR expired). Prints the server's machine `code` (not only the
299
+ * hint) so the journal distinguishes the two, emits the runner-lane activity
300
+ * event `auth.refresh_refused` while a usable bearer remains (so the board sees
301
+ * it — the CLI-lane `auth.refresh_reuse_detected` never covered the runner),
302
+ * then exits EX_CONFIG so the supervisor leaves the unit failed instead of
303
+ * re-presenting the token every minute. There is no safe recovery from the
304
+ * watch loop — the keychain slot must be cleared and `acc-runner login` re-run.
305
+ */
306
+ async function exitOnRefreshRefused(opts) {
307
+ const { cfg, session, provider, error } = opts;
308
+ const rotatorProcess = opts.process ?? "watch";
309
+ const account = provider.boundAccount() ?? sessionAccount();
310
+ const instance = resolveInstance();
311
+ // AC3: the banner + `auth.refresh_refused` breadcrumb (carrying the `process`
312
+ // field) are emitted by the shared helper so watch and the companion can never
313
+ // drift. The client is built lazily, only while a bearer remains.
314
+ await emitRefreshRefused({
315
+ session,
316
+ instance,
317
+ account,
318
+ error,
319
+ process: rotatorProcess,
320
+ makeClient: () => opts.client ?? createRunnerClient(cfg, session.access_token, session.realtime_config),
321
+ withDeadline,
322
+ });
323
+ process.exit(EX_CONFIG);
324
+ }
325
+ /**
326
+ * RUNNER-REFRESH-ROTATION-LOST: a rotated session could not be PROVEN to have
327
+ * landed in the keychain (write threw, or the read-back diverged). The
328
+ * in-memory session was deliberately NOT advanced, so memory still holds the
329
+ * predecessor. Exit EX_CONFIG without restarting rather than run on a token the
330
+ * next start cannot load — the divergence that burned the token family.
331
+ */
332
+ function exitOnKeychainSaveDiverged(err) {
333
+ const instance = resolveInstance();
334
+ process.stderr.write(chalk.red.bold(`\n[acc-runner] CRITICAL: rotated token could not be saved to keychain account "${err.account}".\n`));
335
+ process.stderr.write(chalk.red(`Reason: ${err.reason}\n`));
336
+ process.stderr.write(chalk.red("The in-memory session was NOT advanced; exiting without restart so the supervisor " +
337
+ "does not re-present a half-rotated credential.\n" +
338
+ `Recover: acc-runner login${instance ? ` --instance ${instance}` : ""} ` +
339
+ `(exit ${EX_CONFIG}).\n`));
340
+ process.exit(EX_CONFIG);
290
341
  }
291
342
  // Single source of truth for "this task is new — push it into the runner
292
343
  // queue". Both the Realtime listener and the polling loop go through here.
@@ -1187,6 +1238,21 @@ export function taskSlotsInUse(state) {
1187
1238
  * no tracked tree — the common case, since the guarded runner sweeps its own
1188
1239
  * group on exit; this is the belt-and-braces for an aborted or orphaned run).
1189
1240
  */
1241
+ function defaultReapEmit(state, taskId, verb, payload) {
1242
+ try {
1243
+ void Promise.resolve(state.supabase.rpc("log_activity", {
1244
+ p_verb: verb,
1245
+ p_target_id: taskId,
1246
+ p_target_type: "task",
1247
+ p_payload: payload,
1248
+ })).catch(() => {
1249
+ /* best-effort breadcrumb */
1250
+ });
1251
+ }
1252
+ catch {
1253
+ // Mocked clients and shutdown races can throw before returning a promise.
1254
+ }
1255
+ }
1190
1256
  export function reapTaskProcessTree(state, taskId, opts = {}) {
1191
1257
  const registry = opts.registry ?? processTreeRegistry;
1192
1258
  const details = registry.detailsForTask(taskId);
@@ -1194,21 +1260,7 @@ export function reapTaskProcessTree(state, taskId, opts = {}) {
1194
1260
  if (reaped.length === 0)
1195
1261
  return [];
1196
1262
  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
- });
1263
+ ((verb, payload) => defaultReapEmit(state, taskId, verb, payload));
1212
1264
  emit("runner.orphan_reaped", {
1213
1265
  task_id: taskId,
1214
1266
  runner_id: state.session.runner_id,
@@ -1219,10 +1271,49 @@ export function reapTaskProcessTree(state, taskId, opts = {}) {
1219
1271
  });
1220
1272
  return reaped;
1221
1273
  }
1274
+ /**
1275
+ * RUNNER-REAPER-KILLS-OWN-PREPR-GATE-1: server statuses that mean the task has
1276
+ * LEFT this runner (released, parked, finished) — the only statuses the poll
1277
+ * reaper may act on. A task at `running`, `needs-review` or `changes-requested`
1278
+ * still belongs to the controller that holds it: the agent opens its PR itself
1279
+ * (`gh pr create`) and the webhook flips the row to `needs-review` BEFORE the
1280
+ * runner's pre-PR gate (`pnpm run typecheck|lint|build|test`) has run, so on
1281
+ * 0.47.10 the poll read "not running" and SIGTERMed its own gate on the next
1282
+ * tick — every such task parked `gate_tool_crashed:<gate>` (six tasks in the
1283
+ * first two hours, 2026-10-11). Status alone is therefore
1284
+ * never the signal; ownership (`runner_id`) is.
1285
+ */
1286
+ export const RELEASED_TASK_STATUSES = new Set([
1287
+ "queued",
1288
+ "blocked",
1289
+ "dead_letter",
1290
+ "done",
1291
+ "failed",
1292
+ "cancelled",
1293
+ "paused",
1294
+ ]);
1295
+ /**
1296
+ * Decide whether a tracked task's server row says the task has left this
1297
+ * runner. Pure, so the rule is testable without a process tree:
1298
+ * - a row another runner now holds → released (reassigned / rescued);
1299
+ * - a row at a released/terminal status → released (server sweep, operator
1300
+ * park, archive), whoever it names;
1301
+ * - everything else (`running`, `needs-review`, `changes-requested`, … with
1302
+ * this runner or no runner on it) → still ours, leave the tree alone.
1303
+ */
1304
+ export function serverRowReleasedTask(task, selfRunnerId) {
1305
+ if (!task)
1306
+ return false;
1307
+ if (task.runner_id && task.runner_id !== selfRunnerId)
1308
+ return true;
1309
+ return RELEASED_TASK_STATUSES.has(String(task.status ?? ""));
1310
+ }
1222
1311
  /**
1223
1312
  * An external release, rescue or archive can change the server row while the
1224
1313
  * local test gate is still pending. Poll only tasks with a guarded process;
1225
1314
  * fail open on a read error so a transient connection cannot kill live work.
1315
+ * A row that merely ADVANCED (needs-review after the agent opened the PR) is
1316
+ * not a release — see `serverRowReleasedTask`.
1226
1317
  */
1227
1318
  export async function reapInactiveTaskProcessTrees(state, registry = processTreeRegistry) {
1228
1319
  const reaped = [];
@@ -1240,10 +1331,16 @@ export async function reapInactiveTaskProcessTrees(state, registry = processTree
1240
1331
  if (error || !data)
1241
1332
  continue;
1242
1333
  const task = data.task;
1243
- if (!task || (task.status === "running" && task.runner_id === state.session.runner_id))
1334
+ if (!serverRowReleasedTask(task, state.session.runner_id))
1244
1335
  continue;
1245
1336
  ctrl.cancel();
1246
- if (reapTaskProcessTree(state, taskId, { registry }).length)
1337
+ const emit = (verb, payload) => defaultReapEmit(state, taskId, verb, {
1338
+ ...payload,
1339
+ // Name WHY the poll reaped it so the next incident reads off the board.
1340
+ server_status: task?.status ?? null,
1341
+ server_runner_id: task?.runner_id ?? null,
1342
+ });
1343
+ if (reapTaskProcessTree(state, taskId, { registry, emit }).length)
1247
1344
  reaped.push(taskId);
1248
1345
  }
1249
1346
  catch {
@@ -1530,9 +1627,20 @@ async function doRefresh(state, taskRunnerFactory) {
1530
1627
  return state.refreshing;
1531
1628
  state.refreshing = (async () => {
1532
1629
  try {
1533
- const updated = await refreshAccessToken(state.cfg, state.session);
1534
- state.session = updated;
1535
- await state.tokenProvider.save(updated);
1630
+ // RUNNER-REFRESH-ROTATION-LOST (ROTATED): coordinate across siblings on
1631
+ // the same slot. Under an instance-scoped advisory lock, re-read the
1632
+ // keychain and ADOPT a sibling's already-rotated successor rather than
1633
+ // re-presenting our (now superseded) token — which would trip the
1634
+ // server's reuse detection and revoke the whole family. Only when the
1635
+ // slot still matches ours do we call /api/runner/refresh. The verified
1636
+ // save (PROVE the successor landed before advancing memory) still gates
1637
+ // the in-memory advance; a save throw is handled below.
1638
+ const outcome = await coordinatedRefresh({
1639
+ cfg: state.cfg,
1640
+ session: state.session,
1641
+ provider: state.tokenProvider,
1642
+ });
1643
+ state.session = outcome.session;
1536
1644
  try {
1537
1645
  await state.supabase.removeChannel(state.channel);
1538
1646
  }
@@ -1549,8 +1657,23 @@ async function doRefresh(state, taskRunnerFactory) {
1549
1657
  return true;
1550
1658
  }
1551
1659
  catch (err) {
1552
- if (err instanceof RefreshReuseDetectedError)
1553
- failOnReuse(err);
1660
+ // A terminal refusal (reuse / expired) and an unprovable save are both
1661
+ // fatal: re-presenting on restart only burns more of the chain. Exit
1662
+ // EX_CONFIG so the supervisor leaves the unit failed. state.session was
1663
+ // NOT advanced past the save, so a save failure leaves memory on the
1664
+ // predecessor (never a silent memory↔keychain divergence).
1665
+ if (isTerminalRefreshError(err)) {
1666
+ await exitOnRefreshRefused({
1667
+ cfg: state.cfg,
1668
+ session: state.session,
1669
+ provider: state.tokenProvider,
1670
+ error: err,
1671
+ process: "watch",
1672
+ client: state.supabase,
1673
+ });
1674
+ }
1675
+ if (err instanceof KeychainSaveError)
1676
+ exitOnKeychainSaveDiverged(err);
1554
1677
  process.stderr.write(`[acc-runner] refresh failed: ${err.message}\n`);
1555
1678
  return false;
1556
1679
  }
@@ -1772,12 +1895,32 @@ export async function watchCommand(options = {}) {
1772
1895
  // normally exits it long before then).
1773
1896
  if (tokenProvider.canRefresh() && expiresSoon(session)) {
1774
1897
  try {
1775
- session = await refreshAccessToken(cfg, session);
1776
- await tokenProvider.save(session);
1898
+ // RUNNER-REFRESH-ROTATION-LOST(-2): coordinate the startup refresh across
1899
+ // siblings on the same slot — adopt a sibling's already-rotated successor
1900
+ // under the instance-scoped lock rather than re-presenting our token, and
1901
+ // PROVE the save before advancing `session` (so it stays on the
1902
+ // predecessor, still a usable bearer for the breadcrumb, if a save we
1903
+ // performed cannot be proven).
1904
+ const outcome = await coordinatedRefresh({ cfg, session, provider: tokenProvider });
1905
+ session = outcome.session;
1777
1906
  }
1778
1907
  catch (err) {
1779
- if (err instanceof RefreshReuseDetectedError)
1780
- failOnReuse(err);
1908
+ // This is the loop the staging-smoke host was stuck in: every restart
1909
+ // re-presented an already-rotated token and the server revoked the chain.
1910
+ // A terminal refusal now exits EX_CONFIG (no restart) and emits the board
1911
+ // breadcrumb; an unprovable save does the same; only a transient (network)
1912
+ // failure keeps the old restartable exit(1).
1913
+ if (isTerminalRefreshError(err)) {
1914
+ await exitOnRefreshRefused({
1915
+ cfg,
1916
+ session,
1917
+ provider: tokenProvider,
1918
+ error: err,
1919
+ process: "watch",
1920
+ });
1921
+ }
1922
+ if (err instanceof KeychainSaveError)
1923
+ exitOnKeychainSaveDiverged(err);
1781
1924
  process.stderr.write(`Refresh failed; run \`acc-runner login\`. (${err.message})\n`);
1782
1925
  process.exit(1);
1783
1926
  }