events-and-streaming changedmanaged-agents/events-and-streaming
Nearest release: v2.1.317, published 2 hours before this site recorded the change. Shown because the two are within 24 hours of each other. Nothing here says the release caused the edit.
Recorded here
Lines+6added
Lines−18removed
From line
223
where the diff opens
First seen
14 Aug 2026
this site's first read of the page
Recorded edits37to this page, all time
The whole hunk
from line 223, old and new numbered
/
from line 223
223223 break events;
224224 }
225225 case SESSION_ERROR -> {
226 // The `message` field spans all error variants; read it from the raw JSON.
227 var errorMessage =
228 event.asSessionError().error()._json().orElse(null) instanceof JsonObject json
229 ? json.values().get("message").asStringOrThrow()
230 : "unknown";
231 IO.println("\n[Error: " + errorMessage + "]");
226 IO.println("\n[Error: " + event.asSessionError().error().message() + "]");
232227 break events;
233228 }
234229 }
from line 444
449444 ```java Java
450445 try (var stream = client.beta().sessions().events().streamStreaming(session.id())) {
451446 // Stream is open and buffering. List history before tailing live.
452 // Every event variant carries `id`; read it from the raw JSON to dedup across variants.
453447 var seenEventIds = new HashSet<String>();
454448 for (var pastEvent : client.beta().sessions().events().list(session.id()).autoPager()) {
455 if (pastEvent._json().orElseThrow() instanceof JsonObject json) {
456 seenEventIds.add(json.values().get("id").asStringOrThrow());
457 }
449 seenEventIds.add(pastEvent.id());
458450 }
459451
460452 // Tail live events; Set.add returns false for already-seen IDs, skipping the replay.
461453 stream.stream()
462 .filter(event -> event._json().orElseThrow() instanceof JsonObject json
463 && seenEventIds.add(json.values().get("id").asStringOrThrow()))
454 .filter(event -> event.id().map(seenEventIds::add).orElse(true))
464455 .takeWhile(event -> !event.isSessionStatusIdle())
465456 .filter(BetaManagedAgentsStreamSessionEvents::isAgentMessage)
466457 .forEach(event -> event.asAgentMessage().content()
from line 1472
14811472 var events = await client.Beta.Sessions.Events.List(session.ID);
14821473 foreach (var sessionEvent in events.Items)
14831474 {
1484 Console.WriteLine($"[{sessionEvent.Json.GetProperty("type").GetString()}] {sessionEvent.ProcessedAt}");
1475 Console.WriteLine($"[{sessionEvent.Type.Raw()}] {sessionEvent.ProcessedAt}");
14851476 }
14861477 ```
14871478
from line 1489
14981489 ```java Java
14991490 var events = client.beta().sessions().events().list(session.id());
15001491 for (var event : events.data()) {
1501 var eventJson = event._json().orElseThrow().convert(JsonNode.class);
1502 var processedAt = eventJson.path("processed_at");
1503 IO.println("[" + eventJson.get("type").asText() + "] "
1504 + (processedAt.isTextual() ? processedAt.asText() : "null"));
1492 IO.println("[" + event.type().asString() + "] " + event.processedAt().orElse(null));
15051493 }
15061494 ```
15071495
from line 1548
15601548 });
15611549 foreach (var sessionEvent in events.Items)
15621550 {
1563 Console.WriteLine($"[{sessionEvent.Json.GetProperty("type").GetString()}] {sessionEvent.ProcessedAt}");
1551 Console.WriteLine($"[{sessionEvent.Type.Raw()}] {sessionEvent.ProcessedAt}");
15641552 }
15651553 ```
15661554
No line in this hunk matches that.