feat(admin): add five-identifier ranked equipment search (Phase 6.4 Stream B.5)
Implements the missing Stream B.5 search from the Phase 6.4 plan:
- EquipmentService.SearchAsync scopes to a cluster, scores hits across
ZTag / MachineCode / SAPID / EquipmentId / EquipmentUuid (decision #117):
exact = 100, prefix = 50, fuzzy (opt-in) = 20; published generation
outranks draft on equal scores per spec.
- EquipmentSearchHit record carries Score + MatchedField for badge display.
- EquipmentTab.razor gains a search panel with per-row matched-field chips
(green exact, amber prefix, grey fuzzy) and fuzzy opt-in checkbox.
- 14 new unit tests in EquipmentSearchTests.cs (Category=Unit) cover exact,
prefix, fuzzy, case-insensitivity, tie-break, cross-cluster isolation, and
maxResults cap; all 148 admin unit tests pass.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>