@dommaker/harness 1.2.1 → 1.2.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.
package/CHANGELOG.md CHANGED
@@ -6,6 +6,16 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [1.2.3] - 2026-08-28
10
+
11
+ ### Changes
12
+ - fix(test): mkdtemp 泄漏防护——setupFilesAfterEnv 劫持 mkdtempSync 统一清理
13
+
14
+ ## [1.2.2] - 2026-08-26
15
+
16
+ ### Changes
17
+ - fix: init 判重升级为能力检测,已有 workflow 覆盖治理命令时跳过创建 harness-governance.yml
18
+
9
19
  ## [1.2.1] - 2026-08-24
10
20
 
11
21
  ### Changes
@@ -832,6 +832,25 @@ async function createContextMd(projectPath, dir) {
832
832
  await fs.writeFile(contextPath, content, 'utf-8');
833
833
  console.log(chalk_1.default.green(`✅ 已创建 ${dir}/CONTEXT.md`));
834
834
  }
835
+ /**
836
+ * 检测已有 workflow 是否已覆盖 harness 治理命令
837
+ * (harness check / passes-gate / sync-docs --check,含 npx、scoped 包名等调用形式)
838
+ */
839
+ const GOVERNANCE_COMMAND_PATTERN = /\bharness\s+(?:check\b|passes-gate\b|sync-docs\b[^\n]*--check)/;
840
+ async function findGovernanceCoverage(workflowsDir) {
841
+ for (const file of await findCiWorkflows(workflowsDir)) {
842
+ try {
843
+ const content = await fs.readFile(path.join(workflowsDir, file), 'utf-8');
844
+ if (GOVERNANCE_COMMAND_PATTERN.test(content)) {
845
+ return file;
846
+ }
847
+ }
848
+ catch {
849
+ // 读取失败,忽略该文件
850
+ }
851
+ }
852
+ return undefined;
853
+ }
835
854
  /**
836
855
  * 设置治理 CI workflow
837
856
  */
