Skip to content

Commit e5737aa

Browse files
committed
trace should include snapshot elements
1 parent 8a513d4 commit e5737aa

File tree

2 files changed

+15
-36
lines changed

2 files changed

+15
-36
lines changed

sentience/agent.py

Lines changed: 8 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -198,29 +198,16 @@ def act( # noqa: C901
198198

199199
# Emit snapshot trace event if tracer is enabled
200200
if self.tracer:
201-
# Include element data for live overlay visualization
202-
# Use filtered_elements for overlay (only relevant elements)
203-
elements_data = [
204-
{
205-
"id": el.id,
206-
"bbox": {
207-
"x": el.bbox.x,
208-
"y": el.bbox.y,
209-
"width": el.bbox.width,
210-
"height": el.bbox.height,
211-
},
212-
"role": el.role,
213-
"text": el.text[:50] if el.text else "", # Truncate for brevity
214-
}
215-
for el in filtered_elements[:50] # Limit to first 50 for performance
216-
]
201+
# Include ALL elements with full data for DOM tree display
202+
# Use snap.elements (all elements) not filtered_elements
203+
elements_data = [el.model_dump() for el in snap.elements]
217204

218205
# Build snapshot event data
219206
snapshot_data = {
220207
"url": snap.url,
221208
"element_count": len(snap.elements),
222209
"timestamp": snap.timestamp,
223-
"elements": elements_data, # Add element data for overlay
210+
"elements": elements_data, # Full element data for DOM tree
224211
}
225212

226213
# Always include screenshot in trace event for studio viewer compatibility
@@ -983,29 +970,16 @@ async def act( # noqa: C901
983970

984971
# Emit snapshot trace event if tracer is enabled
985972
if self.tracer:
986-
# Include element data for live overlay visualization
987-
# Use filtered_elements for overlay (only relevant elements)
988-
elements_data = [
989-
{
990-
"id": el.id,
991-
"bbox": {
992-
"x": el.bbox.x,
993-
"y": el.bbox.y,
994-
"width": el.bbox.width,
995-
"height": el.bbox.height,
996-
},
997-
"role": el.role,
998-
"text": el.text[:50] if el.text else "", # Truncate for brevity
999-
}
1000-
for el in filtered_elements[:50] # Limit to first 50 for performance
1001-
]
973+
# Include ALL elements with full data for DOM tree display
974+
# Use snap.elements (all elements) not filtered_elements
975+
elements_data = [el.model_dump() for el in snap.elements]
1002976

1003977
# Build snapshot event data
1004978
snapshot_data = {
1005979
"url": snap.url,
1006980
"element_count": len(snap.elements),
1007981
"timestamp": snap.timestamp,
1008-
"elements": elements_data, # Add element data for overlay
982+
"elements": elements_data, # Full element data for DOM tree
1009983
}
1010984

1011985
# Always include screenshot in trace event for studio viewer compatibility

sentience/trace_indexing/indexer.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,13 +58,18 @@ def _compute_snapshot_digest(snapshot_data: dict[str, Any]) -> str:
5858
# Canonicalize elements
5959
canonical_elements = []
6060
for elem in elements:
61+
# Extract is_primary and is_clickable from visual_cues if present
62+
visual_cues = elem.get("visual_cues", {})
63+
is_primary = visual_cues.get("is_primary", False) if isinstance(visual_cues, dict) else elem.get("is_primary", False)
64+
is_clickable = visual_cues.get("is_clickable", False) if isinstance(visual_cues, dict) else elem.get("is_clickable", False)
65+
6166
canonical_elem = {
6267
"id": elem.get("id"),
6368
"role": elem.get("role", ""),
6469
"text_norm": _normalize_text(elem.get("text")),
6570
"bbox": _round_bbox(elem.get("bbox", {"x": 0, "y": 0, "width": 0, "height": 0})),
66-
"is_primary": elem.get("is_primary", False),
67-
"is_clickable": elem.get("is_clickable", False),
71+
"is_primary": is_primary,
72+
"is_clickable": is_clickable,
6873
}
6974
canonical_elements.append(canonical_elem)
7075

0 commit comments

Comments
 (0)