Skip to content

v2.64.1

Choose a tag to compare

@aebrer aebrer released this 01 Sep 21:15
· 13 commits to master since this release
fe50f7b

Multi-image RPC session fix

Dashboard-driven RPC sessions are no longer force-killed when multiple images are in flight simultaneously.

What changed

  • Child-side image dedupe. In dashboard mode, each unique image's bytes cross the RPC stdout pipe at most once per child process lifetime; later occurrences (prompt re-emission, tool-result re-delivery, the agent_end transcript) become small image_reference frames the dashboard resolves from its existing image cache.
  • Stdout backpressure grace. The 16 MiB stdout guard no longer kills the child the moment the queue exceeds the cap — it aborts only after 30 seconds without drain progress, so a slow-but-alive dashboard consumer survives multi-MiB image bursts.
  • Single-flight original recovery. Concurrent cache-miss original() fetches for the same image share one authoritative transcript load, collapsing the originals-mode auto-fetch storm into a single round trip.
  • Loud exit diagnostics. Child process exits now carry the last 2000 characters of child stderr into the surfaced error, so a guard abort shows its real cause instead of a bare exit code.
  • Pipe error safety. The RPC client handles error events on the child's stdin/stdout/stderr, so an EPIPE on a dying child's stdin can no longer crash the dashboard process (and every session with it).

Implemented in PR 496.