@@ -62,7 +62,7 @@ describe("Codex catalog routed normalization", () => {
6262 expect ( routed ) . not . toHaveProperty ( "tool_mode" ) ;
6363 expect ( routed ) . not . toHaveProperty ( "multi_agent_version" ) ;
6464 expect ( routed ) . not . toHaveProperty ( "use_responses_lite" ) ;
65- expect ( routed ) . not . toHaveProperty ( "supports_websockets" ) ;
65+ expect ( routed ?. supports_websockets ) . toBe ( true ) ;
6666 expect ( routed ) . not . toHaveProperty ( "additional_speed_tiers" ) ;
6767 expect ( routed ) . not . toHaveProperty ( "service_tier" ) ;
6868 expect ( routed ) . not . toHaveProperty ( "service_tiers" ) ;
@@ -99,24 +99,28 @@ describe("Codex catalog routed normalization", () => {
9999 expect ( native ?. tool_mode ) . toBe ( "code" ) ;
100100 expect ( native ?. multi_agent_version ) . toBe ( "v2" ) ;
101101 expect ( native ?. use_responses_lite ) . toBe ( true ) ;
102- // Phase 132 : websocket advertisement is explicit opt-in, not inherited from templates .
103- expect ( native ) . not . toHaveProperty ( "supports_websockets" ) ;
102+ // Phase 133 : websocket advertisement is default-on after Phase 132 hardening .
103+ expect ( native ?. supports_websockets ) . toBe ( true ) ;
104104 expect ( native ?. web_search_tool_type ) . toBe ( "text_and_image" ) ;
105105 expect ( native ?. supports_search_tool ) . toBe ( true ) ;
106106 expect ( native ?. service_tier ) . toBe ( "priority" ) ;
107107 expect ( native ?. service_tiers ) . toEqual ( [ { id : "priority" } ] ) ;
108108 } ) ;
109109
110- test ( "buildCatalogEntries advertises supports_websockets only on explicit opt-in " , ( ) => {
110+ test ( "buildCatalogEntries advertises supports_websockets by default with explicit opt-out " , ( ) => {
111111 const goModels = [ { provider : "anthropic" , id : "claude-sonnet-4-6" , owned_by : "anthropic" } ] ;
112112
113- const off = buildCatalogEntries ( nativeTemplate ( ) , [ "gpt-5.5" ] , goModels ) ;
114- expect ( off . find ( e => e . slug === "gpt-5.5" ) ) . not . toHaveProperty ( "supports_websockets" ) ;
115- expect ( off . find ( e => e . slug === "anthropic/claude-sonnet-4-6" ) ) . not . toHaveProperty ( "supports_websockets" ) ;
113+ const defaultOn = buildCatalogEntries ( nativeTemplate ( ) , [ "gpt-5.5" ] , goModels ) ;
114+ expect ( defaultOn . find ( e => e . slug === "gpt-5.5" ) ?. supports_websockets ) . toBe ( true ) ;
115+ expect ( defaultOn . find ( e => e . slug === "anthropic/claude-sonnet-4-6" ) ?. supports_websockets ) . toBe ( true ) ;
116116
117117 const on = buildCatalogEntries ( nativeTemplate ( ) , [ "gpt-5.5" ] , goModels , undefined , true ) ;
118118 expect ( on . find ( e => e . slug === "gpt-5.5" ) ?. supports_websockets ) . toBe ( true ) ;
119119 expect ( on . find ( e => e . slug === "anthropic/claude-sonnet-4-6" ) ?. supports_websockets ) . toBe ( true ) ;
120+
121+ const off = buildCatalogEntries ( nativeTemplate ( ) , [ "gpt-5.5" ] , goModels , undefined , false ) ;
122+ expect ( off . find ( e => e . slug === "gpt-5.5" ) ) . not . toHaveProperty ( "supports_websockets" ) ;
123+ expect ( off . find ( e => e . slug === "anthropic/claude-sonnet-4-6" ) ) . not . toHaveProperty ( "supports_websockets" ) ;
120124 } ) ;
121125
122126 test ( "fallback routed entries still receive explicit search metadata" , ( ) => {
0 commit comments