Track the standalone bounded two-pass indexing split requested and approved in #1925 (maintainer ruling: #1925 (comment); detailed scope: #1925 (comment)).
The current full-cache path retains every file's complete extraction result through global resolution. #2013 already moved traversal scratch out of those results; the remaining extraction retention still scales with the entire repository. This is the retention portion discussed in #1997, not a claim to enforce a process-wide memory budget or solve all of that issue's consequences.
The approved split adds opt-in bounded batches: register definitions and retain only compact definition/import metadata in pass A, build cross-file registries against the complete project, then re-extract/resolve/release one batch at a time in pass B. It must preserve Java cross-file resolution, CBM_DISABLE_LSP_CROSS, graph/surface output and parse-coverage diagnostics. Every commit must build independently, with graph parity and memory/time measurements separated from unconditional optimizations.
No global scheduler, worker-scoping patch, TSNodeStack/result-array optimization or complexity-order rewrite is included. Worker scoping and complexity ordering remain with #2076 and #2079. #1925 remains the overall discussion entry point.
Track the standalone bounded two-pass indexing split requested and approved in #1925 (maintainer ruling: #1925 (comment); detailed scope: #1925 (comment)).
The current full-cache path retains every file's complete extraction result through global resolution. #2013 already moved traversal scratch out of those results; the remaining extraction retention still scales with the entire repository. This is the retention portion discussed in #1997, not a claim to enforce a process-wide memory budget or solve all of that issue's consequences.
The approved split adds opt-in bounded batches: register definitions and retain only compact definition/import metadata in pass A, build cross-file registries against the complete project, then re-extract/resolve/release one batch at a time in pass B. It must preserve Java cross-file resolution, CBM_DISABLE_LSP_CROSS, graph/surface output and parse-coverage diagnostics. Every commit must build independently, with graph parity and memory/time measurements separated from unconditional optimizations.
No global scheduler, worker-scoping patch, TSNodeStack/result-array optimization or complexity-order rewrite is included. Worker scoping and complexity ordering remain with #2076 and #2079. #1925 remains the overall discussion entry point.