Files
filip131311 98fe7a86fc test(profiler): type component-names tests with the module's exported types (#771)
Unbreaks the **Dead Code** gate on main, red since #663 merged.

## What happened

#663 branched before the knip workflow existed (#572), so its own PR
checks never ran the gate. Its `component-names.ts` exports three types
with no importers — `StrippedName`, `ComponentAnnotation`,
`ComponentNameResolution` — which pushed the knip second pass to **218**
parked issues against the **215** ceiling. Every open PR now inherits
the red check (e.g. #687, whose own commit adds no parked items).

Local runs hid this: counted the way `knip.jsonc` prescribes — against a
tree with **no build output** — the failure reproduces exactly.

## The fix

Import the types where the tests naturally need them, which also removes
a wart: the two `renderComponentNameMiss(r as never)` casts existed
precisely because the narrowing `ComponentNameResolution` enables was
never written. The new `expectMiss` helper narrows properly and fails
loudly if the resolver ever stops returning a miss.

No ceiling change: 47 + 156 + 12 = **215**, exactly at the limit. Note
the budget now has zero headroom — the next PR that parks an export will
trip it, which is the gate working as designed.

## Checks

- clean-tree `npm run knip` exit 0 (both passes)
- component-names tests 18/18, tool-server test typecheck clean,
prettier clean

🤖 Generated with [Claude Code](https://claude.com/claude-code)
2026-08-11 15:37:28 +02:00
..