codex-multi-auth 0.1.1 → 0.1.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.
Files changed (34) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +5 -4
  3. package/assets/readme-hero.svg +31 -31
  4. package/dist/lib/codex-manager.d.ts.map +1 -1
  5. package/dist/lib/codex-manager.js +1 -2
  6. package/dist/lib/codex-manager.js.map +1 -1
  7. package/dist/lib/context-overflow.js +10 -10
  8. package/dist/lib/prompts/codex.js +2 -2
  9. package/dist/lib/runtime-paths.d.ts.map +1 -1
  10. package/dist/lib/runtime-paths.js +31 -5
  11. package/dist/lib/runtime-paths.js.map +1 -1
  12. package/dist/lib/storage/paths.d.ts.map +1 -1
  13. package/dist/lib/storage/paths.js +24 -6
  14. package/dist/lib/storage/paths.js.map +1 -1
  15. package/dist/lib/storage.d.ts.map +1 -1
  16. package/dist/lib/storage.js +184 -49
  17. package/dist/lib/storage.js.map +1 -1
  18. package/node_modules/@codex-ai/plugin/dist/index.d.ts +1 -1
  19. package/node_modules/@codex-ai/plugin/dist/tool.d.ts +41 -41
  20. package/node_modules/@codex-ai/plugin/dist/tool.js +28 -28
  21. package/package.json +1 -1
  22. package/scripts/audit-dev-allowlist.js +128 -128
  23. package/scripts/bench-format/hashline-v2.mjs +642 -642
  24. package/scripts/bench-format/render.mjs +496 -496
  25. package/scripts/bench-format/stats.mjs +54 -54
  26. package/scripts/bench-format/tasks.mjs +151 -151
  27. package/scripts/benchmark-render-dashboard.mjs +49 -49
  28. package/scripts/copy-oauth-success.js +37 -37
  29. package/scripts/test-all-models.sh +7 -7
  30. package/scripts/validate-model-map.sh +7 -7
  31. package/vendor/codex-ai-plugin/dist/index.d.ts +1 -1
  32. package/vendor/codex-ai-plugin/dist/tool.d.ts +41 -41
  33. package/vendor/codex-ai-plugin/dist/tool.js +28 -28
  34. package/vendor/codex-ai-sdk/dist/index.d.ts +3 -3
@@ -1,6 +1,31 @@
1
1
  import { homedir } from "node:os";
2
- import { join } from "node:path";
2
+ import { join, win32 } from "node:path";
3
3
  import { existsSync } from "node:fs";
4
+ function firstNonEmpty(values) {
5
+ for (const value of values) {
6
+ const trimmed = (value ?? "").trim();
7
+ if (trimmed.length > 0) {
8
+ return trimmed;
9
+ }
10
+ }
11
+ return null;
12
+ }
13
+ function getResolvedUserHomeDir() {
14
+ if (process.platform === "win32") {
15
+ const homeDrive = (process.env.HOMEDRIVE ?? "").trim();
16
+ const homePath = (process.env.HOMEPATH ?? "").trim();
17
+ const drivePathHome = homeDrive.length > 0 && homePath.length > 0
18
+ ? win32.resolve(`${homeDrive}\\`, homePath)
19
+ : undefined;
20
+ return (firstNonEmpty([
21
+ process.env.USERPROFILE,
22
+ process.env.HOME,
23
+ drivePathHome,
24
+ homedir(),
25
+ ]) ?? homedir());
26
+ }
27
+ return firstNonEmpty([process.env.HOME, homedir()]) ?? homedir();
28
+ }
4
29
  /**
5
30
  * Resolve the Codex home directory path used by the CLI, honoring an environment override or a sensible default.
6
31
  *
@@ -10,7 +35,7 @@ import { existsSync } from "node:fs";
10
35
  */
11
36
  export function getCodexHomeDir() {
12
37
  const fromEnv = (process.env.CODEX_HOME ?? "").trim();
13
- return fromEnv.length > 0 ? fromEnv : join(homedir(), ".codex");
38
+ return fromEnv.length > 0 ? fromEnv : join(getResolvedUserHomeDir(), ".codex");
14
39
  }
15
40
  /**
16
41
  * Returns a deduplicated list of path strings preserving the first occurrence order.
@@ -89,10 +114,11 @@ function hasAccountsStorage(dir) {
89
114
  * @returns An array of unique, trimmed directory paths to probe for Codex home data, in prioritized order.
90
115
  */
