perf: preserve conversation prefixes across agent turns
This commit is contained in:
1 parent
1440a1f508
commit
f1bb5d02aa
19 files changed
+552
-205
No files matched your search
@@ -65,7 +65,9 @@ def test_burst_results_reach_responses_once_with_images_before_compression(tmp_p
|
||||
actions[2].pop("post_image_name")
|
||||
actions[2]["attempts"] = ["Skipped"]
|
||||
report = {"status": "failed", "execution": actions}
|
||||
ledger = TranscriptLedger(image_scrub_depth=1, pending_grace_steps=0)
|
||||
ledger = TranscriptLedger(
|
||||
image_scrub_depth=1, pending_grace_steps=0, context_budget_tokens=300_000
|
||||
)
|
||||
_stage(ledger, actions)
|
||||
ledger.commit_staged(
|
||||
step_key="step1",
|
||||
@@ -84,13 +86,17 @@ def test_burst_results_reach_responses_once_with_images_before_compression(tmp_p
|
||||
assert len([item for item in payload if item.get("type") == "function_call_output"]) == 4
|
||||
assert str(payload).count(base64.b64encode(image.read_bytes()).decode()) == 3
|
||||
assert f"data:{Image.MIME[image_format]};base64," in str(payload)
|
||||
# No duplicate outputs at the following turn; old images are eligible for scrubbing again.
|
||||
# No duplicate outputs or rewritten images on the following ordinary turn.
|
||||
ledger.commit_staged(
|
||||
validator_result=report, tool_results=plugin_result_messages(report, engine)
|
||||
)
|
||||
later = ledger.render([])
|
||||
assert len([m for m in later if isinstance(m, ToolMessage)]) == 4
|
||||
assert str(later).count(base64.b64encode(image.read_bytes()).decode()) == 3
|
||||
ledger.compact_active()
|
||||
later = ledger.render([])
|
||||
assert str(later).count(base64.b64encode(image.read_bytes()).decode()) < 3
|
||||
assert str(messages).count(base64.b64encode(image.read_bytes()).decode()) == 3
|
||||
|
||||
|
||||
def test_missing_plugin_screenshot_keeps_real_result_and_reports_missing_evidence(tmp_path):
|
||||
|
||||
Reference in new issue
Block a user