mthds 0.6.4 → 0.7.0

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.
@@ -7,6 +7,7 @@ import { BINARY_RECOVERY, buildInstallCommand } from "../binaries.js";
7
7
  import { checkBinaryVersion } from "../../installer/runtime/version-check.js";
8
8
  import { listConfig } from "../../config/config.js";
9
9
  import { inspectCodexConfig } from "./codex-config.js";
10
+ import { inspectLegacyCodexHook } from "./codex.js";
10
11
  // ── Output format ───────────────────────────────────────────────────
11
12
  export const OutputFormat = {
12
13
  MARKDOWN: "markdown",
@@ -27,7 +28,7 @@ function getBinaryPath(bin) {
27
28
  function escapeCell(value) {
28
29
  return value.replace(/\|/g, "\\|");
29
30
  }
30
- function formatDoctorMarkdown(healthy, dependencies, config, issues, codex) {
31
+ function formatDoctorMarkdown(healthy, dependencies, config, issues, codex, legacyHook) {
31
32
  const lines = [];
32
33
  lines.push(`# Doctor Report`);
33
34
  lines.push("");
@@ -64,21 +65,33 @@ function formatDoctorMarkdown(healthy, dependencies, config, issues, codex) {
64
65
  lines.push("## Codex");
65
66
  lines.push("");
66
67
  if (!codex.exists) {
67
- lines.push(`- No ~/.codex/config.toml found. Run \`mthds-agent codex apply-config\` to create one with sandbox network access.`);
68
+ lines.push(`- No ~/.codex/config.toml found. Run \`mthds-agent codex apply-config\` to create one.`);
68
69
  }
69
70
  else if (codex.parse_error) {
70
71
  lines.push(`- [ERROR] Could not parse ${codex.config_file}: ${codex.parse_error}`);
71
72
  }
72
73
  else {
73
- if (codex.needs_change) {
74
- lines.push(`- [WARN] Sandbox network access not enabled. Run \`mthds-agent codex apply-config\` to add \`[${codex.needs_change.table}] ${codex.needs_change.key} = ${codex.needs_change.value}\`.`);
74
+ if (codex.needs_changes.length > 0) {
75
+ const keys = codex.needs_changes
76
+ .map((change) => `[${change.table}] ${change.key} = ${change.value}`)
77
+ .join(", ");
78
+ lines.push(`- [WARN] Required config not set (${keys}). Run \`mthds-agent codex apply-config\`.`);
75
79
  }
76
80
  else {
77
- lines.push(`- Sandbox network access: ok`);
81
+ lines.push(`- Required config: ok`);
78
82
  }
79
- for (const w of codex.warnings) {
80
- lines.push(`- [WARN] ${w.message}`);
83
+ for (const conflict of codex.conflicts) {
84
+ lines.push(`- [ERROR] [${conflict.table}] ${conflict.key} = ${conflict.current} conflicts with the mthds plugin (needs ${conflict.required}). Fix it by hand.`);
81
85
  }
86
+ for (const warning of codex.warnings) {
87
+ lines.push(`- [WARN] ${warning.message}`);
88
+ }
89
+ }
90
+ if (legacyHook.parse_error) {
91
+ lines.push(`- [WARN] Could not read ${legacyHook.hooks_file}: ${legacyHook.parse_error}`);
92
+ }
93
+ else if (legacyHook.has_legacy_entry) {
94
+ lines.push(`- [WARN] Obsolete mthds hook entry in ${legacyHook.hooks_file}. Run \`mthds-agent codex apply-config\` to remove it — the hook now ships with the plugin.`);
82
95
  }
83
96
  lines.push("");
84
97
  // Issues
@@ -177,16 +190,25 @@ export async function agentDoctor(format = OutputFormat.MARKDOWN) {
177
190
  });
178
191
  }
179
192
  }
180
- // Codex sandbox config (read-only inspection — doctor never writes).
193
+ // Codex config + hooks (read-only inspection — doctor never writes).
181
194
  const codex = inspectCodexConfig();
182
- if (codex.needs_change) {
195
+ if (codex.needs_changes.length > 0) {
196
+ const keys = codex.needs_changes
197
+ .map((change) => `[${change.table}] ${change.key} = ${change.value}`)
198
+ .join(", ");
183
199
  issues.push({
184
200
  severity: "warning",
185
- message: `Codex sandbox network not enabled in ${codex.config_file}. Run \`mthds-agent codex apply-config\`.`,
201
+ message: `Codex config missing required keys (${keys}) in ${codex.config_file}. Run \`mthds-agent codex apply-config\`.`,
202
+ });
203
+ }
204
+ for (const conflict of codex.conflicts) {
205
+ issues.push({
206
+ severity: "error",
207
+ message: `Codex config conflict: [${conflict.table}] ${conflict.key} = ${conflict.current} (the mthds plugin needs ${conflict.required}). Fix it by hand in ${codex.config_file}.`,
186
208
  });
187
209
  }
188
- for (const w of codex.warnings) {
189
- issues.push({ severity: "warning", message: `Codex: ${w.message}` });
210
+ for (const warning of codex.warnings) {
211
+ issues.push({ severity: "warning", message: `Codex: ${warning.message}` });
190
212
  }
191
213
  if (codex.parse_error) {
192
214
  issues.push({
@@ -194,6 +216,19 @@ export async function agentDoctor(format = OutputFormat.MARKDOWN) {
194
216
  message: `Codex config parse error in ${codex.config_file}: ${codex.parse_error}`,
195
217
  });
196
218
  }
219
+ const legacyHook = inspectLegacyCodexHook();
220
+ if (legacyHook.has_legacy_entry) {
221
+ issues.push({
222
+ severity: "warning",
223
+ message: `Obsolete mthds hook entry in ${legacyHook.hooks_file}. Run \`mthds-agent codex apply-config\` to remove it — the hook now ships with the plugin.`,
224
+ });
225
+ }
226
+ if (legacyHook.parse_error) {
227
+ issues.push({
228
+ severity: "warning",
229
+ message: `Could not read ${legacyHook.hooks_file} to check for an obsolete mthds hook entry: ${legacyHook.parse_error}`,
230
+ });
231
+ }
197
232
  const hasErrors = issues.some((issue) => issue.severity === "error");
198
233
  const healthy = !hasErrors;
199
234
  if (format === OutputFormat.JSON) {
@@ -203,10 +238,11 @@ export async function agentDoctor(format = OutputFormat.MARKDOWN) {
203
238
  config: configEntries,
204
239
  issues,
205
240
  codex,
241
+ legacy_hook: legacyHook,
206
242
  });
207
243
  }
208
244
  else {
209
- process.stdout.write(formatDoctorMarkdown(healthy, dependencies, configEntries, issues, codex));
245
+ process.stdout.write(formatDoctorMarkdown(healthy, dependencies, configEntries, issues, codex, legacyHook));
210
246
  }
211
247
  }
212
248
  //# sourceMappingURL=doctor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/agent/commands/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../../src/agent/commands/doctor.ts"],"names":[],"mappings":"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"}
@@ -9,20 +9,17 @@
9
9
  * The preamble captures stdout via: mthds-agent update-check 2>/dev/null || true
10
10
  * and checks for the presence of these keywords. Plain text, not agentSuccess JSON.
11
11
  */
12
- import { readFileSync, unlinkSync } from "node:fs";
13
- import { join } from "node:path";
14
12
  import { createRequire } from "node:module";
15
13
  import { agentSuccess } from "../output.js";
16
14
  import { BINARY_RECOVERY } from "../binaries.js";
17
15
  import { checkBinaryVersion } from "../../installer/runtime/version-check.js";
18
16
  import { loadConfig } from "../../config/config.js";
19
17
  import { Runners } from "../../runners/types.js";
20
- import { readCache, writeCache, clearCache, computeAggregate, STATE_DIR, } from "../update-cache.js";
18
+ import { readCache, writeCache, clearCache, computeAggregate, readAndClearUpgradeMarker, } from "../update-cache.js";
21
19
  import { isSnoozed, writeSnooze, clearSnooze, computeVersionKey, } from "../snooze.js";
22
20
  import { checkPluginVersion, detectHost } from "../plugin-version.js";
23
21
  const require = createRequire(import.meta.url);
24
22
  const pkg = require("../../../package.json");
25
- const JUST_UPGRADED_PATH = join(STATE_DIR, "just-upgraded-from");
26
23
  // ── Main ───────────────────────────────────────────────────────────
27
24
  export async function agentUpdateCheck(options) {
28
25
  // Let errors propagate to non-zero exit so the preamble's
@@ -153,32 +150,6 @@ function getOrRefreshPayload(runner) {
153
150
  writeCache({ aggregate, payload });
154
151
  return payload;
155
152
  }
156
- function readAndClearUpgradeMarker() {
157
- let content;
158
- try {
159
- content = readFileSync(JUST_UPGRADED_PATH, "utf-8");
160
- }
161
- catch {
162
- return null; // File doesn't exist or unreadable
163
- }
164
- // Delete marker before parsing — even corrupt markers should be consumed
165
- try {
166
- unlinkSync(JUST_UPGRADED_PATH);
167
- }
168
- catch {
169
- // ignore
170
- }
171
- try {
172
- const parsed = JSON.parse(content);
173
- if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
174
- return null;
175
- }
176
- return parsed;
177
- }
178
- catch {
179
- return null;
180
- }
181
- }
182
153
  function payloadVersions(payload) {
183
154
  const result = {
184
155
  mthds_agent: payload.mthds_agent.v,
@@ -1 +1 @@
1
- {"version":3,"file":"update-check.js","sourceRoot":"","sources":["../../../src/agent/commands/update-check.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"update-check.js","sourceRoot":"","sources":["../../../src/agent/commands/update-check.ts"],"names":[],"mappings":"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"}
@@ -14,13 +14,11 @@
14
14
  * depends on the configured runner: always plxt; add pipelex-agent when
15
15
  * runner === "pipelex".
16
16
  */
17
- import { writeFileSync } from "node:fs";
18
- import { join } from "node:path";
19
17
  import { requireUv, uvToolInstallSync } from "../../installer/runtime/installer.js";
20
18
  import { checkBinaryVersion } from "../../installer/runtime/version-check.js";
21
19
  import { BINARY_RECOVERY } from "../binaries.js";
22
20
  import { agentError, AGENT_ERROR_DOMAINS } from "../output.js";
23
- import { clearCache, ensureStateDir, STATE_DIR } from "../update-cache.js";
21
+ import { clearCache, writeUpgradeMarker } from "../update-cache.js";
24
22
  import { clearSnooze } from "../snooze.js";
25
23
  import { loadConfig } from "../../config/config.js";
26
24
  import { Runners } from "../../runners/types.js";
@@ -128,15 +126,8 @@ export async function agentUpgrade() {
128
126
  const allSucceeded = failed.size === 0;
129
127
  const allFailed = succeeded.size === 0;
130
128
  if (allSucceeded) {
131
- // Write marker, clear cache + snooze
132
- try {
133
- ensureStateDir();
134
- writeFileSync(join(STATE_DIR, "just-upgraded-from"), JSON.stringify(markerData), "utf-8");
135
- }
136
- catch (err) {
137
- // Marker write failure should not prevent reporting success
138
- process.stderr.write(`Warning: could not write upgrade marker: ${errorMsg(err)}.\n`);
139
- }
129
+ // Write marker (sandbox-aware via $TMPDIR fallback), clear cache + snooze
130
+ writeUpgradeMarker(markerData);
140
131
  clearCache();
141
132
  clearSnooze();
142
133
  process.stdout.write("UPGRADE_COMPLETE " + JSON.stringify({ upgraded: upgradedEntries }) + "\n");
@@ -1 +1 @@
1
- {"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../../src/agent/commands/upgrade.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../../src/agent/commands/upgrade.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@
11
11
  */
12
12
  import type { BinaryCheckEntry } from "./update-cache.js";
13
13
  /** Minimum plugin version this mthds-agent release requires. */
14
- export declare const MIN_PLUGIN_VERSION = ">=0.10.3";
14
+ export declare const MIN_PLUGIN_VERSION = ">=0.11.0";
15
15
  /** Keys in installed_plugins.json for the mthds plugin (prod and dev targets). */
16
16
  export declare const PLUGIN_KEYS: readonly ["mthds@mthds-plugins", "mthds-dev@mthds-plugins"];
17
17
  /** Path to Claude Code's installed plugins registry. */
@@ -15,7 +15,7 @@ import { homedir } from "node:os";
15
15
  import semver from "semver";
16
16
  // ── Constants ──────────────────────────────────────────────────────
17
17
  /** Minimum plugin version this mthds-agent release requires. */
18
- export const MIN_PLUGIN_VERSION = ">=0.10.3";
18
+ export const MIN_PLUGIN_VERSION = ">=0.11.0";
19
19
  /** Keys in installed_plugins.json for the mthds plugin (prod and dev targets). */
20
20
  export const PLUGIN_KEYS = [
21
21
  "mthds@mthds-plugins",
@@ -1,9 +1,20 @@
1
1
  /**
2
2
  * Snooze state for update-check upgrade prompts.
3
3
  *
4
- * Manages ~/.mthds/state/update-snoozed — a single-line file:
4
+ * Manages a single-line file:
5
5
  * <versionKey> <level> <epoch>
6
6
  *
7
+ * Primary location: ~/.mthds/state/update-snoozed.
8
+ * Fallback location: $TMPDIR/mthds-agent/update-snoozed — used when the
9
+ * primary location is not writable (Codex `workspaceWrite` sandbox permits
10
+ * writes only under cwd / configured roots / $TMPDIR, not under the user's
11
+ * home dir). Same dual-path policy as the update-check cache and the
12
+ * just-upgraded marker — see update-cache.ts.
13
+ *
14
+ * Reads consult both paths and prefer the newer mtime, so escalation
15
+ * (level 1 → 2 → 3+) stays correct as sessions move between sandboxed and
16
+ * non-sandboxed contexts.
17
+ *
7
18
  * Version key is a plain concatenation of binary statuses (human-readable).
8
19
  * Escalating backoff: level 1 = 24h, level 2 = 48h, level 3+ = 7d.
9
20
  * Snooze resets when the version key changes (any binary constraint updated).
@@ -20,13 +31,28 @@ export interface SnoozeState {
20
31
  * Changes whenever any binary's status or constraint changes.
21
32
  */
22
33
  export declare function computeVersionKey(payload: CachePayload): string;
23
- /** Read current snooze state. Returns null if missing or corrupt. */
34
+ /**
35
+ * Read current snooze state. Returns null if missing or corrupt.
36
+ *
37
+ * Inspects both the primary and the fallback path; when both have valid
38
+ * contents, the one with the newer mtime wins. This keeps escalation
39
+ * correct when a session moves between sandboxed and non-sandboxed contexts:
40
+ * the older file is a stale snapshot from before the redirect happened.
41
+ */
24
42
  export declare function readSnooze(): SnoozeState | null;
25
43
  /**
26
- * Write snooze state. Escalates level if same versionKey, resets if different.
44
+ * Write snooze state. Escalates level if same versionKey, resets to 1 if
45
+ * different. Sandbox-aware: falls back to $TMPDIR when ~/.mthds/state/ is
46
+ * not writable. Write failures emit a one-shot stderr warning per process.
27
47
  */
28
48
  export declare function writeSnooze(versionKey: string): void;
29
49
  /** Check if snooze is active for the given versionKey. */
30
50
  export declare function isSnoozed(versionKey: string): boolean;
31
- /** Clear snooze file. */
51
+ /**
52
+ * Clear snooze. Hits both primary and fallback paths. When unlink is blocked
53
+ * (sandbox EPERM), overwrites with empty content so the next read parses as
54
+ * null. Warns at most once per process when a present file cannot be cleared
55
+ * by either route. Silent when both paths were absent to begin with — no
56
+ * spurious 0-byte file is created in that case.
57
+ */
32
58
  export declare function clearSnooze(): void;
@@ -1,23 +1,41 @@
1
1
  /**
2
2
  * Snooze state for update-check upgrade prompts.
3
3
  *
4
- * Manages ~/.mthds/state/update-snoozed — a single-line file:
4
+ * Manages a single-line file:
5
5
  * <versionKey> <level> <epoch>
6
6
  *
7
+ * Primary location: ~/.mthds/state/update-snoozed.
8
+ * Fallback location: $TMPDIR/mthds-agent/update-snoozed — used when the
9
+ * primary location is not writable (Codex `workspaceWrite` sandbox permits
10
+ * writes only under cwd / configured roots / $TMPDIR, not under the user's
11
+ * home dir). Same dual-path policy as the update-check cache and the
12
+ * just-upgraded marker — see update-cache.ts.
13
+ *
14
+ * Reads consult both paths and prefer the newer mtime, so escalation
15
+ * (level 1 → 2 → 3+) stays correct as sessions move between sandboxed and
16
+ * non-sandboxed contexts.
17
+ *
7
18
  * Version key is a plain concatenation of binary statuses (human-readable).
8
19
  * Escalating backoff: level 1 = 24h, level 2 = 48h, level 3+ = 7d.
9
20
  * Snooze resets when the version key changes (any binary constraint updated).
10
21
  */
11
22
  import { join } from "node:path";
12
- import { readFileSync, writeFileSync, unlinkSync } from "node:fs";
13
- import { STATE_DIR, ensureStateDir } from "./update-cache.js";
23
+ import { readFileSync, statSync, existsSync } from "node:fs";
24
+ import { homedir, tmpdir } from "node:os";
25
+ import { SANDBOX_WRITE_ERRORS, writeFileAt, invalidateFileAt, } from "./update-cache.js";
14
26
  // ── Constants ──────────────────────────────────────────────────────
15
- const SNOOZE_PATH = join(STATE_DIR, "update-snoozed");
27
+ const STATE_DIR = join(homedir(), ".mthds", "state");
28
+ const PRIMARY_SNOOZE_PATH = join(STATE_DIR, "update-snoozed");
29
+ const FALLBACK_DIR = join(tmpdir(), "mthds-agent");
30
+ const FALLBACK_SNOOZE_PATH = join(FALLBACK_DIR, "update-snoozed");
16
31
  const SNOOZE_DURATIONS_MS = {
17
32
  1: 24 * 60 * 60 * 1000, // 24h
18
33
  2: 48 * 60 * 60 * 1000, // 48h
19
34
  };
20
35
  const SNOOZE_DEFAULT_MS = 7 * 24 * 60 * 60 * 1000; // 7d for level 3+
36
+ // ── Per-process warning latches ────────────────────────────────────
37
+ let warnedAboutSnoozeWrite = false;
38
+ let warnedAboutSnoozeClear = false;
21
39
  // ── Functions ──────────────────────────────────────────────────────
22
40
  /**
23
41
  * Compute a human-readable version key from a cache payload.
@@ -37,22 +55,17 @@ export function computeVersionKey(payload) {
37
55
  }
38
56
  return parts.join(":");
39
57
  }
40
- /** Read current snooze state. Returns null if missing or corrupt. */
41
- export function readSnooze() {
42
- let content;
43
- try {
44
- content = readFileSync(SNOOZE_PATH, "utf-8").trim();
45
- }
46
- catch {
58
+ function parseSnoozeContent(content) {
59
+ const trimmed = content.trim();
60
+ if (!trimmed)
47
61
  return null;
48
- }
49
62
  // Format: "<versionKey> <level> <epoch>"
50
63
  // The version key may contain colons but not spaces, so split from the right.
51
- const lastSpace = content.lastIndexOf(" ");
64
+ const lastSpace = trimmed.lastIndexOf(" ");
52
65
  if (lastSpace === -1)
53
66
  return null;
54
- const epochStr = content.slice(lastSpace + 1);
55
- const rest = content.slice(0, lastSpace);
67
+ const epochStr = trimmed.slice(lastSpace + 1);
68
+ const rest = trimmed.slice(0, lastSpace);
56
69
  const secondLastSpace = rest.lastIndexOf(" ");
57
70
  if (secondLastSpace === -1)
58
71
  return null;
@@ -64,27 +77,67 @@ export function readSnooze() {
64
77
  return null;
65
78
  return { versionKey, level, epoch };
66
79
  }
80
+ function readSnoozeAt(path) {
81
+ let mtimeMs;
82
+ let content;
83
+ try {
84
+ mtimeMs = statSync(path).mtimeMs;
85
+ content = readFileSync(path, "utf-8");
86
+ }
87
+ catch {
88
+ return null;
89
+ }
90
+ const state = parseSnoozeContent(content);
91
+ if (!state)
92
+ return null;
93
+ return { state, mtimeMs };
94
+ }
95
+ /**
96
+ * Read current snooze state. Returns null if missing or corrupt.
97
+ *
98
+ * Inspects both the primary and the fallback path; when both have valid
99
+ * contents, the one with the newer mtime wins. This keeps escalation
100
+ * correct when a session moves between sandboxed and non-sandboxed contexts:
101
+ * the older file is a stale snapshot from before the redirect happened.
102
+ */
103
+ export function readSnooze() {
104
+ const primary = readSnoozeAt(PRIMARY_SNOOZE_PATH);
105
+ const fallback = readSnoozeAt(FALLBACK_SNOOZE_PATH);
106
+ if (!primary)
107
+ return fallback?.state ?? null;
108
+ if (!fallback)
109
+ return primary.state;
110
+ return fallback.mtimeMs > primary.mtimeMs ? fallback.state : primary.state;
111
+ }
67
112
  /**
68
- * Write snooze state. Escalates level if same versionKey, resets if different.
113
+ * Write snooze state. Escalates level if same versionKey, resets to 1 if
114
+ * different. Sandbox-aware: falls back to $TMPDIR when ~/.mthds/state/ is
115
+ * not writable. Write failures emit a one-shot stderr warning per process.
69
116
  */
70
117
  export function writeSnooze(versionKey) {
71
- ensureStateDir();
72
118
  const existing = readSnooze();
73
- let level;
74
- if (existing && existing.versionKey === versionKey) {
75
- level = existing.level + 1;
76
- }
77
- else {
78
- level = 1;
79
- }
119
+ const level = existing && existing.versionKey === versionKey ? existing.level + 1 : 1;
80
120
  const content = `${versionKey} ${level} ${Date.now()}\n`;
81
- try {
82
- writeFileSync(SNOOZE_PATH, content, "utf-8");
83
- }
84
- catch (err) {
85
- const code = err.code;
86
- process.stderr.write(`Warning: could not write snooze state (${code ?? String(err)}).\n`);
121
+ const primary = writeFileAt(STATE_DIR, PRIMARY_SNOOZE_PATH, content);
122
+ if (primary.ok)
123
+ return;
124
+ if (primary.code && SANDBOX_WRITE_ERRORS.has(primary.code)) {
125
+ const fallback = writeFileAt(FALLBACK_DIR, FALLBACK_SNOOZE_PATH, content);
126
+ if (fallback.ok)
127
+ return;
128
+ emitSnoozeWriteWarning(primary.code, fallback.code);
129
+ return;
87
130
  }
131
+ emitSnoozeWriteWarning(primary.code);
132
+ }
133
+ function emitSnoozeWriteWarning(primaryCode, fallbackCode) {
134
+ if (warnedAboutSnoozeWrite)
135
+ return;
136
+ warnedAboutSnoozeWrite = true;
137
+ const detail = fallbackCode
138
+ ? `primary=${primaryCode ?? "?"}, fallback=${fallbackCode}`
139
+ : (primaryCode ?? "?");
140
+ process.stderr.write(`Warning: could not write snooze state (${detail}). The upgrade prompt may re-appear next time.\n`);
88
141
  }
89
142
  /** Check if snooze is active for the given versionKey. */
90
143
  export function isSnoozed(versionKey) {
@@ -99,13 +152,24 @@ export function isSnoozed(versionKey) {
99
152
  // Negative elapsed beyond 1 minute means clock skew — treat snooze as expired
100
153
  return elapsed >= -60_000 && elapsed < duration;
101
154
  }
102
- /** Clear snooze file. */
155
+ /**
156
+ * Clear snooze. Hits both primary and fallback paths. When unlink is blocked
157
+ * (sandbox EPERM), overwrites with empty content so the next read parses as
158
+ * null. Warns at most once per process when a present file cannot be cleared
159
+ * by either route. Silent when both paths were absent to begin with — no
160
+ * spurious 0-byte file is created in that case.
161
+ */
103
162
  export function clearSnooze() {
104
- try {
105
- unlinkSync(SNOOZE_PATH);
163
+ let blocked = false;
164
+ for (const path of [PRIMARY_SNOOZE_PATH, FALLBACK_SNOOZE_PATH]) {
165
+ if (!existsSync(path))
166
+ continue;
167
+ if (!invalidateFileAt(path))
168
+ blocked = true;
106
169
  }
107
- catch {
108
- // File may not exist — that's fine
170
+ if (blocked && !warnedAboutSnoozeClear) {
171
+ warnedAboutSnoozeClear = true;
172
+ process.stderr.write(`Warning: could not clear snooze state. The upgrade prompt may stay suppressed until the TTL expires.\n`);
109
173
  }
110
174
  }
111
175
  //# sourceMappingURL=snooze.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"snooze.js","sourceRoot":"","sources":["../../src/agent/snooze.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAW9D,sEAAsE;AAEtE,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;AAEtD,MAAM,mBAAmB,GAA2B;IAClD,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,MAAM;IAC9B,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,MAAM;CAC/B,CAAC;AACF,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,kBAAkB;AAErE,sEAAsE;AAEtE;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAqB;IACrD,MAAM,KAAK,GAAG;QACZ,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;KACtD,CAAC;IACF,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;QAC1B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACxE,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACpD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,UAAU;IACxB,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC;QACH,OAAO,GAAG,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IAED,yCAAyC;IACzC,8EAA8E;IAC9E,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,SAAS,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAClC,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;IAE9C,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IACzC,MAAM,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC9C,IAAI,eAAe,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAExC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC;IAEjD,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACrC,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAE3E,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,UAAkB;IAC5C,cAAc,EAAE,CAAC;IAEjB,MAAM,QAAQ,GAAG,UAAU,EAAE,CAAC;IAC9B,IAAI,KAAa,CAAC;IAClB,IAAI,QAAQ,IAAI,QAAQ,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;QACnD,KAAK,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC;IAC7B,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,CAAC,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,UAAU,IAAI,KAAK,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC;IACzD,IAAI,CAAC;QACH,aAAa,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,GAAI,GAA6B,CAAC,IAAI,CAAC;QACjD,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,0CAA0C,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,CACpE,CAAC;IACJ,CAAC;AACH,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,SAAS,CAAC,UAAkB;IAC1C,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC;IAC3B,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IAEzB,yEAAyE;IACzE,IAAI,KAAK,CAAC,UAAU,KAAK,UAAU;QAAE,OAAO,KAAK,CAAC;IAElD,MAAM,QAAQ,GAAG,mBAAmB,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,iBAAiB,CAAC;IACvE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC;IACzC,8EAA8E;IAC9E,OAAO,OAAO,IAAI,CAAC,MAAM,IAAI,OAAO,GAAG,QAAQ,CAAC;AAClD,CAAC;AAED,yBAAyB;AACzB,MAAM,UAAU,WAAW;IACzB,IAAI,CAAC;QACH,UAAU,CAAC,WAAW,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,mCAAmC;IACrC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"snooze.js","sourceRoot":"","sources":["../../src/agent/snooze.ts"],"names":[],"mappings":"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"}