@@ -40,6 +40,14 @@ def test_infer_fallback_labels_marks_core_for_runtime_changes() -> None:
4040 assert labels == {"feature:core" }
4141
4242
43+ def test_infer_fallback_labels_marks_sessions_for_extensions_memory_changes () -> None :
44+ labels = pr_labels .infer_fallback_labels (
45+ ["src/agents/extensions/memory/advanced_sqlite_session.py" ]
46+ )
47+
48+ assert labels == {"feature:sessions" }
49+
50+
4351def test_compute_desired_labels_removes_stale_fallback_labels () -> None :
4452 desired = pr_labels .compute_desired_labels (
4553 pr_context = pr_labels .PRContext (),
@@ -100,6 +108,24 @@ def test_compute_desired_labels_infers_bug_from_fix_title() -> None:
100108 assert desired == {"bug" , "feature:core" }
101109
102110
111+ def test_compute_desired_labels_infers_sessions_for_extensions_memory_fix () -> None :
112+ desired = pr_labels .compute_desired_labels (
113+ pr_context = pr_labels .PRContext (title = "fix(memory): honor custom table names" ),
114+ changed_files = [
115+ "src/agents/extensions/memory/advanced_sqlite_session.py" ,
116+ "tests/extensions/memory/test_advanced_sqlite_session.py" ,
117+ ],
118+ diff_text = "" ,
119+ codex_ran = True ,
120+ codex_output_valid = True ,
121+ codex_labels = [],
122+ base_sha = None ,
123+ head_sha = None ,
124+ )
125+
126+ assert desired == {"bug" , "feature:sessions" }
127+
128+
103129def test_compute_managed_labels_preserves_model_only_labels_without_signal () -> None :
104130 managed = pr_labels .compute_managed_labels (
105131 pr_context = pr_labels .PRContext (),
0 commit comments