@songsid/agend 2.3.3-beta.1 → 2.3.3-beta.3
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/authority/authority-state.js +1 -1
- package/dist/authority/authority-state.js.map +1 -1
- package/dist/authority/web-authority.d.ts +9 -4
- package/dist/authority/web-authority.js +10 -5
- package/dist/authority/web-authority.js.map +1 -1
- package/dist/backend/claude-code.js +3 -25
- package/dist/backend/claude-code.js.map +1 -1
- package/dist/backend/claude-transcript-errors.d.ts +18 -0
- package/dist/backend/claude-transcript-errors.js +19 -0
- package/dist/backend/claude-transcript-errors.js.map +1 -0
- package/dist/backend/codex-session-lookup.d.ts +16 -3
- package/dist/backend/codex-session-lookup.js +45 -11
- package/dist/backend/codex-session-lookup.js.map +1 -1
- package/dist/classic-channel-manager.d.ts +4 -1
- package/dist/classic-channel-manager.js +21 -7
- package/dist/classic-channel-manager.js.map +1 -1
- package/dist/cli.js +18 -3
- package/dist/cli.js.map +1 -1
- package/dist/config-history.d.ts +50 -0
- package/dist/config-history.js +263 -0
- package/dist/config-history.js.map +1 -0
- package/dist/config-validator.js +1 -4
- package/dist/config-validator.js.map +1 -1
- package/dist/config.d.ts +3 -0
- package/dist/config.js +11 -4
- package/dist/config.js.map +1 -1
- package/dist/daemon.d.ts +37 -0
- package/dist/daemon.js +156 -4
- package/dist/daemon.js.map +1 -1
- package/dist/daily-summary.d.ts +8 -1
- package/dist/daily-summary.js +8 -5
- package/dist/daily-summary.js.map +1 -1
- package/dist/delivery-outbox.d.ts +4 -0
- package/dist/delivery-outbox.js +12 -2
- package/dist/delivery-outbox.js.map +1 -1
- package/dist/fleet-level-config.js +1 -1
- package/dist/fleet-level-config.js.map +1 -1
- package/dist/fleet-manager.d.ts +8 -10
- package/dist/fleet-manager.js +57 -83
- package/dist/fleet-manager.js.map +1 -1
- package/dist/fleet-process-handlers.d.ts +5 -0
- package/dist/fleet-process-handlers.js +21 -0
- package/dist/fleet-process-handlers.js.map +1 -1
- package/dist/fleet-service-owner.d.ts +11 -0
- package/dist/fleet-service-owner.js +3 -0
- package/dist/fleet-service-owner.js.map +1 -0
- package/dist/general-knowledge/skills/web-dashboard/SKILL.canvas-worker-off.md +3 -4
- package/dist/general-knowledge/skills/web-dashboard/SKILL.md +3 -4
- package/dist/instance-lifecycle.js +2 -0
- package/dist/instance-lifecycle.js.map +1 -1
- package/dist/locale.js +24 -36
- package/dist/locale.js.map +1 -1
- package/dist/needs-you-hub.d.ts +1 -0
- package/dist/needs-you-hub.js +6 -3
- package/dist/needs-you-hub.js.map +1 -1
- package/dist/needs-you-live.d.ts +3 -1
- package/dist/needs-you-live.js +24 -2
- package/dist/needs-you-live.js.map +1 -1
- package/dist/needs-you.d.ts +13 -2
- package/dist/needs-you.js +11 -1
- package/dist/needs-you.js.map +1 -1
- package/dist/scheduler/task-board.d.ts +0 -13
- package/dist/scheduler/task-board.js +0 -14
- package/dist/scheduler/task-board.js.map +1 -1
- package/dist/setup-wizard.d.ts +3 -0
- package/dist/setup-wizard.js +4 -2
- package/dist/setup-wizard.js.map +1 -1
- package/dist/transcript-monitor.d.ts +7 -0
- package/dist/transcript-monitor.js +48 -3
- package/dist/transcript-monitor.js.map +1 -1
- package/dist/types.d.ts +6 -5
- package/dist/ui/panel-needs.js +11 -9
- package/dist/ui/settings-strings.js +2 -2
- package/dist/ui/settings-web-authority.js +4 -3
- package/dist/ui/shared/app-i18n.js +2 -2
- package/dist/ui/shared/app-needs.js +5 -1
- package/dist/web-api.js +2 -0
- package/dist/web-api.js.map +1 -1
- package/launcher/agend-install.cjs +7 -1
- package/launcher/fleet-service-owner.cjs +138 -0
- package/package.json +1 -1
- package/dist/task-board-summary.d.ts +0 -101
- package/dist/task-board-summary.js +0 -177
- package/dist/task-board-summary.js.map +0 -1
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/daemon.d.ts
CHANGED
|
@@ -534,6 +534,8 @@ export declare class Daemon extends EventEmitter {
|
|
|
534
534
|
private bootSkippedResume;
|
|
535
535
|
private recoveryCrashLoopFresh;
|
|
536
536
|
private recoveryFreshChoice;
|
|
537
|
+
/** The current boot found a crash-loop marker and is attempting resume rather than going fresh immediately. */
|
|
538
|
+
private bootCrashLoopResume;
|
|
537
539
|
private startupAborted;
|
|
538
540
|
/** First time the current on-screen blocking dialog was seen (0 = none); drives the parked report. */
|
|
539
541
|
private dialogParkedSince;
|
|
@@ -929,6 +931,41 @@ export declare class Daemon extends EventEmitter {
|
|
|
929
931
|
private lastErrorCount;
|
|
930
932
|
private seededErrorCountBaselines;
|
|
931
933
|
private lastDetectedErrorType;
|
|
934
|
+
/**
|
|
935
|
+
* #2822: Claude's per-model usage limit (`You've reached your <model> limit.`), known only from Claude's own record of
|
|
936
|
+
* the failed call in its transcript (`isApiErrorMessage`, a 429) — never from pane text, which an agent can print. It
|
|
937
|
+
* names no reset time. While it holds it is told once, and the reply guard stays quiet while the transcript's newest
|
|
938
|
+
* event is that error; any later assistant output (of any turn, from a person or not) ends it. The order is Claude's
|
|
939
|
+
* own: a 429 is recorded within a second, often before AgEnD has armed the turn, so no AgEnD-side clock is used.
|
|
940
|
+
*/
|
|
941
|
+
private usageLimitHold;
|
|
942
|
+
/** Transcript events in Claude's order (prompts, output, every API error): the newest, and the latest limit error. */
|
|
943
|
+
private transcriptEventSeq;
|
|
944
|
+
private usageLimitErrorSeq;
|
|
945
|
+
static readonly MODEL_USAGE_LIMIT: RegExp;
|
|
946
|
+
/** #2822: the usage-limit hold, while it lasts — Needs you lists it. */
|
|
947
|
+
usageHold(): {
|
|
948
|
+
model: string;
|
|
949
|
+
since: number;
|
|
950
|
+
} | null;
|
|
951
|
+
/** #2834: Claude's account is out of API credits — its own record; the same pause as the pane pattern it replaces. */
|
|
952
|
+
static readonly CREDIT_BALANCE_LOW: RegExp;
|
|
953
|
+
/** #2834 (#816): Claude's usage-limit auto-continue note, as it records it (`system` / `informational`). */
|
|
954
|
+
static readonly USAGE_LIMIT_PAUSE: RegExp;
|
|
955
|
+
/** #2834 (#816): Claude paused itself until its usage window opens — the same notice the screen pattern gave. */
|
|
956
|
+
private noteClaudeInformational;
|
|
957
|
+
/** #2822: Claude recorded a failed API call. */
|
|
958
|
+
private noteClaudeApiError;
|
|
959
|
+
/** #2822: Claude produced output (text or a tool call): the model answers again, so a hold ends. */
|
|
960
|
+
private noteClaudeOutput;
|
|
961
|
+
/** #2822: a prompt reached Claude (recorded in its transcript). */
|
|
962
|
+
private noteClaudePrompt;
|
|
963
|
+
/**
|
|
964
|
+
* #2822: the turn ended on the limit error — the transcript's newest event of any kind. A prompt after it (a new
|
|
965
|
+
* message the error is older than), output after it (the model answered) or another API error after it (a 500, a
|
|
966
|
+
* different 429) means the limit error is not this turn's end.
|
|
967
|
+
*/
|
|
968
|
+
private personTurnEndedOnUsageLimit;
|
|
932
969
|
private static errorPatternKey;
|
|
933
970
|
/** Read the occurrence baseline so a lifecycle-owned restart can carry it forward. */
|
|
934
971
|
/** #2648: kiro only — what a model error on the current launch should do (see kiro-retired-model.ts). */
|
package/dist/daemon.js
CHANGED
|
@@ -53,6 +53,7 @@ import { formatHumanInboundMessage, prepareDeliveryWire, steerInboundEnvelope, B
|
|
|
53
53
|
import { formatCrossInstanceInboundMessage, renderCrossInstanceHandoffMetadata, } from "./cross-instance-envelope.js";
|
|
54
54
|
import { agendMessageInInput, bottomRowIsReady, inputAreaText, inputShowsPastedText, pastedTextSignature, pasteLeftInInput, strandedAgendMessageInInput } from "./pane-input-residue.js";
|
|
55
55
|
import { TurnReplyGuard, formatReplyDropDetection, turnExpectsPersonReply } from "./turn-reply-guard.js";
|
|
56
|
+
import { CLAUDE_CREDIT_BALANCE_LOW, CLAUDE_MODEL_USAGE_LIMIT, CLAUDE_USAGE_LIMIT_PAUSE } from "./backend/claude-transcript-errors.js";
|
|
56
57
|
import { t } from "./locale.js";
|
|
57
58
|
import { MuseUsageRelay, clearMuseUsageSnapshot } from "./muse-usage-relay.js";
|
|
58
59
|
import { deliveryContentDigest } from "./delivery-outbox.js";
|
|
@@ -1263,6 +1264,8 @@ export class Daemon extends EventEmitter {
|
|
|
1263
1264
|
bootSkippedResume = false;
|
|
1264
1265
|
recoveryCrashLoopFresh = false;
|
|
1265
1266
|
recoveryFreshChoice = false;
|
|
1267
|
+
/** The current boot found a crash-loop marker and is attempting resume rather than going fresh immediately. */
|
|
1268
|
+
bootCrashLoopResume = false;
|
|
1266
1269
|
startupAborted = false;
|
|
1267
1270
|
/** First time the current on-screen blocking dialog was seen (0 = none); drives the parked report. */
|
|
1268
1271
|
dialogParkedSince = 0;
|
|
@@ -1765,6 +1768,76 @@ export class Daemon extends EventEmitter {
|
|
|
1765
1768
|
// old transcript, so pre-ready scans must not lower this seeded baseline.
|
|
1766
1769
|
seededErrorCountBaselines = new Map();
|
|
1767
1770
|
lastDetectedErrorType = null;
|
|
1771
|
+
/**
|
|
1772
|
+
* #2822: Claude's per-model usage limit (`You've reached your <model> limit.`), known only from Claude's own record of
|
|
1773
|
+
* the failed call in its transcript (`isApiErrorMessage`, a 429) — never from pane text, which an agent can print. It
|
|
1774
|
+
* names no reset time. While it holds it is told once, and the reply guard stays quiet while the transcript's newest
|
|
1775
|
+
* event is that error; any later assistant output (of any turn, from a person or not) ends it. The order is Claude's
|
|
1776
|
+
* own: a 429 is recorded within a second, often before AgEnD has armed the turn, so no AgEnD-side clock is used.
|
|
1777
|
+
*/
|
|
1778
|
+
usageLimitHold = null;
|
|
1779
|
+
/** Transcript events in Claude's order (prompts, output, every API error): the newest, and the latest limit error. */
|
|
1780
|
+
transcriptEventSeq = 0;
|
|
1781
|
+
usageLimitErrorSeq = 0;
|
|
1782
|
+
static MODEL_USAGE_LIMIT = CLAUDE_MODEL_USAGE_LIMIT;
|
|
1783
|
+
/** #2822: the usage-limit hold, while it lasts — Needs you lists it. */
|
|
1784
|
+
usageHold() {
|
|
1785
|
+
return this.usageLimitHold ? { ...this.usageLimitHold } : null;
|
|
1786
|
+
}
|
|
1787
|
+
/** #2834: Claude's account is out of API credits — its own record; the same pause as the pane pattern it replaces. */
|
|
1788
|
+
static CREDIT_BALANCE_LOW = CLAUDE_CREDIT_BALANCE_LOW;
|
|
1789
|
+
/** #2834 (#816): Claude's usage-limit auto-continue note, as it records it (`system` / `informational`). */
|
|
1790
|
+
static USAGE_LIMIT_PAUSE = CLAUDE_USAGE_LIMIT_PAUSE;
|
|
1791
|
+
/** #2834 (#816): Claude paused itself until its usage window opens — the same notice the screen pattern gave. */
|
|
1792
|
+
noteClaudeInformational(text) {
|
|
1793
|
+
const match = Daemon.USAGE_LIMIT_PAUSE.exec(text.trim());
|
|
1794
|
+
if (!match)
|
|
1795
|
+
return;
|
|
1796
|
+
const when = match[1].trim();
|
|
1797
|
+
this.emit("pty_error", { name: this.name, type: "quota", action: "notify", verifyQuota: true, skipCooldown: true, skipRecoveryWait: true,
|
|
1798
|
+
message: `Claude Code usage limit reached — paused; continuing automatically ${when}` });
|
|
1799
|
+
}
|
|
1800
|
+
/** #2822: Claude recorded a failed API call. */
|
|
1801
|
+
noteClaudeApiError(text, status, errorKind = null) {
|
|
1802
|
+
const seq = ++this.transcriptEventSeq;
|
|
1803
|
+
if (errorKind === "billing_error" || (status === 400 && Daemon.CREDIT_BALANCE_LOW.test(text))) {
|
|
1804
|
+
this.emit("pty_error", { name: this.name, type: "quota", action: "pause", message: "Insufficient API credits" });
|
|
1805
|
+
return;
|
|
1806
|
+
}
|
|
1807
|
+
const match = status === 429 ? Daemon.MODEL_USAGE_LIMIT.exec(text.trim()) : null;
|
|
1808
|
+
if (!match)
|
|
1809
|
+
return;
|
|
1810
|
+
this.usageLimitErrorSeq = seq;
|
|
1811
|
+
if (this.usageLimitHold)
|
|
1812
|
+
return; // told already: one notice per hold
|
|
1813
|
+
const model = match[1].trim();
|
|
1814
|
+
this.usageLimitHold = { model, since: Date.now() };
|
|
1815
|
+
const message = t("inst.model_usage_limit", model);
|
|
1816
|
+
this.logger.warn({ model }, "Usage-limit hold started (reset time unknown)");
|
|
1817
|
+
this.emit("usage_hold", { name: this.name, held: true });
|
|
1818
|
+
this.emit("pty_error", { name: this.name, type: "quota", action: "notify", message, skipCooldown: true, skipRecoveryWait: true });
|
|
1819
|
+
}
|
|
1820
|
+
/** #2822: Claude produced output (text or a tool call): the model answers again, so a hold ends. */
|
|
1821
|
+
noteClaudeOutput() {
|
|
1822
|
+
++this.transcriptEventSeq;
|
|
1823
|
+
if (!this.usageLimitHold)
|
|
1824
|
+
return;
|
|
1825
|
+
this.logger.info({ model: this.usageLimitHold.model }, "Usage-limit hold cleared — Claude answered again");
|
|
1826
|
+
this.usageLimitHold = null;
|
|
1827
|
+
this.emit("usage_hold", { name: this.name, held: false });
|
|
1828
|
+
}
|
|
1829
|
+
/** #2822: a prompt reached Claude (recorded in its transcript). */
|
|
1830
|
+
noteClaudePrompt() {
|
|
1831
|
+
++this.transcriptEventSeq;
|
|
1832
|
+
}
|
|
1833
|
+
/**
|
|
1834
|
+
* #2822: the turn ended on the limit error — the transcript's newest event of any kind. A prompt after it (a new
|
|
1835
|
+
* message the error is older than), output after it (the model answered) or another API error after it (a 500, a
|
|
1836
|
+
* different 429) means the limit error is not this turn's end.
|
|
1837
|
+
*/
|
|
1838
|
+
personTurnEndedOnUsageLimit() {
|
|
1839
|
+
return this.usageLimitErrorSeq > 0 && this.usageLimitErrorSeq === this.transcriptEventSeq;
|
|
1840
|
+
}
|
|
1768
1841
|
static errorPatternKey(ep) {
|
|
1769
1842
|
return `${ep.type}:${ep.pattern.source}`;
|
|
1770
1843
|
}
|
|
@@ -2265,19 +2338,40 @@ export class Daemon extends EventEmitter {
|
|
|
2265
2338
|
this.bootSkippedResume = false;
|
|
2266
2339
|
this.recoveryCrashLoopFresh = false;
|
|
2267
2340
|
this.recoveryFreshChoice = false;
|
|
2341
|
+
this.bootCrashLoopResume = false;
|
|
2268
2342
|
try {
|
|
2269
2343
|
if (existsSync(crashStatePath)) {
|
|
2270
2344
|
const content = readFileSync(crashStatePath, "utf-8");
|
|
2271
2345
|
try {
|
|
2272
2346
|
const state = JSON.parse(content);
|
|
2273
|
-
if (state?.
|
|
2347
|
+
if (state?.resumeFailed === true) {
|
|
2348
|
+
// The previous start tried resume after a crash loop but the resumed
|
|
2349
|
+
// session died before reaching ready. Go fresh this time.
|
|
2274
2350
|
this.skipResume = true;
|
|
2275
2351
|
this.bootSkippedResume = true;
|
|
2276
|
-
this.recoveryCrashLoopFresh =
|
|
2352
|
+
this.recoveryCrashLoopFresh = true;
|
|
2353
|
+
this.recoveryFreshChoice = false;
|
|
2354
|
+
this.logger.warn("Previously resumed session died quickly after a crash loop — starting fresh");
|
|
2355
|
+
}
|
|
2356
|
+
else if (state?.resumeDisabled === true) {
|
|
2357
|
+
// Crash loop detected, but the session is not proven broken.
|
|
2358
|
+
// Try resume first; if it dies before reaching ready, the next
|
|
2359
|
+
// boot will see resumeFailed and go fresh (PR #2809).
|
|
2360
|
+
const isCrashLoop = (state.reason === undefined || state.reason === "crash_loop")
|
|
2277
2361
|
&& Number.isInteger(state.crashesInWindow) && state.crashesInWindow >= 3
|
|
2278
2362
|
&& Number.isFinite(state.lastCrashAt) && state.lastCrashAt > 0;
|
|
2279
|
-
|
|
2280
|
-
|
|
2363
|
+
if (isCrashLoop) {
|
|
2364
|
+
this.bootCrashLoopResume = true;
|
|
2365
|
+
this.logger.warn("Previous crash loop detected — attempting resume (will fall back to fresh if session is broken)");
|
|
2366
|
+
}
|
|
2367
|
+
else {
|
|
2368
|
+
// Explicit fresh-start request (not a crash loop); honour it.
|
|
2369
|
+
this.skipResume = true;
|
|
2370
|
+
this.bootSkippedResume = true;
|
|
2371
|
+
this.recoveryCrashLoopFresh = false;
|
|
2372
|
+
this.recoveryFreshChoice = true;
|
|
2373
|
+
this.logger.warn("Previous crash loop detected — starting without resume");
|
|
2374
|
+
}
|
|
2281
2375
|
}
|
|
2282
2376
|
}
|
|
2283
2377
|
finally {
|
|
@@ -2465,6 +2559,7 @@ export class Daemon extends EventEmitter {
|
|
|
2465
2559
|
.catch(e => this.logger.debug({ err: e.message }, "Ack react failed"));
|
|
2466
2560
|
};
|
|
2467
2561
|
this.transcriptMonitor.on("tool_use", (name, input) => {
|
|
2562
|
+
this.noteClaudeOutput();
|
|
2468
2563
|
this.logger.debug({ tool: name }, "Tool use");
|
|
2469
2564
|
ackIfPending();
|
|
2470
2565
|
this.recordRecentEvent({ type: "tool_use", name, preview: this.summarizeTool(name, input) });
|
|
@@ -2478,7 +2573,11 @@ export class Daemon extends EventEmitter {
|
|
|
2478
2573
|
// show only elapsed time than to leave a stale "Bash: npm test" on screen.
|
|
2479
2574
|
this.publishActivity(null);
|
|
2480
2575
|
});
|
|
2576
|
+
this.transcriptMonitor.on("api_error", (text, status, _at, errorKind) => this.noteClaudeApiError(text, status, errorKind));
|
|
2577
|
+
this.transcriptMonitor.on("system_informational", (text) => this.noteClaudeInformational(text));
|
|
2578
|
+
this.transcriptMonitor.on("user_prompt", () => this.noteClaudePrompt());
|
|
2481
2579
|
this.transcriptMonitor.on("assistant_text", (text) => {
|
|
2580
|
+
this.noteClaudeOutput();
|
|
2482
2581
|
this.logger.debug({ text: text.slice(0, 200) }, "Claude response");
|
|
2483
2582
|
ackIfPending();
|
|
2484
2583
|
this.recordRecentEvent({ type: "assistant_text", preview: text.slice(0, 100) });
|
|
@@ -5662,6 +5761,15 @@ export class Daemon extends EventEmitter {
|
|
|
5662
5761
|
this.turnReplyGuard.complete(turn.generation);
|
|
5663
5762
|
return;
|
|
5664
5763
|
}
|
|
5764
|
+
// #2822: a turn whose newest transcript event is Claude's usage-limit error could not have replied — no recovery
|
|
5765
|
+
// turn, no drop report: the limit is told once (the notice and Needs you). Only that record counts: pane text and
|
|
5766
|
+
// an error from before this turn began do not.
|
|
5767
|
+
if (this.personTurnEndedOnUsageLimit()) {
|
|
5768
|
+
this.logger.info({ correlationId: turn.target.correlationId }, "Turn ended on Claude's usage-limit error — no reply recovery");
|
|
5769
|
+
this.clearReplyGuardConfirm();
|
|
5770
|
+
this.turnReplyGuard.complete(turn.generation);
|
|
5771
|
+
return;
|
|
5772
|
+
}
|
|
5665
5773
|
// A second idle edge ends the one permitted recovery turn. Never create a
|
|
5666
5774
|
// third turn or guess at terminal text; make the failure visible instead.
|
|
5667
5775
|
if (turn.phase === "recovering") {
|
|
@@ -11563,6 +11671,8 @@ export class Daemon extends EventEmitter {
|
|
|
11563
11671
|
// as this backend's and resumed by the next start.
|
|
11564
11672
|
this.startupAdmission?.();
|
|
11565
11673
|
this.setAsideForeignSession();
|
|
11674
|
+
// A crash-loop-resume boot should attempt resume even though skipResume is false:
|
|
11675
|
+
// bootCrashLoopResume set at boot means we had a crash loop but try resume first.
|
|
11566
11676
|
const attemptedResume = !this.skipResume;
|
|
11567
11677
|
// A resume launch may get a longer budget than a fresh one (kiro: the
|
|
11568
11678
|
// conversation must come back from the backend before anything paints).
|
|
@@ -11647,6 +11757,20 @@ export class Daemon extends EventEmitter {
|
|
|
11647
11757
|
}
|
|
11648
11758
|
this.setSessionAside(proven ? "cli_reported_no_conversation" : "resume_failed_repeatedly");
|
|
11649
11759
|
this.skipResume = true;
|
|
11760
|
+
// If this was a crash-loop-resume attempt, the session is now proven
|
|
11761
|
+
// broken. Persist resumeFailed so the next restart goes fresh without
|
|
11762
|
+
// attempting resume again.
|
|
11763
|
+
if (this.bootCrashLoopResume) {
|
|
11764
|
+
try {
|
|
11765
|
+
writeFileSync(join(this.instanceDir, "crash-state.json"), JSON.stringify({
|
|
11766
|
+
resumeFailed: true,
|
|
11767
|
+
failedAt: Date.now(),
|
|
11768
|
+
}));
|
|
11769
|
+
}
|
|
11770
|
+
catch { /* best effort */ }
|
|
11771
|
+
this.logger.warn("Crash-loop-resume: session abandoned — next boot will go fresh");
|
|
11772
|
+
this.bootCrashLoopResume = false;
|
|
11773
|
+
}
|
|
11650
11774
|
}
|
|
11651
11775
|
// A fresh start that also failed retries once, as before. It never clears
|
|
11652
11776
|
// a session: nothing about a failed fresh launch says the stored
|
|
@@ -11664,9 +11788,37 @@ export class Daemon extends EventEmitter {
|
|
|
11664
11788
|
this.startupAdmission?.();
|
|
11665
11789
|
throw new Error("CLI failed to start after retry");
|
|
11666
11790
|
}
|
|
11791
|
+
// Fresh fallback succeeded. Clear any resumeFailed marker written during this
|
|
11792
|
+
// boot's setSessionAside path, so the next normal restart is not forced fresh.
|
|
11793
|
+
// NOTE: bootCrashLoopResume is already false here (cleared by setSessionAside path),
|
|
11794
|
+
// so check the marker directly rather than relying on the flag.
|
|
11795
|
+
try {
|
|
11796
|
+
const p = join(this.instanceDir, "crash-state.json");
|
|
11797
|
+
if (existsSync(p)) {
|
|
11798
|
+
const s = JSON.parse(readFileSync(p, "utf-8"));
|
|
11799
|
+
if (s?.resumeFailed === true)
|
|
11800
|
+
unlinkSync(p);
|
|
11801
|
+
}
|
|
11802
|
+
}
|
|
11803
|
+
catch { /* best effort */ }
|
|
11667
11804
|
}
|
|
11668
11805
|
else if (attemptedResume) {
|
|
11669
11806
|
resumedSuccessfully = true;
|
|
11807
|
+
if (this.bootCrashLoopResume) {
|
|
11808
|
+
// Resume succeeded after a crash loop — clear any stale resumeFailed marker
|
|
11809
|
+
// that might have been written by a concurrent write or a previous attempt,
|
|
11810
|
+
// so the next restart is not forced fresh.
|
|
11811
|
+
this.bootCrashLoopResume = false;
|
|
11812
|
+
try {
|
|
11813
|
+
const p = join(this.instanceDir, "crash-state.json");
|
|
11814
|
+
if (existsSync(p)) {
|
|
11815
|
+
const s = JSON.parse(readFileSync(p, "utf-8"));
|
|
11816
|
+
if (s?.resumeFailed === true)
|
|
11817
|
+
unlinkSync(p);
|
|
11818
|
+
}
|
|
11819
|
+
}
|
|
11820
|
+
catch { /* best effort */ }
|
|
11821
|
+
}
|
|
11670
11822
|
this.clearUnprovenResumeFailures();
|
|
11671
11823
|
// A resume needs the backend: its success is positive proof the backend
|
|
11672
11824
|
// is reachable again (a fresh prompt is local and proves nothing).
|