@songsid/agend 2.1.0-beta.31 → 2.1.0-beta.32

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.
@@ -149,6 +149,12 @@ node -e "let d='';process.stdin.on('data',c=>d+=c);process.stdin.on('end',()=>{t
149
149
  return [
150
150
  { pattern: /RESOURCE_EXHAUSTED|quota/i, type: "quota", action: "notify", message: "Quota exhausted" },
151
151
  { pattern: /error.*authentication|UNAUTHENTICATED/i, type: "auth_error", action: "restart", message: "Authentication error" },
152
+ // Model generation change pins the resumed session to a dead model placeholder
153
+ // (e.g. MODEL_PLACEHOLDER_M264) → every message returns "unknown model key".
154
+ // The CLI stays up, so this never self-recovers — force a fresh restart
155
+ // (skipRecoveryWait) that abandons the session so agy falls back to a valid
156
+ // model. skipRecoveryWait: the CLI is still at its prompt, not crashed.
157
+ { pattern: /unknown model key|failed to construct executor/i, type: "model_error", action: "restart", message: "Model no longer available — restarting with a fresh session", skipRecoveryWait: true },
152
158
  ];
153
159
  }
154
160
  getStartupDialogs() {
@@ -1 +1 @@
1
- {"version":3,"file":"antigravity.js","sourceRoot":"","sources":["../../src/backend/antigravity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"antigravity.js","sourceRoot":"","sources":["../../src/backend/antigravity.ts"],"names":[],"mappings":"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"}
@@ -34,7 +34,7 @@ export interface CliBackendConfig {
34
34
  /** Action to take when an error pattern is detected in PTY output. */
35
35
  export type ErrorActionType = "notify" | "failover" | "restart" | "pause";
36
36
  /** Categorizes detected errors for logging and response. */
37
- export type ErrorType = "rate_limit" | "auth_error" | "crash" | "network" | "quota" | "timeout";
37
+ export type ErrorType = "rate_limit" | "auth_error" | "crash" | "network" | "quota" | "timeout" | "model_error";
38
38
  export interface ErrorPattern {
39
39
  pattern: RegExp;
40
40
  type: ErrorType;
package/dist/daemon.d.ts CHANGED
@@ -110,6 +110,8 @@ export declare class Daemon extends EventEmitter {
110
110
  private lastSpawnAt;
111
111
  private crashTimestamps;
112
112
  private healthCheckPaused;
113
+ /** CLI pane availability, independent from the daemon process and tri-state. */
114
+ private processStatus;
113
115
  private spawning;
114
116
  private skipResume;
115
117
  private backgroundSessionRecoveryAttempted;
@@ -173,6 +175,12 @@ export declare class Daemon extends EventEmitter {
173
175
  constructor(name: string, config: InstanceConfig, instanceDir: string, topicMode?: boolean, backend?: CliBackend | undefined, controlClient?: TmuxControlClient | undefined, rootLogger?: Logger);
174
176
  start(): Promise<void>;
175
177
  private startHealthCheck;
178
+ /**
179
+ * Publish pane-process availability separately from idle/working/stuck.
180
+ * A dead remain-on-exit pane still contains the old ready prompt, so allowing
181
+ * the pane monitor to capture it would re-create a false idle state.
182
+ */
183
+ private setProcessStatus;
176
184
  /**
177
185
  * Periodically scan PTY output for backend-defined error patterns.
178
186
  *
package/dist/daemon.js CHANGED
@@ -276,6 +276,8 @@ export class Daemon extends EventEmitter {
276
276
  lastSpawnAt = 0;
277
277
  crashTimestamps = [];
278
278
  healthCheckPaused = false;
279
+ /** CLI pane availability, independent from the daemon process and tri-state. */
280
+ processStatus = "running";
279
281
  spawning = false;
280
282
  skipResume = false;
281
283
  backgroundSessionRecoveryAttempted = false;
@@ -519,6 +521,7 @@ export class Daemon extends EventEmitter {
519
521
  instanceName: this.name,
520
522
  ...snapshot,
521
523
  state: this.isPaused ? "paused" : snapshot.state,
524
+ processStatus: this.processStatus,
522
525
  pausedAt: this.lastPausedAt,
523
526
  });
524
527
  }
@@ -663,8 +666,10 @@ export class Daemon extends EventEmitter {
663
666
  if (this.runtimeMonitorsFrozen || this.healthCheckTimer)
664
667
  return;
665
668
  const { max_retries, backoff, reset_after } = this.config.restart_policy;
666
- if (max_retries <= 0)
667
- return; // restart disabled
669
+ // Liveness monitoring remains active when automatic restart is disabled;
670
+ // otherwise a dead pane leaves its last idle snapshot cached forever.
671
+ const configuredInterval = this.config.restart_policy.health_check_interval_ms ?? 30_000;
672
+ const healthCheckIntervalMs = Math.min(60_000, configuredInterval > 0 ? configuredInterval : 30_000);
668
673
  const scheduleNext = () => {
669
674
  if (this.runtimeMonitorsFrozen || this.healthCheckTimer)
670
675
  return;
@@ -719,11 +724,13 @@ export class Daemon extends EventEmitter {
719
724
  this.logger.debug({ exitCode }, `[health] pane exited with code: ${exitCode}`);
720
725
  // Normal exit (e.g. user Ctrl+C or /exit) — no crash, no respawn
721
726
  if (paneStatus && exitCode === 0) {
727
+ this.setProcessStatus("stopped");
722
728
  this.logger.info("CLI exited normally (code 0) — pausing health check");
723
729
  await this.tmux.killWindow();
724
730
  this.healthCheckPaused = true;
725
731
  return;
726
732
  }
733
+ this.setProcessStatus("crashed");
727
734
  // Distinguish tmux server crash from single window crash.
728
735
  // nullReason records *why* getPaneStatus returned null (for diagnosing
729
736
  // whether this was a real window loss or a transient query failure).
@@ -801,6 +808,7 @@ export class Daemon extends EventEmitter {
801
808
  await new Promise(r => setTimeout(r, 2_000));
802
809
  try {
803
810
  await this.spawnClaudeWindow();
811
+ this.setProcessStatus("running");
804
812
  this.logger.info("Recovered from background session conflict");
805
813
  this.emit("crash_respawn", this.name);
806
814
  }
@@ -826,6 +834,11 @@ export class Daemon extends EventEmitter {
826
834
  }
827
835
  // Append to crash history
828
836
  this.appendCrashHistory({ exitCode, lastOutput, crashType, reason: nullReason });
837
+ if (max_retries <= 0) {
838
+ this.healthCheckPaused = true;
839
+ this.logger.warn(`${cliLabel} window died — automatic restart is disabled`);
840
+ return;
841
+ }
829
842
  // Detect rapid crash: sliding window — 3+ crashes in 5 minutes
830
843
  this.crashTimestamps.push(Date.now());
831
844
  const crashWindowMs = 5 * 60_000;
@@ -901,6 +914,7 @@ export class Daemon extends EventEmitter {
901
914
  }
902
915
  catch { /* may not exist */ }
903
916
  }
917
+ this.setProcessStatus("running");
904
918
  this.logger.info({ resumed }, `Respawned ${cliLabel} window after crash`);
905
919
  this.emit("crash_respawn", this.name);
906
920
  }
@@ -908,10 +922,35 @@ export class Daemon extends EventEmitter {
908
922
  this.logger.error({ err }, `Failed to respawn ${cliLabel} window`);
909
923
  }
910
924
  scheduleNext();
911
- }, this.config.restart_policy.health_check_interval_ms ?? 30_000);
925
+ }, healthCheckIntervalMs);
912
926
  };
913
927
  scheduleNext();
914
928
  }
929
+ /**
930
+ * Publish pane-process availability separately from idle/working/stuck.
931
+ * A dead remain-on-exit pane still contains the old ready prompt, so allowing
932
+ * the pane monitor to capture it would re-create a false idle state.
933
+ */
934
+ setProcessStatus(status) {
935
+ if (this.processStatus === status)
936
+ return;
937
+ this.processStatus = status;
938
+ if (status === "running") {
939
+ this.startInstanceStateMonitor();
940
+ }
941
+ else {
942
+ this.stopInstanceStateMonitor();
943
+ // Force the next ready capture to emit a fresh transition after respawn.
944
+ this.instanceState = "working";
945
+ }
946
+ this.ipcServer?.broadcast({
947
+ type: "instance_process_state",
948
+ instanceName: this.name,
949
+ status,
950
+ observedAt: Date.now(),
951
+ });
952
+ this.emit("instance_process_state", { name: this.name, status });
953
+ }
915
954
  /**
916
955
  * Periodically scan PTY output for backend-defined error patterns.
917
956
  *