Memoize Go package resolution per resolver pass so each package directory is listed once and symbol targets match the scan exactly.
Caches sorted package membership and unique or ambiguous local and exported symbol targets in a shared 8 MiB memo.
Falls back to the scan for oversized packages and for views that record filesystem facts.
Marks oversized packages so a failed build is attempted only once per pass.
Adds parity, work-count, eviction, and oversized-marker tests across disk, memory, and lazy adapters.
Confidence Score: 5/5
The PR appears safe to merge; no new actionable issues remain.
Summary
Adds bounded Go package caching for each resolver pass.
Go call-graph lookups reuse package files and symbol targets.
Both earlier unnumbered findings are addressed: oversized builds are not retried, and the comparison no longer shares cached membership. No new actionable issues were found. Tests were inspected but not run.
Diagram
%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[Go target lookup] --> B{Package already cached?}
B -->|Yes| C[Use cached target]
B -->|No| D{Package marked oversized or marker budget full?}
D -->|Yes| E[Scan package directly]
D -->|No| F[Build package index]
F --> G{Within size limit?}
G -->|Yes| H[Cache whole package]
H --> C
G -->|No| I[Remember oversized package]
I --> E