@@ -454,6 +454,12 @@ def test_apply_overrides_preserves_static_deprecated_flag():
454454 {"provider" : "OpenAI" , "name" : "gpt-4o" , "tool_calling" : True , "deprecated" : False },
455455 {"provider" : "OpenAI" , "name" : "gpt-3.5-turbo" , "tool_calling" : True , "deprecated" : True },
456456 {"provider" : "OpenAI" , "name" : "gpt-4.5-preview" , "tool_calling" : True , "deprecated" : True },
457+ {
458+ "provider" : "OpenAI" ,
459+ "name" : "text-embedding-legacy" ,
460+ "model_type" : "embeddings" ,
461+ "deprecated" : True ,
462+ },
457463 ]
458464 snapshot = {
459465 "openai" : {
@@ -465,6 +471,11 @@ def test_apply_overrides_preserves_static_deprecated_flag():
465471 # New model not in our static list — should default to
466472 # non-deprecated unless dated-snapshot.
467473 "gpt-6" : {"id" : "gpt-6" , "tool_call" : True },
474+ "text-embedding-legacy" : {
475+ "id" : "text-embedding-legacy" ,
476+ "family" : "text-embedding" ,
477+ "release_date" : "2020-01-01" ,
478+ },
468479 },
469480 }
470481 }
@@ -475,6 +486,7 @@ def test_apply_overrides_preserves_static_deprecated_flag():
475486 assert by_name ["gpt-3.5-turbo" ]["deprecated" ] is True
476487 assert by_name ["gpt-4.5-preview" ]["deprecated" ] is True
477488 assert by_name ["gpt-6" ]["deprecated" ] is False
489+ assert by_name ["text-embedding-legacy" ]["deprecated" ] is True
478490
479491
480492def test_apply_overrides_marks_embedding_family_as_embeddings_model_type ():
@@ -517,37 +529,37 @@ def test_apply_overrides_marks_embedding_family_as_embeddings_model_type():
517529 assert by_name ["voyage-3-embedding" ]["model_type" ] == "embeddings"
518530
519531
520- def test_apply_overrides_auto_deprecates_stale_models ():
521- """Models with last_updated older than ~30 months are auto-deprecated.
532+ def test_apply_overrides_auto_deprecates_stale_language_models_only ():
533+ """Language models older than ~30 months are auto-deprecated.
522534
523- Catches gpt-4 / gpt-4-turbo / text-embedding-ada-002 today; leaves
524- gpt-4o / text-embedding-3-* / current Claudes active .
535+ Embedding models remain active regardless of age unless the provider's
536+ static catalog explicitly marks them deprecated .
525537 """
526538 from lfx .base .models .models_dev_catalog import apply_models_dev_overrides
527539
528- fixed_now = datetime (2026 , 5 , 18 , tzinfo = timezone .utc )
540+ fixed_now = datetime (2026 , 7 , 14 , tzinfo = timezone .utc )
529541 snapshot = {
530542 "openai" : {
531543 "id" : "openai" ,
532544 "models" : {
533- # 2023-11 → 924 days as of 2026-05-18 → deprecated
545+ # 2023-11 → older than 900 days → deprecated
534546 "gpt-4" : {"id" : "gpt-4" , "release_date" : "2023-11-06" , "last_updated" : "2024-04-09" },
535547 "gpt-4-turbo" : {"id" : "gpt-4-turbo" , "release_date" : "2023-11-06" , "last_updated" : "2024-04-09" },
536- # 2022-12 → very old → deprecated
548+ # 2022-12 → very old, but embeddings are exempt from the age heuristic
537549 "text-embedding-ada-002" : {
538550 "id" : "text-embedding-ada-002" ,
539551 "family" : "text-embedding" ,
540552 "release_date" : "2022-12-15" ,
541553 "last_updated" : "2022-12-15" ,
542554 },
543- # 2024-01-25 → 844 days → still active under the 900d threshold
555+ # 2024-01-25 → over 900 days, but still active because it is an embedding
544556 "text-embedding-3-large" : {
545557 "id" : "text-embedding-3-large" ,
546558 "family" : "text-embedding" ,
547559 "release_date" : "2024-01-25" ,
548560 "last_updated" : "2024-01-25" ,
549561 },
550- # 2024-08 → 650 days → active
562+ # 2024-05 → newer than 900 days → active
551563 "gpt-4o" : {"id" : "gpt-4o" , "release_date" : "2024-05-13" , "last_updated" : "2024-08-06" },
552564 # No date at all → not auto-deprecated (insufficient signal)
553565 "gpt-future" : {"id" : "gpt-future" },
@@ -560,7 +572,7 @@ def test_apply_overrides_auto_deprecates_stale_models():
560572
561573 assert by_name ["gpt-4" ]["deprecated" ] is True
562574 assert by_name ["gpt-4-turbo" ]["deprecated" ] is True
563- assert by_name ["text-embedding-ada-002" ]["deprecated" ] is True
575+ assert by_name ["text-embedding-ada-002" ]["deprecated" ] is False
564576 assert by_name ["text-embedding-3-large" ]["deprecated" ] is False
565577 assert by_name ["gpt-4o" ]["deprecated" ] is False
566578 assert by_name ["gpt-future" ]["deprecated" ] is False
0 commit comments