feat: release 2.1.0 with optional Flash final AI review

Default Flash final review to off and persist the setting across the UI,
MCP, SDK and queued tasks. Keep execution separate from test verdicts.

Bundle UI fonts and licenses to remove Google Fonts from startup builds.
Align backend/frontend versions and document installation and upgrades.
This commit is contained in:
chenmingxuan committed 2026-10-23 12:36:56 +08:00
1 parent b584dae80a
commit 83bcfd54d5
52 files changed
+898 -33

No files matched your search

@@ -31,6 +31,7 @@ def isolated_settings(monkeypatch, tmp_path):
"OPENAI_REASONING_EFFORT",
"ARTEMIS_VIDEO_ENABLED",
"ARTEMIS_OUTPUTTER_ENABLED",
"ARTEMIS_FLASH_FINAL_CHECK_ENABLED",
"ARTEMIS_STEP_SUMMARIZER_ENABLED",
"ARTEMIS_SCREENSHOT_LIMIT_ENABLED",
"ARTEMIS_TASK_TIMEOUT_SECONDS",
@@ -149,6 +150,36 @@ def test_capabilities_persist_and_apply_to_new_tasks(isolated_settings):
assert load_agent_config().video_analyzer.enabled is True
def test_flash_review_defaults_off_and_persists_without_changing_pro(isolated_settings):
assert Settings(_env_file=None).ARTEMIS_FLASH_FINAL_CHECK_ENABLED is False
assert service.get_capability_settings().flash_final_check_enabled is False
assert load_agent_config().checker.final_check is True
for enabled in (True, False):
saved = service.save_capability_settings(
service.CapabilitySettings(flash_final_check_enabled=enabled)
)
assert saved.flash_final_check_enabled is enabled
assert Settings(_env_file=isolated_settings).ARTEMIS_FLASH_FINAL_CHECK_ENABLED is enabled
config = load_agent_config()
assert config.flash.final_check_enabled is enabled
assert config.checker.final_check is True
assert config.pro.checker.final_check is True
# Older clients omit the new switch; saving another setting keeps it.
assert (
service.save_capability_settings(
service.CapabilitySettings(recording_enabled=False)
).flash_final_check_enabled
is enabled
)
def test_old_checker_config_does_not_enable_flash_review(monkeypatch, tmp_path):
monkeypatch.delenv("ARTEMIS_FLASH_FINAL_CHECK_ENABLED", raising=False)
path = tmp_path / "artemis.jsonc"
path.write_text('{"agent":{"checker":{"enabled":true,"final_check":true}}}', encoding="utf-8")
assert load_agent_config(path).flash.final_check_enabled is False
def test_screenshot_json_can_override_environment(monkeypatch, tmp_path):
config_path = tmp_path / "artemis.jsonc"
config_path.write_text(