|
| 1 | +{ |
| 2 | + "metadata": { |
| 3 | + "collectedAt": "2026-06-04T08:42:54.270Z", |
| 4 | + "phase": "0.3", |
| 5 | + "branch": "feature/perf-modular-optimization", |
| 6 | + "script": "node scripts/collectMetricsBaseline.mjs", |
| 7 | + "command": "npm run metrics:baseline", |
| 8 | + "supplementalCommands": [ |
| 9 | + "npm run size", |
| 10 | + "find . -type f \\( -name '*.ts' -o -name '*.tsx' \\) [excludes]" |
| 11 | + ] |
| 12 | + }, |
| 13 | + "bundle": { |
| 14 | + "source": "size-limit (npm run size)", |
| 15 | + "entry": { |
| 16 | + "sizeLimit": "350 kB", |
| 17 | + "size": "72.03 kB", |
| 18 | + "loadingTime": "1.5 s on slow 3G", |
| 19 | + "runningTime": "48 ms on Snapdragon 410" |
| 20 | + }, |
| 21 | + "vendor": { |
| 22 | + "sizeLimit": "3.7 MB", |
| 23 | + "size": "1.27 MB", |
| 24 | + "loadingTime": "24.9 s on slow 3G", |
| 25 | + "runningTime": "112 ms on Snapdragon 410" |
| 26 | + }, |
| 27 | + "gameRuntime": { |
| 28 | + "sizeLimit": "3 MB", |
| 29 | + "size": "636.56 kB", |
| 30 | + "loadingTime": "12.5 s on slow 3G", |
| 31 | + "runningTime": "81 ms on Snapdragon 410" |
| 32 | + } |
| 33 | + }, |
| 34 | + "codeStats": { |
| 35 | + "tsTsxFileCount": 2916, |
| 36 | + "tsTsxLineCount": 1020698, |
| 37 | + "note": "Includes all .ts/.tsx under project root, excluding node_modules/.git/dist/coverage/.tmp" |
| 38 | + }, |
| 39 | + "circularDependencies": { |
| 40 | + "tool": "madge", |
| 41 | + "filesProcessed": 1501, |
| 42 | + "circularCount": 15, |
| 43 | + "warnings": 74, |
| 44 | + "ok": false, |
| 45 | + "exitCode": 1, |
| 46 | + "detailsFile": ".tmp/baseline-circular.txt" |
| 47 | + }, |
| 48 | + "deadExports": { |
| 49 | + "tool": "ts-prune", |
| 50 | + "deadExportCount": 5615, |
| 51 | + "ok": true, |
| 52 | + "exitCode": 0, |
| 53 | + "detailsFile": ".tmp/baseline-dead.txt" |
| 54 | + }, |
| 55 | + "unusedCode": { |
| 56 | + "tool": "knip", |
| 57 | + "unusedFiles": 420, |
| 58 | + "unusedExports": 1415, |
| 59 | + "unusedExportedTypes": 1032, |
| 60 | + "unusedDevDependencies": 5, |
| 61 | + "unusedDevDependenciesList": [ |
| 62 | + "@alloc/quick-lru", |
| 63 | + "@testing-library/jest-dom", |
| 64 | + "ast-grep", |
| 65 | + "depcheck", |
| 66 | + "tslib" |
| 67 | + ], |
| 68 | + "unlistedBinaries": 1, |
| 69 | + "unlistedBinariesList": [ |
| 70 | + "wrangler (.github/workflows/deploy.yml)" |
| 71 | + ], |
| 72 | + "ok": false, |
| 73 | + "exitCode": 1, |
| 74 | + "detailsFile": ".tmp/baseline-unused.txt" |
| 75 | + }, |
| 76 | + "tests": { |
| 77 | + "tool": "vitest run + manual glob", |
| 78 | + "testFiles": 96, |
| 79 | + "testCases": 2137, |
| 80 | + "vitestResult": { |
| 81 | + "testFilesPassed": 96, |
| 82 | + "testsPassed": 2149, |
| 83 | + "duration": "69.27s" |
| 84 | + }, |
| 85 | + "ok": true, |
| 86 | + "exitCode": 0, |
| 87 | + "detailsFile": ".tmp/baseline-tests.txt" |
| 88 | + }, |
| 89 | + "summary": { |
| 90 | + "totalSteps": 5, |
| 91 | + "okSteps": 3, |
| 92 | + "failSteps": 2, |
| 93 | + "failSoftTools": ["madge", "knip"], |
| 94 | + "notes": "Script uses fail-soft: madge and knip exited non-zero but their raw output is captured for review. Follow-up phases can decide whether to remediate or document the failures." |
| 95 | + } |
| 96 | +} |
0 commit comments