Priority: P3 · Review finding: #21
src/projects.js getScan re-reads and JSON.parses the entire scan file on every request. With the review page's 2 s watch poll plus grid page loads, large scans get re-parsed constantly.
Fix: small mtime-keyed cache in projects.js (invalidate on writeJson to the same path or when the file mtime changes). Keep it transparent to callers.
Priority: P3 · Review finding: #21
src/projects.jsgetScanre-reads andJSON.parses the entire scan file on every request. With the review page's 2 s watch poll plus grid page loads, large scans get re-parsed constantly.Fix: small mtime-keyed cache in
projects.js(invalidate onwriteJsonto the same path or when the file mtime changes). Keep it transparent to callers.