91
116
  function getFallbackCodexHomeDirs() {
117
+ const userHome = getResolvedUserHomeDir();
92
118
  return deduplicatePaths([
93
119
  getCodexHomeDir(),
94
- join(homedir(), "DevTools", "config", "codex"),
95
- join(homedir(), ".codex"),
120
+ join(userHome, "DevTools", "config", "codex"),
121
+ join(userHome, ".codex"),
96
122
  ]);
97
123
  }
98
124
  /**
@@ -177,6 +203,6 @@ export function getCodexLogDir() {
177
203
  * @returns The filesystem path for the legacy directory (e.g. `/home/alice/.codex`).
178
204
  */
179
205
  export function getLegacyCodexDir() {
180
- return join(homedir(), ".codex");
206
+ return join(getResolvedUserHomeDir(), ".codex");
181
207
  }
182
208
  //# sourceMappingURL=runtime-paths.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-paths.js","sourceRoot":"","sources":["../../lib/runtime-paths.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime-paths.js","sourceRoot":"","sources":["../../lib/runtime-paths.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../../lib/storage/paths.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA8HH;;;;;;GAMG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE/D;AAwCD;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAQhE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAErE;AAED;;;;;;;;;GASG;AACH,wBAAgB,iCAAiC,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CA0C7E;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAiB/D;AAcD,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAoBpD"}
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../../lib/storage/paths.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA+IH;;;;;;GAMG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE/D;AAwCD;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAQhE;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAErE;AAED;;;;;;;;;GASG;AACH,wBAAgB,iCAAiC,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CA0C7E;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAqB/D;AAcD,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAoBpD"}
@@ -2,7 +2,7 @@
2
2
  * Path resolution utilities for account storage.
3
3
  * Extracted from storage.ts to reduce module size.
4
4
  */
5
- import { existsSync, readFileSync, statSync } from "node:fs";
5
+ import { existsSync, readFileSync, realpathSync, statSync } from "node:fs";
6
6
  import { createHash } from "node:crypto";
7
7
  import { basename, dirname, isAbsolute, join, relative, resolve, win32 } from "node:path";
8
8
  import { homedir, tmpdir } from "node:os";
@@ -77,6 +77,21 @@ function normalizePathForIdentityCheck(pathValue) {
77
77
  const normalizedResolved = normalizePathDelimiters(resolvedPath);
78
78
  return process.platform === "win32" ? normalizedResolved.toLowerCase() : normalizedResolved;
79
79
  }
