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:
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
|
||||
|
||||
Reference in new issue
Block a user