@@ -246,6 +246,24 @@ public void ParseSessionsPayload(string payloadJson)
246246 InvokePrivatePayloadParser ( "ParseSessions" , payloadJson ) ;
247247 }
248248
249+ public ModelsListInfo ParseModelsListPayload ( string payloadJson )
250+ {
251+ ModelsListInfo ? parsed = null ;
252+ EventHandler < ModelsListInfo > handler = ( _ , models ) => parsed = models ;
253+ _client . ModelsListUpdated += handler ;
254+
255+ try
256+ {
257+ InvokePrivatePayloadParser ( "ParseModelsList" , payloadJson ) ;
258+ }
259+ finally
260+ {
261+ _client . ModelsListUpdated -= handler ;
262+ }
263+
264+ return parsed ?? new ModelsListInfo ( ) ;
265+ }
266+
249267 private void InvokePrivatePayloadParser ( string methodName , string payloadJson )
250268 {
251269 using var doc = JsonDocument . Parse ( payloadJson ) ;
@@ -708,6 +726,43 @@ public void ProcessRawMessage_AgentEventLogsRawLengthWithoutPayloadContent()
708726 Assert . DoesNotContain ( logger . Logs , log => log . Contains ( "super-secret" , StringComparison . OrdinalIgnoreCase ) ) ;
709727 }
710728
729+ [ Fact ]
730+ public void ParseModelsList_PreservesConfiguredFlagPresence ( )
731+ {
732+ var helper = new GatewayClientTestHelper ( ) ;
733+
734+ var models = helper . ParseModelsListPayload ( """
735+ {
736+ "models": [
737+ { "id": "gpt-5.4", "configured": true },
738+ { "id": "gpt-5.5", "configured": false },
739+ { "id": "legacy-gateway-model" }
740+ ]
741+ }
742+ """ ) ;
743+
744+ Assert . Collection (
745+ models . Models ,
746+ model =>
747+ {
748+ Assert . Equal ( "gpt-5.4" , model . Id ) ;
749+ Assert . True ( model . HasConfiguredFlag ) ;
750+ Assert . True ( model . IsConfigured ) ;
751+ } ,
752+ model =>
753+ {
754+ Assert . Equal ( "gpt-5.5" , model . Id ) ;
755+ Assert . True ( model . HasConfiguredFlag ) ;
756+ Assert . False ( model . IsConfigured ) ;
757+ } ,
758+ model =>
759+ {
760+ Assert . Equal ( "legacy-gateway-model" , model . Id ) ;
761+ Assert . False ( model . HasConfiguredFlag ) ;
762+ Assert . False ( model . IsConfigured ) ;
763+ } ) ;
764+ }
765+
711766 [ Fact ]
712767 public void ClassifyNotification_DetectsHealthAlerts ( )
713768 {
0 commit comments