@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.
- package/dist/build-info.generated.d.ts +1 -1
- package/dist/build-info.generated.js +2 -2
- package/dist/companion-autostart.d.ts.map +1 -1
- package/dist/companion-autostart.js +5 -0
- package/dist/companion-autostart.js.map +1 -1
- package/dist/companion-run.d.ts.map +1 -1
- package/dist/companion-run.js +46 -18
- package/dist/companion-run.js.map +1 -1
- package/dist/doctor.d.ts +20 -0
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +187 -3
- package/dist/doctor.js.map +1 -1
- package/dist/keychain.d.ts +31 -0
- package/dist/keychain.d.ts.map +1 -1
- package/dist/keychain.js +70 -1
- package/dist/keychain.js.map +1 -1
- package/dist/program.d.ts.map +1 -1
- package/dist/program.js +23 -1
- package/dist/program.js.map +1 -1
- package/dist/runtime/auth-lifecycle.d.ts +22 -1
- package/dist/runtime/auth-lifecycle.d.ts.map +1 -1
- package/dist/runtime/auth-lifecycle.js +28 -1
- package/dist/runtime/auth-lifecycle.js.map +1 -1
- package/dist/runtime/refresh-lock.d.ts +232 -0
- package/dist/runtime/refresh-lock.d.ts.map +1 -0
- package/dist/runtime/refresh-lock.js +609 -0
- package/dist/runtime/refresh-lock.js.map +1 -0
- package/dist/supervisor.d.ts +46 -0
- package/dist/supervisor.d.ts.map +1 -1
- package/dist/supervisor.js +65 -0
- package/dist/supervisor.js.map +1 -1
- package/dist/task-runner.d.ts.map +1 -1
- package/dist/task-runner.js +16 -0
- package/dist/task-runner.js.map +1 -1
- package/dist/token-provider.d.ts +12 -0
- package/dist/token-provider.d.ts.map +1 -1
- package/dist/token-provider.js +23 -3
- package/dist/token-provider.js.map +1 -1
- package/dist/watch.d.ts +31 -13
- package/dist/watch.d.ts.map +1 -1
- package/dist/watch.js +180 -37
- package/dist/watch.js.map +1 -1
- package/package.json +1 -1
- package/scripts/setup-dedicated-runner-linux.sh +17 -35
package/dist/token-provider.js
CHANGED
|
@@ -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,
|
|
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
|
-
|
|
112
|
+
const account = sessionAccount();
|
|
113
|
+
this.bound = account;
|
|
114
|
+
return loadSessionFromAccount(account);
|
|
108
115
|
}
|
|
109
116
|
save(session) {
|
|
110
|
-
|
|
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":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgEG;AACH,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EACL,YAAY,IAAI,aAAa,EAC7B,
|
|
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-
|
|
791
|
-
*
|
|
792
|
-
*
|
|
793
|
-
*
|
|
794
|
-
*
|
|
795
|
-
*
|
|
796
|
-
*
|
|
797
|
-
*
|
|
798
|
-
*
|
|
799
|
-
*
|
|
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
|
|
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
|
/**
|
package/dist/watch.d.ts.map
CHANGED
|
@@ -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,
|
|
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
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
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 (!
|
|
1334
|
+
if (!serverRowReleasedTask(task, state.session.runner_id))
|
|
1244
1335
|
continue;
|
|
1245
1336
|
ctrl.cancel();
|
|
1246
|
-
|
|
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
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
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
|
-
|
|
1553
|
-
|
|
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
|
-
|
|
1776
|
-
|
|
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
|
-
|
|
1780
|
-
|
|
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
|
}
|