feat(config): default to WebSocket and migrate saved HTTP settings

This commit is contained in:
chenmingxuan committed 2026-11-04 17:45:52 +08:00
1 parent 2a3f43fb60
commit 04022f2eaf
18 files changed
+244 -58

No files matched your search

@@ -9,6 +9,7 @@ from apps.admin_console.services import model_settings_service as service
from artemis.config.settings import Settings, settings
from artemis.config.agent import load_agent_config
from artemis.config.llm import parse_llm_config
from artemis.config.environment import migrate_transport_default, TRANSPORT_DEFAULT_VERSION_KEY
@pytest.fixture
@@ -45,6 +46,7 @@ def isolated_settings(monkeypatch, tmp_path):
for key in keys:
monkeypatch.setattr(settings, key, getattr(settings, key))
monkeypatch.delenv(key, raising=False)
monkeypatch.delenv(TRANSPORT_DEFAULT_VERSION_KEY, raising=False)
monkeypatch.setattr(settings, "OPENAI_API_KEY", SecretStr("existing-test-secret"))
return env
@@ -86,6 +88,16 @@ def test_save_reload_and_blank_key_preserves_secret(isolated_settings):
assert dotenv_values(isolated_settings)["OPENAI_API_KEY"] == "new-test-secret"
def test_saved_http_opt_out_survives_restart_migration(isolated_settings):
result = service.save_model_settings(
service.ModelSettingsUpdate(model="test", transport="http")
)
assert result["transport"] == "http"
assert dotenv_values(isolated_settings)[TRANSPORT_DEFAULT_VERSION_KEY] == "1"
assert migrate_transport_default(isolated_settings) is False
assert Settings(_env_file=isolated_settings).OPENAI_TRANSPORT == "http"
def test_new_install_uses_playones_endpoint_without_overriding_saved_url(monkeypatch):
monkeypatch.delenv("OPENAI_BASE_URL", raising=False)
expected = "https://api-n-cd.playones.com/v1"
@@ -231,9 +243,7 @@ def test_screenshot_json_can_override_environment(monkeypatch, tmp_path):
def test_failed_write_keeps_running_settings(monkeypatch, isolated_settings):
previous = settings.OPENAI_MODEL
monkeypatch.setattr(
service.os, "replace", lambda *args: (_ for _ in ()).throw(OSError("read only"))
)
monkeypatch.setattr(os, "replace", lambda *args: (_ for _ in ()).throw(OSError("read only")))
with pytest.raises(OSError):
service.save_model_settings(service.ModelSettingsUpdate(model="not-saved"))
assert settings.OPENAI_MODEL == previous