80
+ function normalizeCanonicalPathForIdentityCheck(pathValue) {
81
+ const normalized = normalizePathForIdentityCheck(pathValue);
82
+ if (!normalized) {
83
+ return normalized;
84
+ }
85
+ try {
86
+ const canonical = typeof realpathSync.native === "function"
87
+ ? realpathSync.native(pathValue)
88
+ : realpathSync(pathValue);
89
+ return normalizePathForIdentityCheck(canonical);
90
+ }
91
+ catch {
92
+ return normalized;
93
+ }
94
+ }
80
95
  function worktreeGitDirBelongsToProject(projectRoot, gitDirPath) {
81
96
  const gitdirBackRefPath = join(gitDirPath, "gitdir");
82
97
  if (!existsSync(gitdirBackRefPath)) {
@@ -89,8 +104,8 @@ function worktreeGitDirBelongsToProject(projectRoot, gitDirPath) {
89
104
  }
90
105
  const resolvedBackRef = resolveGitPath(gitDirPath, gitdirBackRefRaw);
91
106
  const expectedBackRef = join(projectRoot, ".git");
92
- return (normalizePathForIdentityCheck(resolvedBackRef) ===
93
- normalizePathForIdentityCheck(expectedBackRef));
107
+ return (normalizeCanonicalPathForIdentityCheck(resolvedBackRef) ===
108
+ normalizeCanonicalPathForIdentityCheck(expectedBackRef));
94
109
  }
95
110
  catch {
96
111
  return false;
@@ -252,18 +267,21 @@ export function isProjectDirectory(dir) {
252
267
  }
253
268
  export function findProjectRoot(startDir) {
254
269
  let current = startDir;
255
- const root = dirname(current) === current ? current : null;
270
+ let firstMarkerRoot = null;
256
271
  while (current) {
257
- if (isProjectDirectory(current)) {
272
+ if (existsSync(join(current, ".git"))) {
258
273
  return current;
259
274
  }
275
+ if (!firstMarkerRoot && isProjectDirectory(current)) {
276
+ firstMarkerRoot = current;
277
+ }
260
278
  const parent = dirname(current);
261
279
  if (parent === current) {
262
280
  break;
263
281
  }
264
282
  current = parent;
265
283
  }
266
- return root && isProjectDirectory(root) ? root : null;
284
+ return firstMarkerRoot;
267
285
  }
268
286
  function normalizePathForComparison(filePath) {
269
287
  const resolvedPath = resolve(filePath);
@@ -1 +1 @@
1
- {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../../lib/storage/paths.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../../lib/storage/paths.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../lib/storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../lib/storage.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@ const FLAGGED_ACCOUNTS_FILE_NAME = "openai-codex-flagged-accounts.json";
13
13
  const LEGACY_FLAGGED_ACCOUNTS_FILE_NAME = "openai-codex-blocked-accounts.json";
14
14
  const ACCOUNTS_BACKUP_SUFFIX = ".bak";
15
15
  const ACCOUNTS_WAL_SUFFIX = ".wal";
16
+ const ACCOUNTS_BACKUP_HISTORY_DEPTH = 3;
16
17
  const BACKUP_COPY_MAX_ATTEMPTS = 5;
17
18
  const BACKUP_COPY_BASE_DELAY_MS = 10;
18
19
  let storageBackupEnabled = true;
@@ -103,9 +104,156 @@ export function setStorageBackupEnabled(enabled) {
103
104
  function getAccountsBackupPath(path) {
104
105
  return `${path}${ACCOUNTS_BACKUP_SUFFIX}`;
105
106
  }
107
+ function getAccountsBackupPathAtIndex(path, index) {
108
+ if (index <= 0) {
109
+ return getAccountsBackupPath(path);
110
+ }
111
+ return `${path}${ACCOUNTS_BACKUP_SUFFIX}.${index}`;
112
+ }
113
+ function getAccountsBackupRecoveryCandidates(path) {
114
+ const candidates = [];
115
+ for (let i = 0; i < ACCOUNTS_BACKUP_HISTORY_DEPTH; i += 1) {
116
+ candidates.push(getAccountsBackupPathAtIndex(path, i));
117
+ }
118
+ return candidates;
119
+ }
106
120
  function getAccountsWalPath(path) {
107
121
  return `${path}${ACCOUNTS_WAL_SUFFIX}`;
108
122
  }
123
+ async function copyFileWithRetry(sourcePath, destinationPath, options) {
124
+ const allowMissingSource = options?.allowMissingSource ?? false;
125
+ for (let attempt = 0; attempt < BACKUP_COPY_MAX_ATTEMPTS; attempt += 1) {
126
+ try {
127
+ await fs.copyFile(sourcePath, destinationPath);
128
+ return;
129
+ }
130
+ catch (error) {
131
+ const code = error.code;
132
+ if (allowMissingSource && code === "ENOENT") {
133
+ return;
134
+ }
135
+ const canRetry = (code === "EPERM" || code === "EBUSY") &&
136
+ attempt + 1 < BACKUP_COPY_MAX_ATTEMPTS;
137
+ if (canRetry) {
138
+ await new Promise((resolve) => setTimeout(resolve, BACKUP_COPY_BASE_DELAY_MS * 2 ** attempt));
139
+ continue;
140
+ }
141
+ throw error;
142
+ }
143
+ }
144
+ }
145
+ async function renameFileWithRetry(sourcePath, destinationPath) {
146
+ for (let attempt = 0; attempt < BACKUP_COPY_MAX_ATTEMPTS; attempt += 1) {
147
+ try {
148
+ await fs.rename(sourcePath, destinationPath);
149
+ return;
150
+ }
151
+ catch (error) {
152
+ const code = error.code;
153
+ const canRetry = (code === "EPERM" || code === "EBUSY" || code === "EAGAIN") &&
154
+ attempt + 1 < BACKUP_COPY_MAX_ATTEMPTS;
155
+ if (!canRetry) {
156
+ throw error;
157
+ }
158
+ const jitterMs = Math.floor(Math.random() * BACKUP_COPY_BASE_DELAY_MS);
159
+ await new Promise((resolve) => setTimeout(resolve, BACKUP_COPY_BASE_DELAY_MS * 2 ** attempt + jitterMs));
160
+ }
161
+ }
162
+ }
163
+ async function createRotatingAccountsBackup(path) {
164
+ const candidates = getAccountsBackupRecoveryCandidates(path);
165
+ const rotationNonce = `${Date.now()}.${Math.random().toString(36).slice(2, 8)}`;
166
+ const stagedWrites = [];
167
+ const buildStagedPath = (targetPath, label) => `${targetPath}.rotate.${rotationNonce}.${label}.tmp`;
168
+ try {
169
+ for (let i = candidates.length - 1; i > 0; i -= 1) {
170
+ const previousPath = candidates[i - 1];
171
+ const currentPath = candidates[i];
172
+ if (!previousPath || !currentPath || !existsSync(previousPath)) {
173
+ continue;
174
+ }
175
+ const stagedPath = buildStagedPath(currentPath, `slot-${i}`);
176
+ await copyFileWithRetry(previousPath, stagedPath, { allowMissingSource: true });
177
+ if (existsSync(stagedPath)) {
178
+ stagedWrites.push({ targetPath: currentPath, stagedPath });
179
+ }
180
+ }
181
+ const latestBackupPath = candidates[0];
182
+ if (!latestBackupPath) {
183
+ return;
184
+ }
185
+ const latestStagedPath = buildStagedPath(latestBackupPath, "latest");
186
+ await copyFileWithRetry(path, latestStagedPath);
187
+ if (existsSync(latestStagedPath)) {
188
+ stagedWrites.push({ targetPath: latestBackupPath, stagedPath: latestStagedPath });
189
+ }
190
+ for (const stagedWrite of stagedWrites) {
191
+ await renameFileWithRetry(stagedWrite.stagedPath, stagedWrite.targetPath);
192
+ }
193
+ }
194
+ finally {
195
+ for (const stagedWrite of stagedWrites) {
196
+ if (!existsSync(stagedWrite.stagedPath)) {
197
+ continue;
198
+ }
199
+ try {
200
+ await fs.unlink(stagedWrite.stagedPath);
201
+ }
202
+ catch {
203
+ // Best effort cleanup for staged rotation artifacts.
204
+ }
205
+ }
206
+ }
207
+ }
208
+ function isRotatingBackupTempArtifact(storagePath, candidatePath) {
209
+ const backupPrefix = `${storagePath}${ACCOUNTS_BACKUP_SUFFIX}`;
210
+ if (!candidatePath.startsWith(backupPrefix) || !candidatePath.endsWith(".tmp")) {
211
+ return false;
212
+ }
213
+ const suffix = candidatePath.slice(backupPrefix.length);
214
+ const rotateSeparatorIndex = suffix.indexOf(".rotate.");
215
+ if (rotateSeparatorIndex === -1) {
216
+ return false;
217
+ }
218
+ const backupIndexSuffix = suffix.slice(0, rotateSeparatorIndex);
219
+ if (backupIndexSuffix.length > 0 && !/^\.\d+$/.test(backupIndexSuffix)) {
220
+ return false;
221
+ }
222
+ return true;
223
+ }
224
+ async function cleanupStaleRotatingBackupArtifacts(path) {
225
+ const directoryPath = dirname(path);
226
+ try {
227
+ const directoryEntries = await fs.readdir(directoryPath, { withFileTypes: true });
228
+ const staleArtifacts = directoryEntries
229
+ .filter((entry) => entry.isFile())
230
+ .map((entry) => join(directoryPath, entry.name))
231
+ .filter((entryPath) => isRotatingBackupTempArtifact(path, entryPath));
232
+ for (const staleArtifactPath of staleArtifacts) {
233
+ try {
234
+ await fs.unlink(staleArtifactPath);
235
+ }
236
+ catch (error) {
237
+ const code = error.code;
238
+ if (code !== "ENOENT") {
239
+ log.warn("Failed to remove stale rotating backup artifact", {
240
+ path: staleArtifactPath,
241
+ error: String(error),
242
+ });
243
+ }
244
+ }
245
+ }
246
+ }
247
+ catch (error) {
248
+ const code = error.code;
249
+ if (code !== "ENOENT") {
250
+ log.warn("Failed to scan for stale rotating backup artifacts", {
251
+ path,
252
+ error: String(error),
253
+ });
254
+ }
255
+ }
256
+ }
109
257
  function computeSha256(value) {
110
258
  return createHash("sha256").update(value).digest("hex");
111
259
  }
@@ -522,6 +670,7 @@ async function loadAccountsFromJournal(path) {
522
670
  }
523
671
  async function loadAccountsInternal(persistMigration) {
524
672
  const path = getStoragePath();
673
+ await cleanupStaleRotatingBackupArtifacts(path);
525
674
  const migratedLegacyStorage = persistMigration
526
675
  ? await migrateLegacyProjectStorageIfNeeded(persistMigration)
527
676
  : null;
@@ -564,38 +713,40 @@ async function loadAccountsInternal(persistMigration) {
564
713
  return recoveredFromWal;
565
714
  }
566
715
  if (storageBackupEnabled) {
567
- const backupPath = getAccountsBackupPath(path);
568
- try {
569
- const backup = await loadAccountsFromPath(backupPath);
570
- if (backup.schemaErrors.length > 0) {
571
- log.warn("Backup account storage schema validation warnings", {
572
- path: backupPath,
573
- errors: backup.schemaErrors.slice(0, 5),
574
- });
575
- }
576
- if (backup.normalized) {
577
- log.warn("Recovered account storage from backup file", { path, backupPath });
578
- if (persistMigration) {
579
- try {
580
- await persistMigration(backup.normalized);
581
- }
582
- catch (persistError) {
583
- log.warn("Failed to persist recovered backup storage", {
584
- path,
585
- error: String(persistError),
586
- });
716
+ const backupCandidates = getAccountsBackupRecoveryCandidates(path);
717
+ for (const backupPath of backupCandidates) {
718
+ try {
719
+ const backup = await loadAccountsFromPath(backupPath);
720
+ if (backup.schemaErrors.length > 0) {
721
+ log.warn("Backup account storage schema validation warnings", {
722
+ path: backupPath,
723
+ errors: backup.schemaErrors.slice(0, 5),
724
+ });
725
+ }
726
+ if (backup.normalized) {
727
+ log.warn("Recovered account storage from backup file", { path, backupPath });
728
+ if (persistMigration) {
729
+ try {
730
+ await persistMigration(backup.normalized);
731
+ }
732
+ catch (persistError) {
733
+ log.warn("Failed to persist recovered backup storage", {
734
+ path,
735
+ error: String(persistError),
736
+ });
737
+ }
587
738
  }
739
+ return backup.normalized;
588
740
  }
589
- return backup.normalized;
590
741
  }
591
- }
592
- catch (backupError) {
593
- const backupCode = backupError.code;
594
- if (backupCode !== "ENOENT") {
595
- log.warn("Failed to load backup account storage", {
596
- path: backupPath,
597
- error: String(backupError),
598
- });
742
+ catch (backupError) {
743
+ const backupCode = backupError.code;
744
+ if (backupCode !== "ENOENT") {
745
+ log.warn("Failed to load backup account storage", {
746
+ path: backupPath,
747
+ error: String(backupError),
748
+ });
749
+ }
599
750
  }
600
751
  }
601
752
  }
@@ -614,29 +765,13 @@ async function saveAccountsUnlocked(storage) {
614
765
  await fs.mkdir(dirname(path), { recursive: true });
615
766
  await ensureGitignore(path);
616
767
  if (storageBackupEnabled && existsSync(path)) {
617
- const backupPath = getAccountsBackupPath(path);
618
768
  try {
619
- for (let attempt = 0; attempt < BACKUP_COPY_MAX_ATTEMPTS; attempt += 1) {
620
- try {
621
- await fs.copyFile(path, backupPath);
622
- break;
623
- }
624
- catch (backupError) {
625
- const code = backupError.code;
626
- const canRetry = (code === "EPERM" || code === "EBUSY") &&
627
- attempt + 1 < BACKUP_COPY_MAX_ATTEMPTS;
628
- if (canRetry) {
629
- await new Promise((resolve) => setTimeout(resolve, BACKUP_COPY_BASE_DELAY_MS * 2 ** attempt));
630
- continue;
631
- }
632
- throw backupError;
633
- }
634
- }
769
+ await createRotatingAccountsBackup(path);
635
770
  }
636
771
  catch (backupError) {
637
772
  log.warn("Failed to create account storage backup", {
638
773
  path,
639
- backupPath,
774
+ backupPath: getAccountsBackupPath(path),
640
775
  error: String(backupError),
641
776
  });
642
777
  }
@@ -731,7 +866,7 @@ export async function clearAccounts() {
731
866
  return withStorageLock(async () => {
732
867
  const path = getStoragePath();
733
868
  const walPath = getAccountsWalPath(path);
734
- const backupPath = getAccountsBackupPath(path);
869
+ const backupPaths = getAccountsBackupRecoveryCandidates(path);
735
870
  const clearPath = async (targetPath) => {
736
871
  try {
737
872
  await fs.unlink(targetPath);
@@ -747,7 +882,7 @@ export async function clearAccounts() {
747
882
  }
748
883
  };
749
884
  try {
750
- await Promise.all([clearPath(path), clearPath(walPath), clearPath(backupPath)]);
885
+ await Promise.all([clearPath(path), clearPath(walPath), ...backupPaths.map(clearPath)]);
751
886
  }
752
887
  catch {
753
888
  // Individual path cleanup is already best-effort with per-artifact logging.