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

+6 -6
View File
@@ -728,7 +728,7 @@ def _all_pass_probes():
_probe("toolchain", blocker=False),
_probe("android_adb", metadata={"installed": True, "adb_keys": {"is_corrupted": False}}),
_probe(
"gemini_api_key",
"openai_api_key",
summary="Active (Gemini)",
description="Gemini credential is active (sk-RAW...cdef).",
metadata={
@@ -815,7 +815,7 @@ def test_cli_doctor_all_pass_renders_table_in_fix_order(monkeypatch):
"Title python_runtime",
"Title system_config",
"Title integration_host",
"Title gemini_api_key",
"Title openai_api_key",
"Title android_adb",
"Title toolchain",
"Title vision_ocr_key",
@@ -917,7 +917,7 @@ def test_cli_doctor_json_shape_and_ready_verdict(monkeypatch):
"python_runtime",
"system_config",
"integration_host",
"gemini_api_key",
"openai_api_key",
"android_adb",
"toolchain",
"vision_ocr_key",
@@ -935,10 +935,10 @@ def test_cli_doctor_json_blocked_verdict_and_exit_code(monkeypatch):
"""A blocker that is not PASS makes the verdict 'blocked' and the exit code 1."""
import json
probes = [p for p in _all_pass_probes() if p.id != "gemini_api_key"]
probes = [p for p in _all_pass_probes() if p.id != "openai_api_key"]
probes.append(
_probe(
"gemini_api_key",
"openai_api_key",
status="fail",
summary="Key Missing",
description="No LLM credential found.",
@@ -954,7 +954,7 @@ def test_cli_doctor_json_blocked_verdict_and_exit_code(monkeypatch):
assert result.exit_code == 1, result.output
doc = json.loads(result.output)
assert doc["verdict"] == "blocked"
key_check = next(c for c in doc["checks"] if c["id"] == "gemini_api_key")
key_check = next(c for c in doc["checks"] if c["id"] == "openai_api_key")
assert key_check["status"] == "fail"
assert key_check["required"] is True
assert key_check["fix"] == [