feat: add Chinese UI, Responses models, and mirrored Windows setup
CI / Python 3.12 / ubuntu-latest (push) Canceled after 0s
CI / Python 3.12 / windows-latest (push) Canceled after 0s
CI / Frontend tests and production build (push) Canceled after 0s
CI / Build and smoke-test Python packages (push) Canceled after 0s

Localize the web console and persist custom model and capability settings.
Use OpenAI Responses exclusively and move runtime limits into environment configuration.
Bootstrap uv and the virtual environment on Windows, support optional China mirrors,
and package source distributions without environments, build output, or credentials.

Update regression tests and repository quality checks for the new behavior.
This commit is contained in:
chenmingxuan committed 2026-09-22 19:16:17 +08:00
1 parent 371aa6df56
commit 2ddec53954
183 files changed
+3427 -11857

No files matched your search

+10 -12
View File
@@ -52,7 +52,7 @@ async def test_readiness_engine_run_all():
assert "python_runtime" in probe_ids
assert "system_config" in probe_ids
assert "android_adb" in probe_ids
assert "gemini_api_key" in probe_ids
assert "openai_api_key" in probe_ids
assert "vision_ocr_key" in probe_ids
assert "toolchain" in probe_ids
@@ -357,7 +357,7 @@ async def test_adb_probe_prefers_unlocked_device_when_one_is_locked(monkeypatch)
async def test_llm_credentials_probe_structure():
"""Verify LLMCredentialsProbe returns correct category and schema."""
probe = LLMCredentialsProbe()
assert probe.probe_id == "gemini_api_key"
assert probe.probe_id == "openai_api_key"
assert probe.category == ProbeCategory.CREDENTIALS
assert probe.is_blocker is True
@@ -393,19 +393,17 @@ async def test_probe_target_serial_forwards_to_adb_probe():
@pytest.mark.asyncio
async def test_credentials_probe_and_dynamic_update():
"""Verify dynamic API key updates and metadata reflection."""
async def test_credentials_probe_and_dynamic_update(monkeypatch):
from artemis.config import settings
from pydantic import SecretStr
settings.set_api_key("google", "test_gemini_key_1234567890", persist_to_env=False)
probe = LLMCredentialsProbe()
result = await probe.probe()
monkeypatch.setattr(settings, "OPENAI_API_KEY", SecretStr("test_key_1234567890"))
result = await LLMCredentialsProbe().probe()
assert result.status == ProbeStatus.PASS
assert "current_key" in result.metadata
assert result.metadata["current_key"] == "test_gemini_key_1234567890"
assert "api_keys" in result.metadata
assert result.metadata["api_keys"]["google"] == "test_gemini_key_1234567890"
assert result.id == "openai_api_key"
assert "test_key_1234567890" not in repr(result.metadata)
assert "current_key" not in result.metadata
assert "api_keys" not in result.metadata
@pytest.mark.asyncio