fix(cost): retain partial-refresh failures only from the same source

After a command-source change the retained cost map still holds the
previous context's snapshots. A partial reply from the new source merged
those snapshots for its failed providers and then stamped the result
with the new source, re-tagging old costs as current on both the
provider meters and Usage & Spend. The merge now retains against an
empty map unless tokenCostsContext already matches costCommandSource;
same-context failure retention is unchanged.

Cover: partial-refresh QML case in test_cost_context.py (cross-source
drop + same-source retain, negative-controlled), static ui-regression
pin on the guard. CHANGELOG updated.

Co-Authored-By: Claude Code <noreply@anthropic.com>
5484f788f4Simone committed on 9/10/2026, 11:45:34 AMparent77dcf05
4 files changedLine totals unavailable