diff --git a/docs/hardening-debt-burndown.md b/docs/hardening-debt-burndown.md index 59fb6768..9a10e352 100644 --- a/docs/hardening-debt-burndown.md +++ b/docs/hardening-debt-burndown.md @@ -31,9 +31,9 @@ Baseline captured: `2026-02-12`. | Metric | Baseline | |---|---:| -| Sync fs occurrences (all) | 841 | +| Sync fs occurrences (all) | 835 | | Sync fs files affected (all) | 100 | -| Sync fs occurrences (runtime hotpaths) | 730 | +| Sync fs occurrences (runtime hotpaths) | 724 | | Sync fs files affected (runtime hotpaths) | 89 | | Legacy shim markers | 131 | | Legacy shim files affected | 56 | diff --git a/docs/reports/hardening-inventory.json b/docs/reports/hardening-inventory.json index 1356305d..2777c900 100644 --- a/docs/reports/hardening-inventory.json +++ b/docs/reports/hardening-inventory.json @@ -1,9 +1,9 @@ { "scope": "src/**/*.{ts,tsx,js,jsx,mjs,cjs}", "syncFs": { - "totalOccurrences": 841, + "totalOccurrences": 835, "filesAffected": 100, - "hotpathOccurrences": 730, + "hotpathOccurrences": 724, "hotpathFilesAffected": 89, "topHotpathFiles": [ { @@ -44,24 +44,6 @@ ], "markers": [] }, - { - "file": "src/utils/claude-dir-installer.ts", - "count": 23, - "calls": [ - "copyFileSync", - "cpSync", - "existsSync", - "lstatSync", - "mkdirSync", - "readdirSync", - "renameSync", - "rmSync", - "statSync", - "unlinkSync", - "writeFileSync" - ], - "markers": [] - }, { "file": "src/utils/shell-completion.ts", "count": 23, @@ -89,6 +71,24 @@ ], "markers": [] }, + { + "file": "src/utils/claude-dir-installer.ts", + "count": 21, + "calls": [ + "copyFileSync", + "cpSync", + "existsSync", + "lstatSync", + "mkdirSync", + "readdirSync", + "renameSync", + "rmSync", + "statSync", + "unlinkSync", + "writeFileSync" + ], + "markers": [] + }, { "file": "src/cliproxy/binary/version-cache.ts", "count": 20, @@ -218,24 +218,6 @@ ], "markers": [] }, - { - "file": "src/utils/claude-dir-installer.ts", - "count": 23, - "calls": [ - "copyFileSync", - "cpSync", - "existsSync", - "lstatSync", - "mkdirSync", - "readdirSync", - "renameSync", - "rmSync", - "statSync", - "unlinkSync", - "writeFileSync" - ], - "markers": [] - }, { "file": "src/utils/shell-completion.ts", "count": 23, @@ -263,6 +245,24 @@ ], "markers": [] }, + { + "file": "src/utils/claude-dir-installer.ts", + "count": 21, + "calls": [ + "copyFileSync", + "cpSync", + "existsSync", + "lstatSync", + "mkdirSync", + "readdirSync", + "renameSync", + "rmSync", + "statSync", + "unlinkSync", + "writeFileSync" + ], + "markers": [] + }, { "file": "src/cliproxy/binary/version-cache.ts", "count": 20, diff --git a/docs/reports/hardening-inventory.md b/docs/reports/hardening-inventory.md index 61fad7e1..69a86f89 100644 --- a/docs/reports/hardening-inventory.md +++ b/docs/reports/hardening-inventory.md @@ -6,9 +6,9 @@ Scope: `src/**/*.{ts,tsx,js,jsx,mjs,cjs}` | Metric | Value | |---|---:| -| Sync fs occurrences (all) | 841 | +| Sync fs occurrences (all) | 835 | | Sync fs files affected (all) | 100 | -| Sync fs occurrences (runtime hotpaths) | 730 | +| Sync fs occurrences (runtime hotpaths) | 724 | | Sync fs files affected (runtime hotpaths) | 89 | | Legacy shim markers | 131 | | Legacy shim files affected | 56 | @@ -19,9 +19,9 @@ Scope: `src/**/*.{ts,tsx,js,jsx,mjs,cjs}` |---|---:|---| | `src/management/shared-manager.ts` | 60 | copyFileSync, cpSync, existsSync, lstatSync, mkdirSync, readdirSync, readFileSync, readlinkSync, rmSync, statSync, symlinkSync, unlinkSync, writeFileSync | | `src/utils/claude-symlink-manager.ts` | 27 | copyFileSync, existsSync, lstatSync, mkdirSync, readdirSync, readlinkSync, renameSync, rmSync, statSync, symlinkSync, unlinkSync | -| `src/utils/claude-dir-installer.ts` | 23 | copyFileSync, cpSync, existsSync, lstatSync, mkdirSync, readdirSync, renameSync, rmSync, statSync, unlinkSync, writeFileSync | | `src/utils/shell-completion.ts` | 23 | appendFileSync, copyFileSync, existsSync, mkdirSync, readFileSync, statSync | | `src/web-server/routes/settings-routes.ts` | 23 | copyFileSync, existsSync, mkdirSync, readFileSync, renameSync, statSync, writeFileSync | +| `src/utils/claude-dir-installer.ts` | 21 | copyFileSync, cpSync, existsSync, lstatSync, mkdirSync, readdirSync, renameSync, rmSync, statSync, unlinkSync, writeFileSync | | `src/cliproxy/binary/version-cache.ts` | 20 | existsSync, mkdirSync, readFileSync, unlinkSync, writeFileSync | | `src/management/recovery-manager.ts` | 20 | copyFileSync, existsSync, mkdirSync, renameSync, writeFileSync | | `src/web-server/routes/cliproxy-stats-routes.ts` | 20 | closeSync, existsSync, fstatSync, mkdirSync, openSync, readdirSync, readFileSync, readSync, renameSync, statSync, writeFileSync | diff --git a/scripts/hardening-inventory.js b/scripts/hardening-inventory.js index f374e20f..c432aaed 100644 --- a/scripts/hardening-inventory.js +++ b/scripts/hardening-inventory.js @@ -60,9 +60,10 @@ const SYNC_CALL_NAMES = [ 'writeSync', 'writevSync', ]; - -const SYNC_CALL_LINE_REGEX = new RegExp(`\\b(?:fs\\.)?(?:${SYNC_CALL_NAMES.join('|')})\\b`); -const SYNC_CALL_CAPTURE_REGEX = new RegExp(`\\b(?:fs\\.)?(${SYNC_CALL_NAMES.join('|')})\\b`, 'g'); +const SYNC_CALL_CAPTURE_REGEX = new RegExp( + `(?:\\bfs(?:\\s*\\?\\.)?\\s*\\.\\s*|(?