@tokenfactory/acc-runner 0.47.8 → 0.47.10

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 +183 -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 +16 -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 +32 -0
  29. package/dist/supervisor.d.ts.map +1 -1
  30. package/dist/supervisor.js +56 -0
  31. package/dist/supervisor.js.map +1 -1
  32. package/dist/token-provider.d.ts +12 -0
  33. package/dist/token-provider.d.ts.map +1 -1
  34. package/dist/token-provider.js +23 -3
  35. package/dist/token-provider.js.map +1 -1
  36. package/dist/user-cli/tasks.d.ts +3 -0
  37. package/dist/user-cli/tasks.d.ts.map +1 -1
  38. package/dist/user-cli/tasks.js +3 -1
  39. package/dist/user-cli/tasks.js.map +1 -1
  40. package/dist/watch.d.ts +4 -2
  41. package/dist/watch.d.ts.map +1 -1
  42. package/dist/watch.js +117 -20
  43. package/dist/watch.js.map +1 -1
  44. package/package.json +1 -1
@@ -12,4 +12,36 @@ export declare function systemdUnitName(instance: string | null): string;
12
12
  export declare function systemdUnitPath(home: string, instance: string | null): string;
13
13
  /** Unit name for the instance THIS process resolves (`--instance` / env). */
14
14
  export declare function activeSystemdUnitName(env?: NodeJS.ProcessEnv): string;
15
+ /**
16
+ * RUNNER-REFRESH-ROTATION-LOST: the exit status a terminal auth refusal uses
17
+ * (EX_CONFIG, mirrored from watch.ts's EX_CONFIG). The unit template below sets
18
+ * `RestartPreventExitStatus=<this>` so that when a start exits this status under
19
+ * `Restart=always`, systemd leaves the unit FAILED instead of re-presenting the
20
+ * same (already-rotated / expired) refresh token every `RestartSec`. Without it
21
+ * a single bad credential becomes a per-minute family-burning loop — the
22
+ * staging-smoke incident (ledger 61, second occurrence).
23
+ */
24
+ export declare const RESTART_PREVENT_EXIT_STATUS: 78;
25
+ /** How long the installed unit waits before a (non-prevented) restart. */
26
+ export declare const SYSTEMD_RESTART_SEC: "60s";
27
+ export interface SystemdUnitOptions {
28
+ /** Named instance, or null for the unnamed install. */
29
+ instance?: string | null;
30
+ /** Absolute path to the acc-runner launcher (ExecStart). */
31
+ accRunnerPath?: string;
32
+ }
33
+ /**
34
+ * RUNNER-REFRESH-ROTATION-LOST: the CANONICAL systemd --user unit template.
35
+ * The `RestartPreventExitStatus=78` directive it carries is the fix for the
36
+ * restart-loop half of the incident; `tests/linux-supervisor.test.ts` pins its
37
+ * shape. Pure and fs-free like the rest of this module — it renders text, it
38
+ * does not write it.
39
+ *
40
+ * NOTE: the bash installer (`scripts/setup-dedicated-runner-linux.sh`) is the
41
+ * process that actually writes the unit on a host and is outside this task's
42
+ * allowed scope; adopting this renderer there (so there is exactly one unit
43
+ * template) is a tracked follow-up. Until then, `acc-runner doctor` flags an
44
+ * installed unit that lacks the directive and names the re-install fix.
45
+ */
46
+ export declare function renderSystemdUnit(opts?: SystemdUnitOptions): string;
15
47
  //# sourceMappingURL=supervisor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"supervisor.d.ts","sourceRoot":"","sources":["../src/supervisor.ts"],"names":[],"mappings":"AAgCA,qFAAqF;AACrF,eAAO,MAAM,iBAAiB,EAAG,YAAqB,CAAC;AAEvD,wEAAwE;AACxE,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAE/D;AAED,2DAA2D;AAC3D,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAE7E;AAED,6EAA6E;AAC7E,wBAAgB,qBAAqB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAElF"}
