fix: improve cross-device evidence, request diagnostics and prompt efficiency

This commit is contained in:
chenmingxuan committed 2026-10-17 14:55:45 +08:00
1 parent 621f30e437
commit a66803651a
60 files changed
+3097 -160

No files matched your search

+12 -3
View File
@@ -143,7 +143,11 @@ class ScrubEdgeCompressor:
self._xml_candidates: list[int] = []
def compress(
self, messages: list[BaseMessage], *, image_scrub_depth: int | None = None
self,
messages: list[BaseMessage],
*,
image_scrub_depth: int | None = None,
protected_message_ids: set[int] | None = None,
) -> None:
"""Advance the scrub edge over newly appended messages in-place.
@@ -156,7 +160,7 @@ class ScrubEdgeCompressor:
self._discover(messages)
if not self._tracked and not self._xml_candidates:
return
self._scrub_edge(messages, image_scrub_depth)
self._scrub_edge(messages, image_scrub_depth, protected_message_ids)
# ------------------------------------------------------------------
# Discovery (incremental; frozen prefix is never rescanned)
@@ -211,7 +215,10 @@ class ScrubEdgeCompressor:
# ------------------------------------------------------------------
def _scrub_edge(
self, messages: list[BaseMessage], image_scrub_depth: int | None = None
self,
messages: list[BaseMessage],
image_scrub_depth: int | None = None,
protected_message_ids: set[int] | None = None,
) -> None:
total = len(self._tracked)
scrub_depth = max(1, int(image_scrub_depth or self._image_scrub_depth))
@@ -219,6 +226,8 @@ class ScrubEdgeCompressor:
text_depth = self._xml_scrub_depth
for pos, rec in enumerate(self._tracked):
if protected_message_ids and id(messages[rec["idx"]]) in protected_message_ids:
continue # A newly delivered tool result must be seen before it can be scrubbed.
if rec["idx"] in self._frozen:
continue
# 1 == most recent image-bearing message; a live tail outside the