Files
club-3090/tools
noonghunna 4390340040 c3/detect: grade slug matches so shape guesses never masquerade as identity (F9)
A brought model serving on a curated sibling's port was PRESENTED as the
sibling: match_target_to_registry falls back exact-container -> port ->
substring, and the UI treated every match as the running model's identity.
Observed live during the Agents-A1 bring (2026-07-03): c3 showed
vllm/qwen-35b-a3b-dual serving while the rig ran agents-a1.

Detect layer (tools/tui-core, shared by c3 / c3t / estate tooling):
- ServingTarget.match_confidence records the match GRADE:
  "identity" (exact container) | "shape" (port/substring fallback) | "".

c3 renders the grade on every masquerade surface:
- estate rail: leads with the probed served id + a 👤 badge
  ("model agents-a1 👤" / dim "shape vllm/qwen-35b-a3b-dual")
- Orchestration serving card: "agents-a1 · 👤 on <slug> shape"
- Run catalog: the row badge downgrades "● serving" -> "👤 <slug> port in
  use" — a guess never claims "serving"
- Containers table + config drill: 👤-badged slug for shape matches
  (ContainerInfo.match_confidence threaded through)

Tests: 4 new tui-core matcher-grade tests; 4 new headless tests (serving
card shape/identity, rail, catalog badge); the N3 catalog fixture gains
the registry container so its intent (identity badge) is preserved.
tui-core 70/70, test-console 83/83, serve-cockpit 748/748. Live controls
on the rig: serving vllm/minimal grades identity (no visual change);
replaying the A1 port-8051 squat against the real registry grades shape.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EfF565T9eSLaqGzidyJ1Pm
2026-07-04 09:37:01 +00:00
..