Evidence and scope
Follow-up to #416/#838 and the fresh verified 20261008T202953Z matrix. Home leads only 1/20; repeated resolver work remains a candidate shared cost for module-heavy workloads. Current Resolver.resolve constructs and arena-allocates the full containing-file + NUL + specifier string before cache.get, including repeated hits. The CLI adapter invokes this path under its shared resolver lock. Allocation count and retained arena memory therefore grow with hits even though the key/result are already present.
Proposed work
Use a borrowed/adapted lookup of the same byte-exact concatenated key, allocating owned key storage only for actual insertion. Keep the existing cache representation and lifetime where practical. No benchmark recognition, approximated resolution, suppressed tracing/diagnostics, foreign TypeIds, numeric semantic limits, or bypassed importer/mode conditions. Preserve trace banners, the per-call ambiguous_root reset, bundler importer-extension/module conditions, non-caching of TS2209/2210 ambiguity failures, negative cache behavior and complete resolution on allocation failure.
Acceptance
- Prove borrowed hash/equality matches the current full key across empty/mixed/binary segments and delimiter boundaries.
- Allocation/arena-growth controls for repeated positive and negative hits; source-key ownership and every insertion allocation-failure path.
- Full resolver/checker/Program/driver/CLI gates, semantic source/option controls and pinned Zod diagnostic identity comparison.
- Exact-parent unfiltered paired confirmation plus the complete family screen and independent adverse-family rechecks; include failure/inconclusive outcomes.
- Publish source and evidence in small issue-linked Chris commits without coauthors, detailed docs and a brief README table. Do not claim a new competitor ranking without a complete admitted matrix.