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

+5 -5
View File
@@ -1005,7 +1005,7 @@ async def test_capsule_outage_without_fallback_exhausts_to_failed():
assert service.get_summary("chunk:1-2") is None
def test_capsule_fallback_model_resolution_google_only_and_not_primary():
def test_capsule_fallback_model_resolution_openai_only_and_not_primary():
mgr = HistoryChunkManager(
capsule_service=StubCapsuleService(),
chunking_config=SimpleNamespace(
@@ -1024,13 +1024,13 @@ def test_capsule_fallback_model_resolution_google_only_and_not_primary():
)
assert (
mgr._resolve_capsule_fallback_model(ctx_with("google", "gemini-3.6-flash"))
mgr._resolve_capsule_fallback_model(ctx_with("openai", "gemini-3.6-flash"))
== "gemini-3.6-flash"
)
# Non-google fallbacks cannot ride the raw google model path.
assert mgr._resolve_capsule_fallback_model(ctx_with("openai", "gpt-4o-mini")) is None
# Non-Responses providers are rejected.
assert mgr._resolve_capsule_fallback_model(ctx_with("google", "gpt-4o-mini")) is None
# A fallback identical to the primary adds nothing.
assert mgr._resolve_capsule_fallback_model(ctx_with("google", "gemini-3.7-flash")) is None
assert mgr._resolve_capsule_fallback_model(ctx_with("openai", "gemini-3.7-flash")) is None
@pytest.mark.asyncio