v2.64.1
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_endtranscript) become smallimage_referenceframes 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
errorevents 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.