@@ -847,6 +866,12 @@ async function setupGovernanceWorkflow(projectPath, level) {
847
866
  catch {
848
867
  // 不存在,继续创建
849
868
  }
869
+ // 能力检测:已有 workflow 已跑 harness 治理命令时跳过,避免重复 CI 面
870
+ const coveredBy = await findGovernanceCoverage(workflowsDir);
871
+ if (coveredBy) {
872
+ console.log(chalk_1.default.gray(`治理检查已由 ${coveredBy} 覆盖,跳过创建 harness-governance.yml`));
873
+ return;
874
+ }
850
875
  await fs.mkdir(workflowsDir, { recursive: true });
851
876
  const docsCheckStep = level !== 'minimal'
852
877
  ? `
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /** 幂等。setup 与测试文件重复调用安全。 */
2
+ export declare function patchMktempCleanup(): void;
3
+ export declare function isRegisteredTmpDir(dir: string): boolean;
4
+ /**
5
+ * 清扫 tmpDir 中超龄且符合 mkdtemp 签名的目录。返回删除数。
6
+ * 单条失败(竞态被别进程先删等)不阻断。
7
+ */
8
+ export declare function sweepStaleMkdtempDirs(tmpDir: string, ageMs: number): number;
9
+ //# sourceMappingURL=mkdtemp-cleanup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mkdtemp-cleanup.d.ts","sourceRoot":"","sources":["../../src/test-setup/mkdtemp-cleanup.ts"],"names":[],"mappings":"AAwBA,4BAA4B;AAC5B,wBAAgB,kBAAkB,IAAI,IAAI,CAoBzC;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAuB3E"}
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.patchMktempCleanup = patchMktempCleanup;
7
+ exports.isRegisteredTmpDir = isRegisteredTmpDir;
8
+ exports.sweepStaleMkdtempDirs = sweepStaleMkdtempDirs;
9
+ /**
10
+ * Jest setupFilesAfterEnv - mkdtemp 泄漏防护(2026-08-26 /tmp 3.9 万残留事故根因修复)
11
+ *
12
+ * 事故:5 个测试文件 fs.mkdtempSync 后零清理(constraints-retire / check-drift /
13
+ * constraints-report / agent-prompt-renderer / injection-drift),日常 jest 运行累积。
14
+ *
15
+ * 机制(studio apps/api/tests/mkdtemp-cleanup.ts 同款,jest 版):
16
+ * 1) patch fs.mkdtempSync--本进程创建的临时目录全部进注册表,afterAll 统一 rmSync。
17
+ * jest worker 被 kill 时 process 'exit' 不触发,必须用 afterAll(setupFilesAfterEnv
18
+ * 里注册 = 文件级钩子)。
19
+ * 2) import 时清扫 tmpdir 里 >24h 且符合 mkdtemp 签名的目录,兜底 worker 被 kill 的场景。
20
+ *
21
+ * 签名正则只匹配「小写字母数字连字符前缀 + 恰好 6 位大小写字母数字后缀」:
22
+ * chrome crashpad(org.chromium.Chromium.XXXX,含点)、tsx-0 / jest_0 等不匹配。
23
+ */
24
+ const fs_1 = __importDefault(require("fs"));
25
+ const path_1 = __importDefault(require("path"));
26
+ const globals_1 = require("@jest/globals");
27
+ const MKDTEMP_SUFFIX_RE = /^[a-z][a-z0-9]*(?:-[a-z0-9]+)*-[A-Za-z0-9]{6}$/;
28
+ let patched = false;
29
+ const registeredDirs = new Set();
30
+ /** 幂等。setup 与测试文件重复调用安全。 */
31
+ function patchMktempCleanup() {
32
+ if (patched)
33
+ return;
34
+ patched = true;
35
+ const orig = fs_1.default.mkdtempSync;
36
+ fs_1.default.mkdtempSync = ((prefix) => {
37
+ const dir = orig(prefix);
38
+ registeredDirs.add(dir);
39
+ return dir;
40
+ });
41
+ (0, globals_1.afterAll)(() => {
42
+ for (const dir of registeredDirs) {
43
+ try {
44
+ fs_1.default.rmSync(dir, { recursive: true, force: true });
45
+ }
46
+ catch {
47
+ // 清理失败不阻断测试
48
+ }
49
+ }
50
+ registeredDirs.clear();
51
+ });
52
+ }
53
+ function isRegisteredTmpDir(dir) {
54
+ return registeredDirs.has(dir);
55
+ }
56
+ /**
57
+ * 清扫 tmpDir 中超龄且符合 mkdtemp 签名的目录。返回删除数。
58
+ * 单条失败(竞态被别进程先删等)不阻断。
59
+ */
60
+ function sweepStaleMkdtempDirs(tmpDir, ageMs) {
61
+ let entries;
62
+ try {
63
+ entries = fs_1.default.readdirSync(tmpDir);
64
+ }
65
+ catch {
66
+ return 0;
67
+ }
68
+ const now = Date.now();
69
+ let removed = 0;
70
+ for (const name of entries) {
71
+ if (!MKDTEMP_SUFFIX_RE.test(name))
72
+ continue;
73
+ try {
74
+ const p = path_1.default.join(tmpDir, name);
75
+ const st = fs_1.default.statSync(p);
76
+ if (st.isDirectory() && now - st.mtimeMs > ageMs) {
77
+ fs_1.default.rmSync(p, { recursive: true, force: true });
78
+ removed++;
79
+ }
80
+ }
81
+ catch {
82
+ // 单条竞态不阻断
83
+ }
84
+ }
85
+ return removed;
86
+ }
87
+ // setupFilesAfterEnv 顶层执行:打补丁 + 清扫历史残留
88
+ patchMktempCleanup();
89
+ sweepStaleMkdtempDirs(process.env.TMPDIR || '/tmp', 24 * 60 * 60 * 1000);
90
+ //# sourceMappingURL=mkdtemp-cleanup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mkdtemp-cleanup.js","sourceRoot":"","sources":["../../src/test-setup/mkdtemp-cleanup.ts"],"names":[],"mappings":";;;;;AAyBA,gDAoBC;AAED,gDAEC;AAMD,sDAuBC;AA9ED;;;;;;;;;;;;;;GAcG;AACH,4CAAoB;AACpB,gDAAwB;AACxB,2CAAyC;AAEzC,MAAM,iBAAiB,GAAG,gDAAgD,CAAC;AAE3E,IAAI,OAAO,GAAG,KAAK,CAAC;AACpB,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;AAEzC,4BAA4B;AAC5B,SAAgB,kBAAkB;IAChC,IAAI,OAAO;QAAE,OAAO;IACpB,OAAO,GAAG,IAAI,CAAC;IACf,MAAM,IAAI,GAAG,YAAE,CAAC,WAAyC,CAAC;IAC1D,YAAE,CAAC,WAAW,GAAG,CAAC,CAAC,MAAc,EAAE,EAAE;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QACzB,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACxB,OAAO,GAAG,CAAC;IACb,CAAC,CAA0B,CAAC;IAE5B,IAAA,kBAAQ,EAAC,GAAG,EAAE;QACZ,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,YAAE,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACnD,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY;YACd,CAAC;QACH,CAAC;QACD,cAAc,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,kBAAkB,CAAC,GAAW;IAC5C,OAAO,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACjC,CAAC;AAED;;;GAGG;AACH,SAAgB,qBAAqB,CAAC,MAAc,EAAE,KAAa;IACjE,IAAI,OAAiB,CAAC;IACtB,IAAI,CAAC;QACH,OAAO,GAAG,YAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,CAAC;IACX,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,SAAS;QAC5C,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,cAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAClC,MAAM,EAAE,GAAG,YAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC,OAAO,GAAG,KAAK,EAAE,CAAC;gBACjD,YAAE,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC/C,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,UAAU;QACZ,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,uCAAuC;AACvC,kBAAkB,EAAE,CAAC;AACrB,qBAAqB,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dommaker/harness",
3
- "version": "1.2.1",
3
+ "version": "1.2.3",
4
4
  "description": "通用工程约束框架 - 铁律系统、检查点验证、测试门控",
5
5
  "keywords": [
6
6
  "harness",
@@ -308,6 +308,49 @@ describe('init command', () => {
308
308
  expect(consoleSpy).toHaveBeenCalledWith(expect.stringContaining('harness-governance.yml 已存在'));
309
309
  });
310
310
 
311
+ it('应该跳过治理 CI workflow 当已有 workflow 覆盖治理命令', async () => {
312
+ mockFs.mkdir.mockResolvedValue(undefined);
313
+ mockFs.writeFile.mockResolvedValue(undefined);
314
+ // setupGitHubActions 与治理能力检测都会 readdir workflows 目录
315
+ existingFiles.add(`${PROJECT}/.github/workflows`);
316
+ mockReaddir.mockResolvedValue(['ci.yml']);
317
+ mockFs.readFile.mockImplementation((p: any) =>
318
+ String(p).includes('ci.yml')
319
+ ? Promise.resolve('run: npx harness sync-docs --agents && npx harness check && npx harness sync-docs --check --agents')
320
+ : Promise.reject(new Error('ENOENT'))
321
+ );
322
+
323
+ await init({ preset: 'standard', governance: 'standard', projectPath: PROJECT });
324
+ const writeCalls = mockFs.writeFile.mock.calls;
325
+ const workflowCall = writeCalls.find((c: any[]) => String(c[0]).includes('harness-governance.yml'));
326
+ expect(workflowCall).toBeUndefined();
327
+ expect(consoleSpy).toHaveBeenCalledWith(expect.stringContaining('治理检查已由 ci.yml 覆盖'));
328
+
329
+ mockReaddir.mockResolvedValue([]);
330
+ mockFs.readFile.mockRejectedValue(new Error('ENOENT'));
331
+ });
332
+
333
+ it('应该正常创建治理 CI workflow 当已有 workflow 不含治理命令', async () => {
334
+ mockFs.mkdir.mockResolvedValue(undefined);
335
+ mockFs.writeFile.mockResolvedValue(undefined);
336
+ existingFiles.add(`${PROJECT}/.github/workflows`);
337
+ mockReaddir.mockResolvedValue(['ci.yml']);
338
+ mockFs.readFile.mockImplementation((p: any) =>
339
+ String(p).includes('ci.yml')
340
+ ? Promise.resolve('run: npm test')
341
+ : Promise.reject(new Error('ENOENT'))
342
+ );
343
+
344
+ await init({ preset: 'standard', governance: 'standard', projectPath: PROJECT });
345
+ const writeCalls = mockFs.writeFile.mock.calls;
346
+ const workflowCall = writeCalls.find((c: any[]) => String(c[0]).includes('harness-governance.yml'));
347
+ expect(workflowCall).toBeDefined();
348
+ expect(workflowCall![1]).toContain('Harness Governance');
349
+
350
+ mockReaddir.mockResolvedValue([]);
351
+ mockFs.readFile.mockRejectedValue(new Error('ENOENT'));
352
+ });
353
+
311
354
  it('strict 治理应在 CI 中包含 docs check', async () => {
312
355
  mockFs.mkdir.mockResolvedValue(undefined);
313
356
  mockFs.writeFile.mockResolvedValue(undefined);
@@ -888,6 +888,26 @@ async function createContextMd(projectPath: string, dir: string): Promise<void>
888
888
  console.log(chalk.green(`✅ 已创建 ${dir}/CONTEXT.md`));
889
889
  }
890
890
 
891
+ /**
892
+ * 检测已有 workflow 是否已覆盖 harness 治理命令
893
+ * (harness check / passes-gate / sync-docs --check,含 npx、scoped 包名等调用形式)
894
+ */
895
+ const GOVERNANCE_COMMAND_PATTERN = /\bharness\s+(?:check\b|passes-gate\b|sync-docs\b[^\n]*--check)/;
896
+
897
+ async function findGovernanceCoverage(workflowsDir: string): Promise<string | undefined> {
898
+ for (const file of await findCiWorkflows(workflowsDir)) {
899
+ try {
900
+ const content = await fs.readFile(path.join(workflowsDir, file), 'utf-8');
901
+ if (GOVERNANCE_COMMAND_PATTERN.test(content)) {
902
+ return file;
903
+ }
904
+ } catch {
905
+ // 读取失败,忽略该文件
906
+ }
907
+ }
908
+ return undefined;
909
+ }
910
+
891
911
  /**
892
912
  * 设置治理 CI workflow
893
913
  */
@@ -904,6 +924,13 @@ async function setupGovernanceWorkflow(projectPath: string, level: string): Prom
904
924
  // 不存在,继续创建
905
925
  }
906
926
 
927
+ // 能力检测:已有 workflow 已跑 harness 治理命令时跳过,避免重复 CI 面
928
+ const coveredBy = await findGovernanceCoverage(workflowsDir);
929
+ if (coveredBy) {
930
+ console.log(chalk.gray(`治理检查已由 ${coveredBy} 覆盖,跳过创建 harness-governance.yml`));
931
+ return;
932
+ }
933
+
907
934
  await fs.mkdir(workflowsDir, { recursive: true });
908
935
 
909
936
  const docsCheckStep = level !== 'minimal'
@@ -0,0 +1,45 @@
1
+ /**
2
+ * mkdtemp 泄漏防护测试(2026-08-26 /tmp 3.9 万残留事故,与 studio 同款机制)。
3
+ * 正本见 ../mkdtemp-cleanup.ts。
4
+ */
5
+ import fs from 'fs';
6
+ import path from 'path';
7
+ import {
8
+ patchMktempCleanup,
9
+ isRegisteredTmpDir,
10
+ sweepStaleMkdtempDirs,
11
+ } from '../mkdtemp-cleanup';
12
+
13
+ describe('mkdtemp-cleanup', () => {
14
+ it('patch 后 mkdtempSync 创建的目录进注册表(幂等)', () => {
15
+ patchMktempCleanup();
16
+ const d = fs.mkdtempSync(path.join('/tmp', 'harness-mkdtemp-cleanup-test-'));
17
+ expect(fs.existsSync(d)).toBe(true);
18
+ expect(isRegisteredTmpDir(d)).toBe(true);
19
+ fs.rmSync(d, { recursive: true, force: true });
20
+ });
21
+
22
+ it('sweep 只删超过年龄阈值且符合 mkdtemp 签名的目录', () => {
23
+ const base = fs.mkdtempSync(path.join('/tmp', 'harness-mkdtemp-cleanup-sweep-'));
24
+ const cases: Array<{ name: string; ageH: number; shouldRemove: boolean }> = [
25
+ { name: 'fake-test-aB3xY9', ageH: 25, shouldRemove: true }, // 签名匹配 + 超龄 -> 删
26
+ { name: 'fake-test-cD4zW0', ageH: 1, shouldRemove: false }, // 签名匹配但新鲜 -> 留
27
+ { name: 'org.chromium.Chromium.RJ5vUP', ageH: 25, shouldRemove: false }, // 含点(chrome crashpad)-> 不匹配
28
+ { name: 'fake-test-ab12', ageH: 25, shouldRemove: false }, // 后缀 4 字符 -> 不匹配
29
+ { name: 'tsx-0', ageH: 25, shouldRemove: false }, // 后缀 1 字符 -> 不匹配
30
+ ];
31
+ for (const c of cases) {
32
+ const p = path.join(base, c.name);
33
+ fs.mkdirSync(p);
34
+ const t = new Date(Date.now() - c.ageH * 3600 * 1000);
35
+ fs.utimesSync(p, t, t);
36
+ }
37
+
38
+ const removed = sweepStaleMkdtempDirs(base, 24 * 3600 * 1000);
39
+ expect(removed).toBe(1);
40
+ for (const c of cases) {
41
+ expect(fs.existsSync(path.join(base, c.name))).toBe(!c.shouldRemove);
42
+ }
43
+ fs.rmSync(base, { recursive: true, force: true });
44
+ });
45
+ });
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Jest setupFilesAfterEnv - mkdtemp 泄漏防护(2026-08-26 /tmp 3.9 万残留事故根因修复)
3
+ *
4
+ * 事故:5 个测试文件 fs.mkdtempSync 后零清理(constraints-retire / check-drift /
5
+ * constraints-report / agent-prompt-renderer / injection-drift),日常 jest 运行累积。
6
+ *
7
+ * 机制(studio apps/api/tests/mkdtemp-cleanup.ts 同款,jest 版):
8
+ * 1) patch fs.mkdtempSync--本进程创建的临时目录全部进注册表,afterAll 统一 rmSync。
9
+ * jest worker 被 kill 时 process 'exit' 不触发,必须用 afterAll(setupFilesAfterEnv
10
+ * 里注册 = 文件级钩子)。
11
+ * 2) import 时清扫 tmpdir 里 >24h 且符合 mkdtemp 签名的目录,兜底 worker 被 kill 的场景。
12
+ *
13
+ * 签名正则只匹配「小写字母数字连字符前缀 + 恰好 6 位大小写字母数字后缀」:
14
+ * chrome crashpad(org.chromium.Chromium.XXXX,含点)、tsx-0 / jest_0 等不匹配。
15
+ */
16
+ import fs from 'fs';
17
+ import path from 'path';
18
+ import { afterAll } from '@jest/globals';
19
+
20
+ const MKDTEMP_SUFFIX_RE = /^[a-z][a-z0-9]*(?:-[a-z0-9]+)*-[A-Za-z0-9]{6}$/;
21
+
22
+ let patched = false;
23
+ const registeredDirs = new Set<string>();
24
+
25
+ /** 幂等。setup 与测试文件重复调用安全。 */
26
+ export function patchMktempCleanup(): void {
27
+ if (patched) return;
28
+ patched = true;
29
+ const orig = fs.mkdtempSync as (prefix: string) => string;
30
+ fs.mkdtempSync = ((prefix: string) => {
31
+ const dir = orig(prefix);
32
+ registeredDirs.add(dir);
33
+ return dir;
34
+ }) as typeof fs.mkdtempSync;
35
+
36
+ afterAll(() => {
37
+ for (const dir of registeredDirs) {
38
+ try {
39
+ fs.rmSync(dir, { recursive: true, force: true });
40
+ } catch {
41
+ // 清理失败不阻断测试
42
+ }
43
+ }
44
+ registeredDirs.clear();
45
+ });
46
+ }
47
+
48
+ export function isRegisteredTmpDir(dir: string): boolean {
49
+ return registeredDirs.has(dir);
50
+ }
51
+
52
+ /**
53
+ * 清扫 tmpDir 中超龄且符合 mkdtemp 签名的目录。返回删除数。
54
+ * 单条失败(竞态被别进程先删等)不阻断。
55
+ */
56
+ export function sweepStaleMkdtempDirs(tmpDir: string, ageMs: number): number {
57
+ let entries: string[];
58
+ try {
59
+ entries = fs.readdirSync(tmpDir);
60
+ } catch {
61
+ return 0;
62
+ }
63
+ const now = Date.now();
64
+ let removed = 0;
65
+ for (const name of entries) {
66
+ if (!MKDTEMP_SUFFIX_RE.test(name)) continue;
67
+ try {
68
+ const p = path.join(tmpDir, name);
69
+ const st = fs.statSync(p);
70
+ if (st.isDirectory() && now - st.mtimeMs > ageMs) {
71
+ fs.rmSync(p, { recursive: true, force: true });
72
+ removed++;
73
+ }
74
+ } catch {
75
+ // 单条竞态不阻断
76
+ }
77
+ }
78
+ return removed;
79
+ }
80
+
81
+ // setupFilesAfterEnv 顶层执行:打补丁 + 清扫历史残留
82
+ patchMktempCleanup();
83
+ sweepStaleMkdtempDirs(process.env.TMPDIR || '/tmp', 24 * 60 * 60 * 1000);