@@ -162,6 +162,31 @@ async function createLiveWorkspace(tempDir: string): Promise<string> {
|
162 | 162 | return workspace; |
163 | 163 | } |
164 | 164 | |
| 165 | +async function removeLiveTempDir(dir: string): Promise<void> { |
| 166 | +let lastError: unknown; |
| 167 | +for (let attempt = 0; attempt < 100; attempt += 1) { |
| 168 | +try { |
| 169 | +await fs.rm(dir, { recursive: true, force: true }); |
| 170 | +return; |
| 171 | +} catch (error) { |
| 172 | +lastError = error; |
| 173 | +const code = (error as { code?: unknown } | null)?.code; |
| 174 | +if (code !== "EBUSY" && code !== "ENOTEMPTY" && code !== "EPERM" && code !== "EACCES") { |
| 175 | +throw error; |
| 176 | +} |
| 177 | +await delay(100); |
| 178 | +} |
| 179 | +} |
| 180 | +if (process.platform === "win32") { |
| 181 | +logCodexLiveStep("temp-cleanup-deferred", { |
| 182 | + dir, |
| 183 | +error: lastError instanceof Error ? lastError.message : String(lastError), |
| 184 | +}); |
| 185 | +return; |
| 186 | +} |
| 187 | +await fs.rm(dir, { recursive: true, force: true }); |
| 188 | +} |
| 189 | + |
165 | 190 | function parseModelKey(modelKey: string): { provider: string; modelId: string } { |
166 | 191 | const [provider, ...modelParts] = modelKey.split("/"); |
167 | 192 | const modelId = modelParts.join("/"); |
@@ -935,8 +960,15 @@ describeLive("gateway live (Codex harness)", () => {
|
935 | 960 | clearRuntimeConfigSnapshot(); |
936 | 961 | await client.stopAndWait(); |
937 | 962 | await server.close(); |
| 963 | +const [{ resetTaskRegistryForTests }, { resetTaskFlowRegistryForTests }] = |
| 964 | +await Promise.all([ |
| 965 | +import("../tasks/runtime-internal.js"), |
| 966 | +import("../tasks/task-flow-runtime-internal.js"), |
| 967 | +]); |
| 968 | +resetTaskRegistryForTests({ persist: false }); |
| 969 | +resetTaskFlowRegistryForTests({ persist: false }); |
938 | 970 | restoreEnv(previousEnv); |
939 | | -await fs.rm(tempDir, { recursive: true, force: true, maxRetries: 5, retryDelay: 100 }); |
| 971 | +await removeLiveTempDir(tempDir); |
940 | 972 | } |
941 | 973 | }, |
942 | 974 | CODEX_HARNESS_TIMEOUT_MS, |
|