()
| 38 | * responsible for stopping the sidecar first and restarting it after. |
| 39 | */ |
| 40 | export const resetExecutorState = (): ResetStateResult => { |
| 41 | const dataDir = join(homedir(), ".executor"); |
| 42 | const backupDir = join(dataDir, "backups", backupStamp()); |
| 43 | mkdirSync(backupDir, { recursive: true }); |
| 44 | const moved: string[] = []; |
| 45 | for (const entry of STATE_ENTRIES) { |
| 46 | const from = join(dataDir, entry); |
| 47 | if (!existsSync(from)) continue; |
| 48 | renameSync(from, join(backupDir, entry)); |
| 49 | moved.push(entry); |
| 50 | } |
| 51 | log.info("[reset-state] moved executor state to backup", { backupDir, moved }); |
| 52 | return { backupDir, moved }; |
| 53 | }; |
| 54 | |
| 55 | /** |
| 56 | * Confirmation dialog shared by every surface that offers a reset. Returns |
no test coverage detected