* test(cost): reproduce model aggregation collisions in display labels * fix(cost): separate model identity from display labels Aggregate per-model cost and token totals by the raw model identity. Display labels are bounded to 120 characters and collapse whitespace, so distinct models could share one label and merge into a single row. Identical names still aggregate; distinct names stay distinct. Tests: tst_cost_model_identity (10 pass), tst_provider_normalizer (174 pass), tst_cost_presentation (112 pass), tst_cost_refresh_policy (13 pass), test_cost_context.py (OK). * fix(cost): track raw model identity pin in security checks costModelSummary now keys aggregates by the raw model identity instead of the bounded display label. Update the pinned hardening fragments to the new screening site.
4 files changedLine totals unavailable