cc76249a69
SDK 2.0.1 recomputes Server.ServiceLevel from session headroom on every session create/close and overwrites any value >= 200 unless a provider has claimed it through IServerServiceLevelControl.ClaimServiceLevelControl. SdkServiceLevelPublisher never claimed it, so on the docker-dev pair both nodes read 255 as soon as a client connected while their own metrics showed 250 (Primary) and 240 (Secondary); the Stale tier's 200 was lifted to 255 too. Levels below 200 (100, 0) were untouched, which is why the bootstrap 100 showed briefly. The publisher now claims the value at construction and writes through the SDK's writer; a server without the claim (test doubles) keeps the diagnostics-guarded write. New Published_level_survives_later_sessions (250/240/200) fails without the claim (reads 255) and passes with it. Claude-Session: https://claude.ai/code/session_01GT67ACmpMR7b9LGRPLijMi