RuntimeRegistry is not fully covered by the resolution-freeze checker
Limitation
RuntimeRegistry's type_ids (surface-name→SymbolId translation for
sites with no already-threaded id) and pattern_methods (structural,
pattern-dispatched method names) remain genuinely name-keyed by design.
tools/check_no_semantic_name_lookup.py's own docstring names
RuntimeRegistry as "a separate, adjacent concern with its own
nuances... not yet brought under this check" — the checker documents the
gap itself rather than silently missing it.
Impact
The resolution-freeze invariant (arch.resolution.requirement-1) is not
mechanically verified for these two RuntimeRegistry paths the way it is
for the frontend's own identity tables. A regression that reintroduced a
semantic name lookup here would not be caught by the existing CI backstop.
Affects
Resolution
None yet. tools/check_no_semantic_name_lookup.py's own "Deliberately NOT
scanned" section names extending SCAN_FILES to cover RuntimeRegistry as
the straightforward next step.