1
+ {"version":3,"file":"supervisor.d.ts","sourceRoot":"","sources":["../src/supervisor.ts"],"names":[],"mappings":"AAgCA,qFAAqF;AACrF,eAAO,MAAM,iBAAiB,EAAG,YAAqB,CAAC;AAEvD,wEAAwE;AACxE,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAE/D;AAED,2DAA2D;AAC3D,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAE7E;AAED,6EAA6E;AAC7E,wBAAgB,qBAAqB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAElF;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,2BAA2B,EAAG,EAAW,CAAC;AAEvD,0EAA0E;AAC1E,eAAO,MAAM,mBAAmB,EAAG,KAAc,CAAC;AAElD,MAAM,WAAW,kBAAkB;IACjC,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,4DAA4D;IAC5D,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,GAAE,kBAAuB,GAAG,MAAM,CA8BvE"}
@@ -51,4 +51,60 @@ export function systemdUnitPath(home, instance) {
51
51
  export function activeSystemdUnitName(env = process.env) {
52
52
  return systemdUnitName(resolveInstance(env));
53
53
  }
54
+ /**
55
+ * RUNNER-REFRESH-ROTATION-LOST: the exit status a terminal auth refusal uses
56
+ * (EX_CONFIG, mirrored from watch.ts's EX_CONFIG). The unit template below sets
57
+ * `RestartPreventExitStatus=<this>` so that when a start exits this status under
58
+ * `Restart=always`, systemd leaves the unit FAILED instead of re-presenting the
59
+ * same (already-rotated / expired) refresh token every `RestartSec`. Without it
60
+ * a single bad credential becomes a per-minute family-burning loop — the
61
+ * staging-smoke incident (ledger 61, second occurrence).
62
+ */
63
+ export const RESTART_PREVENT_EXIT_STATUS = 78;
64
+ /** How long the installed unit waits before a (non-prevented) restart. */
65
+ export const SYSTEMD_RESTART_SEC = "60s";
66
+ /**
67
+ * RUNNER-REFRESH-ROTATION-LOST: the CANONICAL systemd --user unit template.
68
+ * The `RestartPreventExitStatus=78` directive it carries is the fix for the
69
+ * restart-loop half of the incident; `tests/linux-supervisor.test.ts` pins its
70
+ * shape. Pure and fs-free like the rest of this module — it renders text, it
71
+ * does not write it.
72
+ *
73
+ * NOTE: the bash installer (`scripts/setup-dedicated-runner-linux.sh`) is the
74
+ * process that actually writes the unit on a host and is outside this task's
75
+ * allowed scope; adopting this renderer there (so there is exactly one unit
76
+ * template) is a tracked follow-up. Until then, `acc-runner doctor` flags an
77
+ * installed unit that lacks the directive and names the re-install fix.
78
+ */
79
+ export function renderSystemdUnit(opts = {}) {
80
+ const instance = opts.instance ?? null;
81
+ const accRunnerPath = opts.accRunnerPath ?? "acc-runner";
82
+ const watchArgs = instance ? `watch --instance ${instance}` : "watch";
83
+ const envLines = [
84
+ "Environment=ACC_RUNNER_DEDICATED=1",
85
+ ...(instance ? [`Environment=ACC_RUNNER_INSTANCE=${instance}`] : []),
86
+ ].join("\n");
87
+ return [
88
+ "[Unit]",
89
+ `Description=ACC runner (watch loop)${instance ? ` — instance ${instance}` : ""}`,
90
+ "Documentation=https://github.com/tokenfactory-pvt-ltd/agent-control-center",
91
+ "After=network-online.target",
92
+ "Wants=network-online.target",
93
+ "",
94
+ "[Service]",
95
+ "Type=simple",
96
+ `ExecStart=${accRunnerPath} ${watchArgs}`,
97
+ "Restart=always",
98
+ `RestartSec=${SYSTEMD_RESTART_SEC}`,
99
+ // The fix: a terminal auth refusal exits 78; do not restart that.
100
+ `RestartPreventExitStatus=${RESTART_PREVENT_EXIT_STATUS}`,
101
+ "StandardOutput=journal",
102
+ "StandardError=journal",
103
+ envLines,
104
+ "",
105
+ "[Install]",
106
+ "WantedBy=default.target",
107
+ "",
108
+ ].join("\n");
109
+ }
54
110
  //# sourceMappingURL=supervisor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"supervisor.js","sourceRoot":"","sources":["../src/supervisor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,qFAAqF;AACrF,MAAM,CAAC,MAAM,iBAAiB,GAAG,YAAqB,CAAC;AAEvD,wEAAwE;AACxE,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AACvD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,QAAuB;IACrD,OAAO,QAAQ,CAAC,CAAC,CAAC,GAAG,iBAAiB,IAAI,QAAQ,UAAU,CAAC,CAAC,CAAC,GAAG,iBAAiB,UAAU,CAAC;AAChG,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,QAAuB;IACnE,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,qBAAqB,CAAC,MAAyB,OAAO,CAAC,GAAG;IACxE,OAAO,eAAe,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/C,CAAC"}
1
+ {"version":3,"file":"supervisor.js","sourceRoot":"","sources":["../src/supervisor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD,qFAAqF;AACrF,MAAM,CAAC,MAAM,iBAAiB,GAAG,YAAqB,CAAC;AAEvD,wEAAwE;AACxE,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AACvD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,QAAuB;IACrD,OAAO,QAAQ,CAAC,CAAC,CAAC,GAAG,iBAAiB,IAAI,QAAQ,UAAU,CAAC,CAAC,CAAC,GAAG,iBAAiB,UAAU,CAAC;AAChG,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,eAAe,CAAC,IAAY,EAAE,QAAuB;IACnE,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,qBAAqB,CAAC,MAAyB,OAAO,CAAC,GAAG;IACxE,OAAO,eAAe,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,EAAW,CAAC;AAEvD,0EAA0E;AAC1E,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAc,CAAC;AASlD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAA2B,EAAE;IAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC;IACvC,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,YAAY,CAAC;IACzD,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,oBAAoB,QAAQ,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;IACtE,MAAM,QAAQ,GAAG;QACf,oCAAoC;QACpC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,mCAAmC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;KACrE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACb,OAAO;QACL,QAAQ;QACR,sCAAsC,QAAQ,CAAC,CAAC,CAAC,eAAe,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;QACjF,4EAA4E;QAC5E,6BAA6B;QAC7B,6BAA6B;QAC7B,EAAE;QACF,WAAW;QACX,aAAa;QACb,aAAa,aAAa,IAAI,SAAS,EAAE;QACzC,gBAAgB;QAChB,cAAc,mBAAmB,EAAE;QACnC,kEAAkE;QAClE,4BAA4B,2BAA2B,EAAE;QACzD,wBAAwB;QACxB,uBAAuB;QACvB,QAAQ;QACR,EAAE;QACF,WAAW;QACX,yBAAyB;QACzB,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
@@ -20,6 +20,14 @@ export interface TokenProvider {
20
20
  failover(reason?: string): Promise<StoredSession | null>;
21
21
  /** Number of credentials configured (1 for keychain / single-token env). */
22
22
  fleetSize(): number;
23
+ /**
24
+ * RUNNER-REFRESH-ROTATION-LOST: the keychain account this provider loaded
25
+ * from and will save to (captured at load, never re-resolved). The keychain
26
+ * provider returns `"default"` / `"instance:<name>"`; the env provider has no
27
+ * keychain slot and returns null. Surfaced for the terminal stderr and the
28
+ * `auth.refresh_refused` activity payload, never used to pick a DIFFERENT slot.
29
+ */
30
+ boundAccount(): string | null;
23
31
  }
24
32
  /** Prefix marking a runner as ephemeral to the autoscale sweep. */
25
33
  export declare const EPHEMERAL_RUNNER_PREFIX = "acc-eph-";
@@ -30,6 +38,9 @@ interface JwtClaims {
30
38
  sub?: string;
31
39
  email?: string;
32
40
  exp?: number;
41
+ /** RUNNER-REFRESH-ROTATION-LOST: issued-at, used by `doctor` to report the
42
+ * credential's age from the keychain alone. Additive/optional. */
43
+ iat?: number;
33
44
  }
34
45
  /**
35
46
  * Decode the payload segment of a JWT without verifying the signature.
@@ -70,6 +81,7 @@ export declare class EnvTokenProvider implements TokenProvider {
70
81
  */
71
82
  failover(_reason?: string): Promise<StoredSession | null>;
72
83
  fleetSize(): number;
84
+ boundAccount(): string | null;
73
85
  }
74
86
  export declare function resolveTokenMode(env?: NodeJS.ProcessEnv): TokenMode;
75
87
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"token-provider.d.ts","sourceRoot":"","sources":["../src/token-provider.ts"],"names":[],"mappings":"AAuEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,KAAK,CAAC;AAE3C,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB;kEAC8D;IAC9D,UAAU,IAAI,OAAO,CAAC;IACtB,IAAI,IAAI,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IACtC,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1B;;;;;;;;OAQG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IACzD,4EAA4E;IAC5E,SAAS,IAAI,MAAM,CAAC;CACrB;AAED,mEAAmE;AACnE,eAAO,MAAM,uBAAuB,aAAa,CAAC;AAElD,+DAA+D;AAC/D,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,UAAU,SAAS;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAiB7D;AA2BD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,CAMhE;AAeD,qBAAa,gBAAiB,YAAW,aAAa;IACpD,QAAQ,CAAC,IAAI,EAAG,KAAK,CAAU;IAC/B,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,SAAS,CAAuB;IAMxC,OAAO,CAAC,KAAK,CAAyB;IACtC,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,QAAQ,CAAM;gBAEV,GAAG,GAAE,MAAM,CAAC,UAAwB;IAiChD,kFAAkF;IAClF,OAAO,CAAC,qBAAqB;IAiB7B,UAAU,IAAI,OAAO;IAIf,IAAI,IAAI,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAKrC,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAc3C,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC;IAM/B;;;;;;;;OAQG;IACG,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAY/D,SAAS,IAAI,MAAM;CAGpB;AAED,wBAAgB,gBAAgB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,SAAS,CAOhF;AAID;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,CAOhD;AAED,6DAA6D;AAC7D,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,GAAG,IAAI,CAEvE"}
1
+ {"version":3,"file":"token-provider.d.ts","sourceRoot":"","sources":["../src/token-provider.ts"],"names":[],"mappings":"AAwEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,KAAK,CAAC;AAE3C,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB;kEAC8D;IAC9D,UAAU,IAAI,OAAO,CAAC;IACtB,IAAI,IAAI,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IACtC,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1B;;;;;;;;OAQG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IACzD,4EAA4E;IAC5E,SAAS,IAAI,MAAM,CAAC;IACpB;;;;;;OAMG;IACH,YAAY,IAAI,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED,mEAAmE;AACnE,eAAO,MAAM,uBAAuB,aAAa,CAAC;AAElD,+DAA+D;AAC/D,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,UAAU,SAAS;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;uEACmE;IACnE,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAkB7D;AAyCD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,CAMhE;AAeD,qBAAa,gBAAiB,YAAW,aAAa;IACpD,QAAQ,CAAC,IAAI,EAAG,KAAK,CAAU;IAC/B,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,SAAS,CAAuB;IAMxC,OAAO,CAAC,KAAK,CAAyB;IACtC,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,QAAQ,CAAM;gBAEV,GAAG,GAAE,MAAM,CAAC,UAAwB;IAiChD,kFAAkF;IAClF,OAAO,CAAC,qBAAqB;IAiB7B,UAAU,IAAI,OAAO;IAIf,IAAI,IAAI,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAKrC,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAc3C,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC;IAM/B;;;;;;;;OAQG;IACG,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAY/D,SAAS,IAAI,MAAM;IAMnB,YAAY,IAAI,MAAM,GAAG,IAAI;CAG9B;AAED,wBAAgB,gBAAgB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,SAAS,CAOhF;AAID;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,CAOhD;AAED,6DAA6D;AAC7D,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,GAAG,IAAI,CAEvE"}
@@ -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":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgEG;AACH,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EACL,YAAY,IAAI,aAAa,EAC7B,sBAAsB,EACtB,4BAA4B,EAC5B,cAAc,GACf,MAAM,eAAe,CAAC;AAmCvB,mEAAmE;AACnE,MAAM,CAAC,MAAM,uBAAuB,GAAG,UAAU,CAAC;AAElD,+DAA+D;AAC/D,MAAM,UAAU,qBAAqB;IACnC,OAAO,GAAG,uBAAuB,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,EAAU;IAC5C,OAAO,EAAE,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC;AAChD,CAAC;AAWD;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACpC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CACzB,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,EAC9C,QAAQ,CACT,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACnB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAA4B,CAAC;QAC9D,OAAO;YACL,GAAG,EAAE,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS;YAC5D,KAAK,EAAE,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YAClE,GAAG,EAAE,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS;YAC5D,GAAG,EAAE,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS;SAC7D,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,qBAAqB;IAChB,IAAI,GAAG,UAAmB,CAAC;IACpC,0EAA0E;IAC1E,8EAA8E;IAC9E,oEAAoE;IAC5D,KAAK,GAAkB,IAAI,CAAC;IACpC,UAAU;QACR,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI;QACF,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;QACrB,OAAO,sBAAsB,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IACD,IAAI,CAAC,OAAsB;QACzB,4EAA4E;QAC5E,4EAA4E;QAC5E,sEAAsE;QACtE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,IAAI,cAAc,EAAE,CAAC;QAC/C,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;QACrB,OAAO,4BAA4B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;IACD,YAAY;QACV,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IACD,KAAK;QACH,OAAO,aAAa,EAAE,CAAC;IACzB,CAAC;IACD,uEAAuE;IACvE,0EAA0E;IAC1E,kDAAkD;IAClD,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IACD,SAAS;QACP,OAAO,CAAC,CAAC;IACX,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,GAAuB;IACpD,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IACpB,OAAO,GAAG;SACP,KAAK,CAAC,QAAQ,CAAC;SACf,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,OAAO,CAAC,CAAC;AACrB,CAAC;AASD,4EAA4E;AAC5E,SAAS,iBAAiB,CAAC,MAAiB,EAAE,MAAc,IAAI,CAAC,GAAG,EAAE;IACpE,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACjD,OAAO,MAAM,CAAC,GAAG,GAAG,IAAI,IAAI,GAAG,CAAC;AAClC,CAAC;AAED,MAAM,OAAO,gBAAgB;IAClB,IAAI,GAAG,KAAc,CAAC;IACvB,OAAO,GAAyB,IAAI,CAAC;IACrC,SAAS,GAAkB,IAAI,CAAC;IACxC,qEAAqE;IACrE,yEAAyE;IACzE,uEAAuE;IACvE,sEAAsE;IACtE,mCAAmC;IAC3B,KAAK,GAAsB,EAAE,CAAC;IAC9B,KAAK,GAAG,CAAC,CAAC;IACV,QAAQ,GAAG,EAAE,CAAC;IAEtB,YAAY,MAAyB,OAAO,CAAC,GAAG;QAC9C,MAAM,OAAO,GAAG,GAAG,CAAC,uBAAuB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC1D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,SAAS;gBACZ,sEAAsE,CAAC;YACzE,OAAO;QACT,CAAC;QACD,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,GAAG,cAAc,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC,CAAC;QACzF,MAAM,aAAa,GAAG;YACpB,GAAG,CAAC,wBAAwB,EAAE,IAAI,EAAE,IAAI,EAAE;YAC1C,GAAG,cAAc,CAAC,GAAG,CAAC,kCAAkC,CAAC;SAC1D,CAAC;QACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;YAChD,uEAAuE;YACvE,uEAAuE;YACvE,wCAAwC;YACxC,IAAI,CAAC,MAAM,EAAE,GAAG;gBAAE,SAAS;YAC3B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBACd,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;gBAC5B,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE;gBAC5C,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE;aACvC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,SAAS;gBACZ,yIAAyI,CAAC;YAC5I,OAAO;QACT,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,qBAAqB,EAAE,CAAC;QACrE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,kFAAkF;IAC1E,qBAAqB,CAAC,IAAqB;QACjD,OAAO;YACL,YAAY,EAAE,IAAI,CAAC,WAAW;YAC9B,qEAAqE;YACrE,oEAAoE;YACpE,aAAa,EAAE,IAAI,CAAC,YAAY;YAChC,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG;gBAChC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;gBAChD,CAAC,CAAC,8DAA8D;oBAC9D,6CAA6C;oBAC7C,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;YAClE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI;YAChC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG;YACxB,SAAS,EAAE,IAAI,CAAC,QAAQ;SACzB,CAAC;IACJ,CAAC;IAED,UAAU;QACR,OAAO,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAsB;QAC/B,yEAAyE;QACzE,uEAAuE;QACvE,6BAA6B;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;YAC1C,MAAM,CAAC,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;YAC5C,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YACtD,IAAI,OAAO,EAAE,GAAG;gBAAE,MAAM,CAAC,MAAM,GAAG,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;QACrE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,QAAQ,CAAC,OAAgB;QAC7B,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAC3D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,KAAK,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;YACjE,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC;gBAAE,SAAS;YAC9D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YAC5D,OAAO,IAAI,CAAC,OAAO,CAAC;QACtB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;IAED,2EAA2E;IAC3E,qEAAqE;IACrE,YAAY;QACV,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAyB,OAAO,CAAC,GAAG;IACnE,MAAM,GAAG,GAAG,GAAG,CAAC,qBAAqB,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC5D,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,UAAU;QAAE,OAAO,UAAU,CAAC;IAClD,IAAI,GAAG,KAAK,KAAK;QAAE,OAAO,KAAK,CAAC;IAChC,MAAM,IAAI,KAAK,CACb,yBAAyB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,kDAAkD,CAC/F,CAAC;AACJ,CAAC;AAED,IAAI,cAAc,GAAyB,IAAI,CAAC;AAEhD;;;;GAIG;AACH,MAAM,UAAU,gBAAgB;IAC9B,IAAI,cAAc;QAAE,OAAO,cAAc,CAAC;IAC1C,cAAc;QACZ,gBAAgB,EAAE,KAAK,KAAK;YAC1B,CAAC,CAAC,IAAI,gBAAgB,EAAE;YACxB,CAAC,CAAC,IAAI,qBAAqB,EAAE,CAAC;IAClC,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,6DAA6D;AAC7D,MAAM,UAAU,kBAAkB,CAAC,QAA8B;IAC/D,cAAc,GAAG,QAAQ,CAAC;AAC5B,CAAC"}
@@ -21,6 +21,9 @@ interface TaskRow {
21
21
  updated_at: string | null;
22
22
  [key: string]: unknown;
23
23
  }
