@@ -449,7 +449,7 @@ def test_generate_commit_with_ai_failure(self, mock_console, mock_create_client,
449449 @patch ("tgit.commit.commit_prompt_template" )
450450 @patch ("tgit.commit.settings" )
451451 def test_generate_commit_with_ai_reasoning_model (self , mock_settings , mock_template , mock_console , mock_create_client , mock_check ):
452- """Test reasoning effort is added for reasoning-capable models ."""
452+ """Test legacy reasoning models keep the existing effort value ."""
453453 mock_client = Mock ()
454454 mock_create_client .return_value = mock_client
455455 mock_template .render .return_value = "system prompt"
@@ -468,6 +468,33 @@ def test_generate_commit_with_ai_reasoning_model(self, mock_settings, mock_templ
468468 _ , kwargs = mock_client .responses .parse .call_args
469469 assert kwargs ["reasoning" ] == {"effort" : "minimal" }
470470
471+ @patch ("tgit.commit._check_openai_availability" )
472+ @patch ("tgit.commit._create_openai_client" )
473+ @patch ("tgit.commit.console" )
474+ @patch ("tgit.commit.commit_prompt_template" )
475+ @patch ("tgit.commit.settings" )
476+ def test_generate_commit_with_ai_gpt5_reasoning_model_uses_low_effort (
477+ self , mock_settings , mock_template , mock_console , mock_create_client , mock_check
478+ ):
479+ """Test GPT-5 reasoning models use a supported effort value."""
480+ mock_client = Mock ()
481+ mock_create_client .return_value = mock_client
482+ mock_template .render .return_value = "system prompt"
483+ mock_settings .model = "gpt-5.4-mini"
484+
485+ mock_response = Mock ()
486+ mock_commit_data = CommitData (type = "fix" , scope = None , msg = "correct bug" , is_breaking = False , secrets = [])
487+ mock_response .output_parsed = mock_commit_data
488+ mock_client .responses .parse .return_value = mock_response
489+
490+ result = _generate_commit_with_ai ("diff content" , None , "main" )
491+
492+ assert result == mock_commit_data
493+ mock_check .assert_called_once ()
494+ mock_create_client .assert_called_once ()
495+ _ , kwargs = mock_client .responses .parse .call_args
496+ assert kwargs ["reasoning" ] == {"effort" : "low" }
497+
471498
472499class TestGetAICommand :
473500 """Test get_ai_command function."""
0 commit comments