feat: enable full AI automation and safe startup updates
This commit is contained in:
1 parent
2ddec53954
commit
7b1a0755e2
62 files changed
+3123
-240
No files matched your search
@@ -22,6 +22,8 @@ def isolated_settings(monkeypatch, tmp_path):
|
||||
"OPENAI_BASE_URL",
|
||||
"OPENAI_TIMEOUT_SECONDS",
|
||||
"OPENAI_MAX_RETRIES",
|
||||
"OPENAI_RETRY_INTERVAL_SECONDS",
|
||||
"OPENAI_REASONING_EFFORT",
|
||||
"ARTEMIS_VIDEO_ENABLED",
|
||||
"ARTEMIS_OUTPUTTER_ENABLED",
|
||||
"ARTEMIS_STEP_SUMMARIZER_ENABLED",
|
||||
@@ -85,7 +87,7 @@ def test_capabilities_persist_and_apply_to_new_tasks(isolated_settings):
|
||||
assert config.pro.video_analyzer.enabled is False
|
||||
assert config.outputter.enabled is False
|
||||
assert config.flash.step_summarizer.enabled is False
|
||||
service.save_capability_settings(service.CapabilitySettings())
|
||||
service.save_capability_settings(service.CapabilitySettings(video_enabled=True))
|
||||
assert load_agent_config().video_analyzer.enabled is True
|
||||
|
||||
|
||||
@@ -106,3 +108,34 @@ def test_key_not_in_validation_errors(isolated_settings):
|
||||
service.ModelSettingsUpdate(model="test", api_key="secret\nvalue")
|
||||
)
|
||||
assert "secret" not in str(exc.value)
|
||||
|
||||
|
||||
def test_reasoning_retry_settings_roundtrip(isolated_settings):
|
||||
result = service.save_model_settings(service.ModelSettingsUpdate(model="gpt-5.6-luna"))
|
||||
assert result["timeout_seconds"] == 300
|
||||
assert result["max_retries"] == 5
|
||||
assert result["retry_interval_seconds"] == 10
|
||||
assert result["reasoning_effort"] == "high"
|
||||
saved = Settings(_env_file=isolated_settings)
|
||||
assert saved.OPENAI_REASONING_EFFORT == "high"
|
||||
assert parse_llm_config().operator.reasoning_effort == "high"
|
||||
service.save_model_settings(
|
||||
service.ModelSettingsUpdate(model="custom", reasoning_effort="default")
|
||||
)
|
||||
assert parse_llm_config().operator.reasoning_effort == "default"
|
||||
|
||||
|
||||
def test_responses_payload_has_reasoning_and_no_sdk_retry(monkeypatch):
|
||||
from artemis.llm.router import ModelEndpoint, ModelFactory
|
||||
from unittest.mock import Mock
|
||||
|
||||
factory = Mock()
|
||||
monkeypatch.setattr("langchain_openai.ChatOpenAI", factory)
|
||||
ModelFactory.create_model(
|
||||
ModelEndpoint(api_key="test-only", reasoning_effort="high", max_retries=5)
|
||||
)
|
||||
assert factory.call_args.kwargs["reasoning_effort"] == "high"
|
||||
assert factory.call_args.kwargs["max_retries"] == 0
|
||||
assert factory.call_args.kwargs["use_responses_api"] is True
|
||||
ModelFactory.create_model(ModelEndpoint(api_key="test-only", reasoning_effort="default"))
|
||||
assert "reasoning_effort" not in factory.call_args.kwargs
|
||||
Reference in new issue
Block a user