24
+ /** Statuses in which runner_id means a runner currently owns the row. Mirrors
25
+ * IN_FLIGHT_STATUSES in src/pages/tasks/executionOwner.ts (tests assert equal). */
26
+ export declare const IN_FLIGHT: Set<string>;
24
27
  /** 1..100, defaulting to 25 — the same clamp the MCP read tools use. */
25
28
  export declare function clampLimit(raw: string | number | undefined, fallback?: number): number;
26
29
  /** Colour a status the way the board does: terminal states cool, active states warm. */
@@ -1 +1 @@
1
- {"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/user-cli/tasks.ts"],"names":[],"mappings":"AAWA,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAM3D,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,UAAU,OAAO;IACf,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAID,wEAAwE;AACxE,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EAAE,QAAQ,SAAK,GAAG,MAAM,CAIlF;AAED,wFAAwF;AACxF,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAczE;AAED,wBAAgB,cAAc,CAC5B,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,GAAG,WAAW,GAAG,UAAU,GAAG,YAAY,CAAC,GACrE,MAAM,GAAG,IAAI,CAWf;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,CAUxD;AAED,wBAAsB,eAAe,CACnC,IAAI,GAAE,eAAoB,EAC1B,IAAI,GAAE,WAAgB,GACrB,OAAO,CAAC,IAAI,CAAC,CA0Bf;AAsBD,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,IAAI,GAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAO,EAC7B,IAAI,GAAE,WAAgB,GACrB,OAAO,CAAC,IAAI,CAAC,CAoCf;AAED,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,MAAM,EACd,IAAI,GAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAO,EAC7B,IAAI,GAAE,WAAgB,GACrB,OAAO,CAAC,IAAI,CAAC,CAwDf"}
1
+ {"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/user-cli/tasks.ts"],"names":[],"mappings":"AAWA,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAM3D,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,UAAU,OAAO;IACf,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;oFACoF;AACpF,eAAO,MAAM,SAAS,aAAkF,CAAC;AAEzG,wEAAwE;AACxE,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EAAE,QAAQ,SAAK,GAAG,MAAM,CAIlF;AAED,wFAAwF;AACxF,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAczE;AAED,wBAAgB,cAAc,CAC5B,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,GAAG,WAAW,GAAG,UAAU,GAAG,YAAY,CAAC,GACrE,MAAM,GAAG,IAAI,CAWf;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,CAUxD;AAED,wBAAsB,eAAe,CACnC,IAAI,GAAE,eAAoB,EAC1B,IAAI,GAAE,WAAgB,GACrB,OAAO,CAAC,IAAI,CAAC,CA0Bf;AAsBD,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,IAAI,GAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAO,EAC7B,IAAI,GAAE,WAAgB,GACrB,OAAO,CAAC,IAAI,CAAC,CAoCf;AAED,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,MAAM,EACd,IAAI,GAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAO,EAC7B,IAAI,GAAE,WAAgB,GACrB,OAAO,CAAC,IAAI,CAAC,CAwDf"}
@@ -12,7 +12,9 @@ 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
14
  const LIST_COLUMNS = "id, title, status, priority, risk, repo, branch, pr_number, agent_id, runner_id, executor, started_at, updated_at";
