Files
Maven/internal/ipc
claude 123b9aa961 an ipc call can be cancelled and always has a deadline (V-638)
roundtrip set no connection deadline and call checked the context once,
before sending, so a daemon that read the frame and stopped answering
parked the caller for as long as the socket stayed open.

The deadline comes from the caller's context, falling back to 120s, the
convention internal/voice/client.go already had. A watchdog closes the
conn on ctx.Done(); it closes rather than calling drop, because drop
wants c.mu and call is holding it.

The retry split is unchanged and now also declines a retry the caller
has stopped waiting for. A cancelled mutation stays ErrAmbiguousOutcome,
because it may have committed. A cancelled read reports the cancellation.

Three tests against a server that accepts and never answers. There was
no test for this, which is why it went unnoticed.
2026-08-06 22:54:19 +04:00
..