feat: release 2.2.0 with PC-only tests and execution reliability fixes

Unify task scheduling and queue state, fix Android input and observation recovery, preserve screenshot paths, and match final review criteria accurately. Add collapsible copyable results and publish the complete 2.1.0 upgrade notes. Validation: 3189 backend tests, 326 frontend tests, 24 client tests, production build and quality gates.
This commit is contained in:
chenmingxuan committed 2026-10-27 01:13:41 +08:00
1 parent fac4ccb760
commit be6e8c2abd
79 files changed
+2263 -277

No files matched your search

+26
View File
@@ -89,6 +89,32 @@ def test_update_trace_status_normalizes_success_alias(temp_trace_env):
assert persisted["status"] == "completed"
def test_conditional_status_update_checks_state_after_acquiring_lock(temp_trace_env, monkeypatch):
from contextlib import contextmanager
trace_store.init_trace("late-worker", "Test task", "Pro")
trace_store.update_trace_status("late-worker", "pending")
lock = trace_store._status_lock
terminal = {}
@contextmanager
def cancelled_before_lock(path):
with lock(path):
data = trace_store.read_status("late-worker")
data.update(status="cancelled", result="user stopped", end_time=123)
trace_store.write_status("late-worker", data)
terminal.update(data)
yield
monkeypatch.setattr(trace_store, "_status_lock", cancelled_before_lock)
result = trace_store.update_trace_status(
"late-worker", "running", expected_status="pending", result="must not overwrite"
)
assert result == terminal
assert trace_store.read_status("late-worker") == terminal
def test_read_nonexistent_status(temp_trace_env):
non_existent = str(uuid.uuid4())
assert trace_store.read_status(non_existent) is None