15
- const IN_FLIGHT = new Set(["claimed", "running", "needs-review", "changes-requested", "merging"]);
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"]);
16
18
  /** 1..100, defaulting to 25 — the same clamp the MCP read tools use. */
17
19
  export function clampLimit(raw, fallback = 25) {
18
20
  const n = typeof raw === "string" ? Number.parseInt(raw, 10) : raw;
@@ -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
@@ -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. */
@@ -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.
@@ -1530,9 +1581,20 @@ async function doRefresh(state, taskRunnerFactory) {
1530
1581
  return state.refreshing;
1531
1582
  state.refreshing = (async () => {
1532
1583
  try {
1533
- const updated = await refreshAccessToken(state.cfg, state.session);
1534
- state.session = updated;
1535
- await state.tokenProvider.save(updated);
1584
+ // RUNNER-REFRESH-ROTATION-LOST (ROTATED): coordinate across siblings on
1585
+ // the same slot. Under an instance-scoped advisory lock, re-read the
1586
+ // keychain and ADOPT a sibling's already-rotated successor rather than
1587
+ // re-presenting our (now superseded) token — which would trip the
1588
+ // server's reuse detection and revoke the whole family. Only when the
1589
+ // slot still matches ours do we call /api/runner/refresh. The verified
1590
+ // save (PROVE the successor landed before advancing memory) still gates
1591
+ // the in-memory advance; a save throw is handled below.
1592
+ const outcome = await coordinatedRefresh({
1593
+ cfg: state.cfg,
1594
+ session: state.session,
1595
+ provider: state.tokenProvider,
1596
+ });
1597
+ state.session = outcome.session;
1536
1598
  try {
1537
1599
  await state.supabase.removeChannel(state.channel);
1538
1600
  }
@@ -1549,8 +1611,23 @@ async function doRefresh(state, taskRunnerFactory) {
1549
1611
  return true;
1550
1612
  }
1551
1613
  catch (err) {
1552
- if (err instanceof RefreshReuseDetectedError)
1553
- failOnReuse(err);
1614
+ // A terminal refusal (reuse / expired) and an unprovable save are both
1615
+ // fatal: re-presenting on restart only burns more of the chain. Exit
1616
+ // EX_CONFIG so the supervisor leaves the unit failed. state.session was
1617
+ // NOT advanced past the save, so a save failure leaves memory on the
1618
+ // predecessor (never a silent memory↔keychain divergence).
1619
+ if (isTerminalRefreshError(err)) {
1620
+ await exitOnRefreshRefused({
1621
+ cfg: state.cfg,
1622
+ session: state.session,
1623
+ provider: state.tokenProvider,
1624
+ error: err,
1625
+ process: "watch",
1626
+ client: state.supabase,
1627
+ });
1628
+ }
1629
+ if (err instanceof KeychainSaveError)
1630
+ exitOnKeychainSaveDiverged(err);
1554
1631
  process.stderr.write(`[acc-runner] refresh failed: ${err.message}\n`);
1555
1632
  return false;
1556
1633
  }
@@ -1772,12 +1849,32 @@ export async function watchCommand(options = {}) {
1772
1849
  // normally exits it long before then).
1773
1850
  if (tokenProvider.canRefresh() && expiresSoon(session)) {
1774
1851
  try {
1775
- session = await refreshAccessToken(cfg, session);
1776
- await tokenProvider.save(session);
1852
+ // RUNNER-REFRESH-ROTATION-LOST(-2): coordinate the startup refresh across
1853
+ // siblings on the same slot — adopt a sibling's already-rotated successor
1854
+ // under the instance-scoped lock rather than re-presenting our token, and
1855
+ // PROVE the save before advancing `session` (so it stays on the
1856
+ // predecessor, still a usable bearer for the breadcrumb, if a save we
1857
+ // performed cannot be proven).
1858
+ const outcome = await coordinatedRefresh({ cfg, session, provider: tokenProvider });
1859
+ session = outcome.session;
1777
1860
  }
1778
1861
  catch (err) {
1779
- if (err instanceof RefreshReuseDetectedError)
1780
- failOnReuse(err);
1862
+ // This is the loop the staging-smoke host was stuck in: every restart
1863
+ // re-presented an already-rotated token and the server revoked the chain.
1864
+ // A terminal refusal now exits EX_CONFIG (no restart) and emits the board
1865
+ // breadcrumb; an unprovable save does the same; only a transient (network)
1866
+ // failure keeps the old restartable exit(1).
1867
+ if (isTerminalRefreshError(err)) {
1868
+ await exitOnRefreshRefused({
1869
+ cfg,
1870
+ session,
1871
+ provider: tokenProvider,
1872
+ error: err,
1873
+ process: "watch",
1874
+ });
1875
+ }
1876
+ if (err instanceof KeychainSaveError)
1877
+ exitOnKeychainSaveDiverged(err);
1781
1878
  process.stderr.write(`Refresh failed; run \`acc-runner login\`. (${err.message})\n`);
1782
1879
  process.exit(1);
1783
1880
  }