@tokenfactory/acc-runner 0.43.0 → 0.44.1
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/README.md +75 -3
- package/dist/companion-run.d.ts.map +1 -1
- package/dist/companion-run.js +20 -0
- package/dist/companion-run.js.map +1 -1
- package/dist/config.d.ts +72 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +117 -3
- package/dist/config.js.map +1 -1
- package/dist/cost-pricing.d.ts +45 -0
- package/dist/cost-pricing.d.ts.map +1 -1
- package/dist/cost-pricing.js +57 -0
- package/dist/cost-pricing.js.map +1 -1
- package/dist/doctor.d.ts +4 -0
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +32 -3
- package/dist/doctor.js.map +1 -1
- package/dist/engines/registry.d.ts +17 -6
- package/dist/engines/registry.d.ts.map +1 -1
- package/dist/engines/registry.js +38 -13
- package/dist/engines/registry.js.map +1 -1
- package/dist/git-auth/github-token-source.d.ts +54 -0
- package/dist/git-auth/github-token-source.d.ts.map +1 -0
- package/dist/git-auth/github-token-source.js +44 -0
- package/dist/git-auth/github-token-source.js.map +1 -0
- package/dist/git-auth/index.d.ts +4 -0
- package/dist/git-auth/index.d.ts.map +1 -1
- package/dist/git-auth/index.js +4 -0
- package/dist/git-auth/index.js.map +1 -1
- package/dist/git-auth/installation-token.d.ts +95 -0
- package/dist/git-auth/installation-token.d.ts.map +1 -0
- package/dist/git-auth/installation-token.js +192 -0
- package/dist/git-auth/installation-token.js.map +1 -0
- package/dist/instance.d.ts +30 -0
- package/dist/instance.d.ts.map +1 -0
- package/dist/instance.js +51 -0
- package/dist/instance.js.map +1 -0
- package/dist/keychain.d.ts +4 -8
- package/dist/keychain.d.ts.map +1 -1
- package/dist/keychain.js +10 -4
- package/dist/keychain.js.map +1 -1
- package/dist/local-repo/command.d.ts +28 -0
- package/dist/local-repo/command.d.ts.map +1 -0
- package/dist/local-repo/command.js +178 -0
- package/dist/local-repo/command.js.map +1 -0
- package/dist/local-repo/index.d.ts +119 -0
- package/dist/local-repo/index.d.ts.map +1 -0
- package/dist/local-repo/index.js +141 -0
- package/dist/local-repo/index.js.map +1 -0
- package/dist/login.d.ts +4 -0
- package/dist/login.d.ts.map +1 -1
- package/dist/login.js +6 -1
- package/dist/login.js.map +1 -1
- package/dist/mcp-spawn.d.ts +19 -0
- package/dist/mcp-spawn.d.ts.map +1 -1
- package/dist/mcp-spawn.js +52 -26
- package/dist/mcp-spawn.js.map +1 -1
- package/dist/memory-context.d.ts +106 -0
- package/dist/memory-context.d.ts.map +1 -0
- package/dist/memory-context.js +220 -0
- package/dist/memory-context.js.map +1 -0
- package/dist/memory-curation.d.ts +172 -0
- package/dist/memory-curation.d.ts.map +1 -0
- package/dist/memory-curation.js +277 -0
- package/dist/memory-curation.js.map +1 -0
- package/dist/program.d.ts.map +1 -1
- package/dist/program.js +34 -0
- package/dist/program.js.map +1 -1
- package/dist/provider-auth.d.ts +70 -1
- package/dist/provider-auth.d.ts.map +1 -1
- package/dist/provider-auth.js +106 -2
- package/dist/provider-auth.js.map +1 -1
- package/dist/runtime/cache-dir.d.ts.map +1 -1
- package/dist/runtime/cache-dir.js +8 -3
- package/dist/runtime/cache-dir.js.map +1 -1
- package/dist/runtime/decision-provenance.d.ts +63 -0
- package/dist/runtime/decision-provenance.d.ts.map +1 -0
- package/dist/runtime/decision-provenance.js +107 -0
- package/dist/runtime/decision-provenance.js.map +1 -0
- package/dist/runtime/prompt-substitute.d.ts +100 -0
- package/dist/runtime/prompt-substitute.d.ts.map +1 -0
- package/dist/runtime/prompt-substitute.js +124 -0
- package/dist/runtime/prompt-substitute.js.map +1 -0
- package/dist/runtime/review-cost-cap.d.ts +167 -0
- package/dist/runtime/review-cost-cap.d.ts.map +1 -0
- package/dist/runtime/review-cost-cap.js +182 -0
- package/dist/runtime/review-cost-cap.js.map +1 -0
- package/dist/runtime/reviewer-abstain.d.ts +101 -0
- package/dist/runtime/reviewer-abstain.d.ts.map +1 -0
- package/dist/runtime/reviewer-abstain.js +138 -0
- package/dist/runtime/reviewer-abstain.js.map +1 -0
- package/dist/runtime/reviewer.d.ts +75 -0
- package/dist/runtime/reviewer.d.ts.map +1 -1
- package/dist/runtime/reviewer.js +235 -81
- package/dist/runtime/reviewer.js.map +1 -1
- package/dist/runtime/singleton.d.ts.map +1 -1
- package/dist/runtime/singleton.js +9 -1
- package/dist/runtime/singleton.js.map +1 -1
- package/dist/serving-auth/index.d.ts +79 -0
- package/dist/serving-auth/index.d.ts.map +1 -0
- package/dist/serving-auth/index.js +169 -0
- package/dist/serving-auth/index.js.map +1 -0
- package/dist/task-runner.d.ts +19 -2
- package/dist/task-runner.d.ts.map +1 -1
- package/dist/task-runner.js +110 -28
- package/dist/task-runner.js.map +1 -1
- package/dist/watch.d.ts +13 -0
- package/dist/watch.d.ts.map +1 -1
- package/dist/watch.js +128 -20
- package/dist/watch.js.map +1 -1
- package/package.json +3 -2
package/dist/watch.d.ts
CHANGED
|
@@ -253,6 +253,11 @@ export interface WatchOptions {
|
|
|
253
253
|
* 60s. Tests set a large value so only the `gitAuthProbeOnce()` hook drives it.
|
|
254
254
|
*/
|
|
255
255
|
gitAuthProbeIntervalMs?: number;
|
|
256
|
+
/**
|
|
257
|
+
* NS RUN-3: cadence (ms) of the GH_TOKEN refresh check (only armed when
|
|
258
|
+
* ACC_RUNNER_GITHUB_TOKEN_SOURCE=installation-token). Defaults to 60s.
|
|
259
|
+
*/
|
|
260
|
+
githubTokenRefreshIntervalMs?: number;
|
|
256
261
|
/**
|
|
257
262
|
* GIT-AUTH-ALERT: consecutive auth-class probe failures before the runner
|
|
258
263
|
* trips the degraded `git_auth_failed` state. Defaults to 2 (the spec bar).
|
|
@@ -412,6 +417,14 @@ interface WatchState {
|
|
|
412
417
|
gitAuthProbeIntervalMs: number;
|
|
413
418
|
gitAuthChecking: boolean;
|
|
414
419
|
gitAuthFailed: boolean;
|
|
420
|
+
/**
|
|
421
|
+
* NS RUN-3: refresh timer for the minted GitHub App installation token
|
|
422
|
+
* (null when ACC_RUNNER_GITHUB_TOKEN_SOURCE is not "installation-token" —
|
|
423
|
+
* the default, unchanged-behaviour path). Keeps process.env.GH_TOKEN fresh
|
|
424
|
+
* for the life of a long-running container; unref'd so it never holds the
|
|
425
|
+
* process open on its own.
|
|
426
|
+
*/
|
|
427
|
+
githubTokenRefreshTimer: NodeJS.Timeout | null;
|
|
415
428
|
/**
|
|
416
429
|
* v0.68 (T-68-1): realtime channel-health recovery. The `.subscribe`
|
|
417
430
|
* status callback previously handled ONLY `SUBSCRIBED`; a `CHANNEL_ERROR`
|
package/dist/watch.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../src/watch.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAML,KAAK,iBAAiB,EACtB,KAAK,YAAY,EAGlB,MAAM,aAAa,CAAC;AAIrB,OAAO,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAClF,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAG3E,OAAO,EAAsB,KAAK,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAW9E,OAAO,EAAE,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACrB,MAAM,uBAAuB,CAAC;AAM/B,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,wBAAwB,CAAC;AAKhC,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACzB,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,iBAAiB,EAIjB,KAAK,YAAY,
|
|
1
|
+
{"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../src/watch.ts"],"names":[],"mappings":"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"}
|
package/dist/watch.js
CHANGED
|
@@ -47,7 +47,12 @@ import { acquireSingletonLock, singletonRunnerId, SingletonLockHeldError, } from
|
|
|
47
47
|
import { getClaudeVersion, recordTaskClaudeVersion, } from "./runtime/version-drift.js";
|
|
48
48
|
import { autoUpgradeDisabled, maybeSelfUpgrade, maybeSelfUpdateOn426, } from "./runtime/self-upgrade.js";
|
|
49
49
|
import { postRunnerStateMessage } from "./messaging.js";
|
|
50
|
-
import { GitAuthController, makeGitAuthProbe, RUNNER_GIT_AUTH_FAILED_VERB, RUNNER_GIT_AUTH_RECOVERED_VERB,
|
|
50
|
+
import { GitAuthController, makeGitAuthProbe, RUNNER_GIT_AUTH_FAILED_VERB, RUNNER_GIT_AUTH_RECOVERED_VERB,
|
|
51
|
+
// NS RUN-3: per-container GitHub App installation tokens.
|
|
52
|
+
InstallationTokenProvider, makeHttpInstallationTokenFetcher, resolveGithubTokenSource, effectiveInstallationTokenRepos, hydrateGithubToken, } from "./git-auth/index.js";
|
|
53
|
+
// NS RUN-3: ANTHROPIC_API_KEY sourced from the vault secret store.
|
|
54
|
+
import { hydrateAnthropicApiKey } from "./provider-auth.js";
|
|
55
|
+
import { makeHttpSecretFetcher } from "./secrets/inject.js";
|
|
51
56
|
// AS-3 (RESUME-WIRE): drive the live capacity pause/resume through the
|
|
52
57
|
// ResumeController (pause-until reset OR account-change OR ping) instead of a
|
|
53
58
|
// fixed pause-until-reset setTimeout, and off the AS-2 account-probe cadence.
|
|
@@ -67,6 +72,10 @@ import { unknownAccountIdentity } from "./engines/account-identity.js";
|
|
|
67
72
|
import { checkVersion, compareSemver } from "./version-check.js";
|
|
68
73
|
import { PACKAGE_VERSION } from "./pkg-version.js";
|
|
69
74
|
import { authPrecedenceHint, servingAuthKind, describeServingAuthKind, forwardsAmbientKey, anthropicApiKey, } from "./provider-auth.js";
|
|
75
|
+
// RUNNER-SERVING-AUTH: the org's subscription-vs-BYOK choice, resolved once
|
|
76
|
+
// per boot and expressed through the same ACC_RUNNER_SERVING_AUTH_KIND var the
|
|
77
|
+
// imports above already fold.
|
|
78
|
+
import { fetchServingAuth, installServingAuth, servingAuthKindIsPinned, describeServingAuthResolution, } from "./serving-auth/index.js";
|
|
70
79
|
// AUTH-REFRESH: the refresh + heartbeat-classification
|
|
71
80
|
// primitives now live in a shared module so the companion runner reuses them
|
|
72
81
|
// verbatim. Re-exported below to keep watch.js's existing test-facing surface.
|
|
@@ -157,6 +166,12 @@ const DEFAULT_CLAIM_DEADMAN_MAX_REBUILDS = 2;
|
|
|
157
166
|
// only the `gitAuthProbeOnce()` hook drives it deterministically. Knob:
|
|
158
167
|
// `git_auth_probe_interval_ms`.
|
|
159
168
|
const DEFAULT_GIT_AUTH_PROBE_INTERVAL_MS = 60_000;
|
|
169
|
+
// NS RUN-3: how often a long-running container re-checks its minted GitHub
|
|
170
|
+
// App installation token. InstallationTokenProvider only actually re-mints
|
|
171
|
+
// once within its own refresh margin (5 min) of the cached token's expiry, so
|
|
172
|
+
// a call before then is a cheap cache hit — this cadence just needs to be
|
|
173
|
+
// comfortably shorter than that margin.
|
|
174
|
+
const DEFAULT_GITHUB_TOKEN_REFRESH_INTERVAL_MS = 60_000;
|
|
160
175
|
// v0.56 (T-56-1): capacity-aware pause. When claude reports a session/usage
|
|
161
176
|
// limit (api_error_status 429) the runner pauses claiming tasks AND reviews
|
|
162
177
|
// until the stated reset time. When no reset time is parseable, fall back to
|
|
@@ -1377,25 +1392,6 @@ export async function watchCommand(options = {}) {
|
|
|
1377
1392
|
`(auto-upgrade disabled via ACC_RUNNER_NO_AUTO_UPGRADE=1).\n`
|
|
1378
1393
|
: `Auto-upgrade will install npm latest when idle.\n`));
|
|
1379
1394
|
}
|
|
1380
|
-
// Surface how spawned claude sessions will authenticate under subscription-only
|
|
1381
|
-
// serving. All serving rides subscription capacity unless the serving identity
|
|
1382
|
-
// is BYOK api_key — a host ANTHROPIC_API_KEY is forwarded ONLY in that case,
|
|
1383
|
-
// and stripped otherwise so it can never silently bill the API. The serving
|
|
1384
|
-
// auth_kind comes from ACC_RUNNER_SERVING_AUTH_KIND (fail-safe: subscription
|
|
1385
|
-
// when unset).
|
|
1386
|
-
const servingKind = servingAuthKind();
|
|
1387
|
-
console.log(chalk.gray(`Serving auth: ${describeServingAuthKind(servingKind)}`));
|
|
1388
|
-
if (!forwardsAmbientKey() && anthropicApiKey()) {
|
|
1389
|
-
// Reassure the operator that a stray host key is inert, not billed.
|
|
1390
|
-
console.log(chalk.gray("Serving auth: a host ANTHROPIC_API_KEY is set but will be STRIPPED from spawns (subscription-only)."));
|
|
1391
|
-
}
|
|
1392
|
-
if (forwardsAmbientKey()) {
|
|
1393
|
-
// Only meaningful in BYOK api_key mode — surface the key-vs-claude.ai-login
|
|
1394
|
-
// precedence hint so a 429 is diagnosable from the banner.
|
|
1395
|
-
const authHint = authPrecedenceHint();
|
|
1396
|
-
if (authHint)
|
|
1397
|
-
console.log(chalk.gray(`Serving auth: ${authHint}`));
|
|
1398
|
-
}
|
|
1399
1395
|
// Startup refresh: if the access token expires in less than an hour,
|
|
1400
1396
|
// grab a fresh one before opening the realtime connection.
|
|
1401
1397
|
// v0.12.0 (T-52-7): skipped when the provider has no refresh token —
|
|
@@ -1488,6 +1484,94 @@ export async function watchCommand(options = {}) {
|
|
|
1488
1484
|
await tokenProvider.save(session);
|
|
1489
1485
|
console.log(chalk.green(`✓ Registered ephemeral runner: ${session.runner_id}`));
|
|
1490
1486
|
}
|
|
1487
|
+
// RUNNER-SERVING-AUTH: ask the control plane which serving auth this ORG
|
|
1488
|
+
// chose in Settings, before the banner below reads it. This is what turns
|
|
1489
|
+
// "an operator hand-edits ACC_RUNNER_SERVING_AUTH_KIND on the host" into an
|
|
1490
|
+
// admin-gated setting — it writes the SAME env var and changes nothing else.
|
|
1491
|
+
// Never throws: any failure resolves to subscription (today's behaviour),
|
|
1492
|
+
// and an explicit launch-env value always wins, so container fleets that pin
|
|
1493
|
+
// the var are untouched.
|
|
1494
|
+
//
|
|
1495
|
+
// POSITION MATTERS, twice over. It runs AFTER the startup refresh + ephemeral
|
|
1496
|
+
// registration so the JWT it presents is the final one, not a token that was
|
|
1497
|
+
// about to expire. And it runs BEFORE the NS RUN-3 vault hydration below, so
|
|
1498
|
+
// an explicit ACC_RUNNER_ANTHROPIC_KEY_SOURCE=secret-store fleet still wins
|
|
1499
|
+
// the shared key cache — the per-fleet opt-in outranks the org default, same
|
|
1500
|
+
// precedence rule as the env var itself.
|
|
1501
|
+
if (!servingAuthKindIsPinned()) {
|
|
1502
|
+
const servingChoice = await fetchServingAuth({
|
|
1503
|
+
publicUrl: cfg.publicUrl,
|
|
1504
|
+
jwt: session.access_token,
|
|
1505
|
+
});
|
|
1506
|
+
installServingAuth(servingChoice);
|
|
1507
|
+
if (servingChoice.fallbackReason) {
|
|
1508
|
+
console.log(chalk.gray(`Serving auth: ${describeServingAuthResolution(servingChoice)}`));
|
|
1509
|
+
}
|
|
1510
|
+
}
|
|
1511
|
+
// Surface how spawned claude sessions will authenticate under subscription-only
|
|
1512
|
+
// serving. All serving rides subscription capacity unless the serving identity
|
|
1513
|
+
// is BYOK api_key — a host ANTHROPIC_API_KEY is forwarded ONLY in that case,
|
|
1514
|
+
// and stripped otherwise so it can never silently bill the API. The serving
|
|
1515
|
+
// auth_kind comes from ACC_RUNNER_SERVING_AUTH_KIND (fail-safe: subscription
|
|
1516
|
+
// when unset), which the org setting above may have just supplied.
|
|
1517
|
+
const servingKind = servingAuthKind();
|
|
1518
|
+
console.log(chalk.gray(`Serving auth: ${describeServingAuthKind(servingKind)}`));
|
|
1519
|
+
if (!forwardsAmbientKey() && anthropicApiKey()) {
|
|
1520
|
+
// Reassure the operator that a stray host key is inert, not billed.
|
|
1521
|
+
console.log(chalk.gray("Serving auth: a host ANTHROPIC_API_KEY is set but will be STRIPPED from spawns (subscription-only)."));
|
|
1522
|
+
}
|
|
1523
|
+
if (forwardsAmbientKey()) {
|
|
1524
|
+
// Only meaningful in BYOK api_key mode — surface the key-vs-claude.ai-login
|
|
1525
|
+
// precedence hint so a 429 is diagnosable from the banner.
|
|
1526
|
+
const authHint = authPrecedenceHint();
|
|
1527
|
+
if (authHint)
|
|
1528
|
+
console.log(chalk.gray(`Serving auth: ${authHint}`));
|
|
1529
|
+
}
|
|
1530
|
+
// NS RUN-3: hydrate ANTHROPIC_API_KEY from the vault secret store, BEFORE
|
|
1531
|
+
// any claude spawn can read it. Defaults to a no-op (source "env") so
|
|
1532
|
+
// existing fleets are byte-identical until an operator opts in via
|
|
1533
|
+
// ACC_RUNNER_ANTHROPIC_KEY_SOURCE=secret-store. Runs after the runner is
|
|
1534
|
+
// registered (session.runner_id is stable either way — env-token runners
|
|
1535
|
+
// just registered above; keychain runners already have one) so the
|
|
1536
|
+
// attributed agentId is the runner's real identity. The resolved key is
|
|
1537
|
+
// cached inside provider-auth.ts (anthropicApiKey()'s fallback) — the
|
|
1538
|
+
// return value here is intentionally discarded rather than written to
|
|
1539
|
+
// process.env.ANTHROPIC_API_KEY, which the ambient-key guard
|
|
1540
|
+
// (scripts/ci/no-ambient-anthropic-key.mjs) strictly forbids in this tree.
|
|
1541
|
+
try {
|
|
1542
|
+
await hydrateAnthropicApiKey(process.env, {
|
|
1543
|
+
fetcher: makeHttpSecretFetcher({ publicUrl: cfg.publicUrl, jwt: session.access_token }),
|
|
1544
|
+
agentId: session.runner_id,
|
|
1545
|
+
});
|
|
1546
|
+
}
|
|
1547
|
+
catch (err) {
|
|
1548
|
+
process.stderr.write(`[acc-runner] ANTHROPIC_API_KEY secret-store hydration failed: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
1549
|
+
process.exit(1);
|
|
1550
|
+
}
|
|
1551
|
+
// NS RUN-3: mint a short-lived, repo-scoped GitHub App installation token in
|
|
1552
|
+
// place of a shared GH_TOKEN PAT, when opted in via
|
|
1553
|
+
// ACC_RUNNER_GITHUB_TOKEN_SOURCE=installation-token. Defaults to a no-op
|
|
1554
|
+
// ("env" — today's shared-PAT behaviour, unchanged). The provider is kept
|
|
1555
|
+
// alive for the process's lifetime so the periodic refresh below (armed
|
|
1556
|
+
// once `state` exists) can keep process.env.GH_TOKEN current past the
|
|
1557
|
+
// token's ~1h expiry.
|
|
1558
|
+
let installationTokenProvider = null;
|
|
1559
|
+
if (resolveGithubTokenSource(process.env) === "installation-token") {
|
|
1560
|
+
installationTokenProvider = new InstallationTokenProvider({
|
|
1561
|
+
repos: effectiveInstallationTokenRepos(cfg),
|
|
1562
|
+
runnerId: session.runner_id,
|
|
1563
|
+
fetcher: makeHttpInstallationTokenFetcher({ publicUrl: cfg.publicUrl, jwt: session.access_token }),
|
|
1564
|
+
});
|
|
1565
|
+
try {
|
|
1566
|
+
const hydratedGithub = await hydrateGithubToken(process.env, installationTokenProvider);
|
|
1567
|
+
if (hydratedGithub.GH_TOKEN)
|
|
1568
|
+
process.env.GH_TOKEN = hydratedGithub.GH_TOKEN;
|
|
1569
|
+
}
|
|
1570
|
+
catch (err) {
|
|
1571
|
+
process.stderr.write(`[acc-runner] GitHub installation-token mint failed: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
1572
|
+
process.exit(1);
|
|
1573
|
+
}
|
|
1574
|
+
}
|
|
1491
1575
|
const taskRunnerFactory = options.taskRunnerFactory ?? runTask;
|
|
1492
1576
|
const heartbeatMs = options.heartbeatMs ?? 4_000;
|
|
1493
1577
|
const pollMs = options.pollMs ?? POLL_INTERVAL_MS;
|
|
@@ -1556,6 +1640,9 @@ export async function watchCommand(options = {}) {
|
|
|
1556
1640
|
gitAuthProbeIntervalMs: options.gitAuthProbeIntervalMs ?? DEFAULT_GIT_AUTH_PROBE_INTERVAL_MS,
|
|
1557
1641
|
gitAuthChecking: false,
|
|
1558
1642
|
gitAuthFailed: false,
|
|
1643
|
+
// NS RUN-3: armed below, alongside the installation-token provider setup,
|
|
1644
|
+
// only when opted in.
|
|
1645
|
+
githubTokenRefreshTimer: null,
|
|
1559
1646
|
// v0.68 (T-68-1): realtime channel-health recovery state.
|
|
1560
1647
|
resubscribing: false,
|
|
1561
1648
|
resubscribeAttempts: 0,
|
|
@@ -1633,6 +1720,25 @@ export async function watchCommand(options = {}) {
|
|
|
1633
1720
|
// base clone is resolvable). The probe timer is armed in the timer-setup
|
|
1634
1721
|
// block below alongside the claim/review scans.
|
|
1635
1722
|
wireGitAuthController(state, options);
|
|
1723
|
+
// NS RUN-3: keep process.env.GH_TOKEN fresh for the rest of this process's
|
|
1724
|
+
// life. No-op (timer never armed) unless installation-token sourcing was
|
|
1725
|
+
// opted into above. Unref'd so it never holds the process open on its own;
|
|
1726
|
+
// a mint failure logs and retries next tick rather than crashing a running
|
|
1727
|
+
// container mid-task.
|
|
1728
|
+
if (installationTokenProvider) {
|
|
1729
|
+
const provider = installationTokenProvider;
|
|
1730
|
+
state.githubTokenRefreshTimer = setInterval(() => {
|
|
1731
|
+
hydrateGithubToken(process.env, provider)
|
|
1732
|
+
.then((hydrated) => {
|
|
1733
|
+
if (hydrated.GH_TOKEN)
|
|
1734
|
+
process.env.GH_TOKEN = hydrated.GH_TOKEN;
|
|
1735
|
+
})
|
|
1736
|
+
.catch((err) => {
|
|
1737
|
+
process.stderr.write(`[acc-runner] GitHub installation-token refresh failed (continuing): ${err instanceof Error ? err.message : String(err)}\n`);
|
|
1738
|
+
});
|
|
1739
|
+
}, options.githubTokenRefreshIntervalMs ?? DEFAULT_GITHUB_TOKEN_REFRESH_INTERVAL_MS);
|
|
1740
|
+
state.githubTokenRefreshTimer.unref?.();
|
|
1741
|
+
}
|
|
1636
1742
|
subscribeChannel(state, taskRunnerFactory);
|
|
1637
1743
|
// v0.34-B / v0.62 (T-62-1): one-shot startup claim scan. The 5-minute
|
|
1638
1744
|
// pollSince watermark (v0.30-B) can miss a task dispatched (runner_id set)
|
|
@@ -1835,6 +1941,8 @@ export async function watchCommand(options = {}) {
|
|
|
1835
1941
|
stopDeadmanFallback(state); // CLAIM-DEADMAN
|
|
1836
1942
|
if (state.gitAuthTimer)
|
|
1837
1943
|
clearInterval(state.gitAuthTimer); // GIT-AUTH-ALERT
|
|
1944
|
+
if (state.githubTokenRefreshTimer)
|
|
1945
|
+
clearInterval(state.githubTokenRefreshTimer); // NS RUN-3
|
|
1838
1946
|
if (state.resubscribeTimer)
|
|
1839
1947
|
clearTimeout(state.resubscribeTimer); // v0.68 (T-68-1)
|
|
1840
1948
|
if (state.idleTimer)
|