Summary
The update-check cache is parsed from a full-file read without first bounding the file size.
Evidence
src/CodeIndex/Cli/UpdateChecker.cs has ReadCache parse JsonDocument.Parse(File.ReadAllText(cachePath)). There is no maximum byte count before the full string allocation and JSON parse.
Impact
A corrupted cache file can make routine update checks allocate excessive memory or fail noisily. Because update checks run around CLI startup paths, this should stay cheap and bounded.
Suggested fix
Use a small cache-size limit before reading/parsing, ignore over-limit cache files, and preserve the existing non-fatal behavior.
Summary
The update-check cache is parsed from a full-file read without first bounding the file size.
Evidence
src/CodeIndex/Cli/UpdateChecker.cshasReadCacheparseJsonDocument.Parse(File.ReadAllText(cachePath)). There is no maximum byte count before the full string allocation and JSON parse.Impact
A corrupted cache file can make routine update checks allocate excessive memory or fail noisily. Because update checks run around CLI startup paths, this should stay cheap and bounded.
Suggested fix
Use a small cache-size limit before reading/parsing, ignore over-limit cache files, and preserve the existing non-fatal behavior.