feat: add official Codex skill and harden task execution

Install and update artemis-use with task diagnostics and plugin guidance. Preserve cross-device file receipts, review canonical reports, guard stage transitions and reduce small history summaries. Improve exploration lifecycle, request recovery and browser live connections.
This commit is contained in:
chenmingxuan committed 2026-10-18 14:18:37 +08:00
1 parent 2328a4df0c
commit e1ea099592
128 files changed
+4944 -700

No files matched your search

@@ -99,6 +99,26 @@ def test_video_analyzer_bound_only_when_recording_tools_enabled(mock_context):
HISTORY_TOOLS = {"search_history", "replay_steps", "get_step_screenshot"}
@pytest.mark.parametrize("target", ["android", "computer"])
def test_flash_binds_task_text_delivery_only_when_trace_available(mock_context, tmp_path, target):
from types import SimpleNamespace
mock_context.execution_target = target
with patch("artemis.controllers.unified_controller.get_driver"):
runner = FlashRunner(mock_context, goal="写报告")
tools = runner._get_tools()
assert "save_note" not in {t.name for t in tools}
assert "`save_note`" not in runner._render_system_prompt(tools)
mock_context.data_engine = SimpleNamespace(base_dir=tmp_path)
tools = runner._get_tools()
names = {t.name for t in tools}
assert {"save_note", "read_note", "list_notes"} <= names
save = next(t for t in tools if t.name == "save_note")
assert save.parameters["required"] == ["key", "content"]
prompt = runner._render_system_prompt(tools)
assert "notes/output.md" in prompt and "`save_note`" in prompt
def test_history_tools_bound_only_with_a_data_engine_session(mock_context):
with patch("artemis.controllers.unified_controller.get_driver"):
# No DataEngine: nothing to read, the tools stay out (as in Pro).