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

@@ -72,6 +72,49 @@ def _step(i: int, subgoal: str = "hash-a", **overrides) -> dict:
return step
@pytest.mark.parametrize("minimal", [False, True])
def test_runtime_file_paths_survive_even_minimal_history_folding(minimal):
from artemis.memory.chunking import build_action_ledger
action = {
"action": "plug_pc_save",
"plugin_id": "cua-driver",
"attachments": [
{"path": "artifacts/plugins/cua-driver/footer.png", "sha256": "a" * 64, "bytes": 123}
],
}
text = build_action_ledger([_step(35, action_taken=action)], SESSION_START, minimal=minimal)
assert "Step 35" in text and "footer.png" in text and "a" * 64 in text
def test_default_larger_batches_reduce_capsule_calls_without_losing_step_index():
from artemis.config import MemoryChunkingConfig
current = MemoryChunkingConfig()
steps = [_step(i) for i in range(1, 48)]
counts = []
for minimum, target in [(3, 2000), (current.min_steps, current.target_source_tokens)]:
ledger, chunker, _, capsule = _make(
steps,
min_active=5,
min_steps=minimum,
target_tokens=target,
auto_capsule=True,
meter=lambda: 75_000,
)
_run_turns(ledger, chunker, 1, 47, lambda _: "same-stage")
counts.append(len(capsule.submitted))
consumed = {sid for c in chunker.chunks for sid in c.source_step_ids}
consumed.update(
sid for era in chunker.eras for c in era.chunks for sid in c.source_step_ids
)
remaining = {sid for turn in ledger.unchunked_turns() for sid in turn.get("step_keys", [])}
assert consumed | remaining # remaining live/frozen records are not dropped
for number in range(1, 42):
assert f"s{number}" in consumed | remaining
assert counts[1] < counts[0]
class FakeEngine:
def __init__(self, steps: list[dict], base_dir=None):
self.steps = steps