tractor/ai/prompt-io/opencode/20260819T234824Z_557065d8_p...

1.3 KiB

Fix the macOS TCP regressions where cancellation during a framed send closed the actor-wide channel and replaced primary stream errors with secondary TransportClosed failures.

git diff HEAD~1..HEAD -- tractor/ipc/_transport.py tractor/_context.py tests/ipc/test_each_tpt.py tests/test_context_stream_semantics.py

Shield complete frame publication, then deliver pending cancellation immediately after leaving the shield. Preserve channel reuse instead of closing the multiplexed socket from a context-local sender. Treat TransportClosed while shipping StreamOverrun as failed delivery so the secondary error can not crash the actor-wide RPC loop.

Add deterministic unit regressions for cancellation in the middle of a frame and overrun reporting after transport closure.

Verification:

  • transport/context unit regressions: 3 passed
  • exact TCP and UDS CI-node batches: 11 passed, 1 skipped
  • transport/context/clustering/RPC TCP: 88 passed
  • transport/context/clustering/RPC UDS: 86 passed, 2 skipped
  • full TCP suite: 478 passed, 9 skipped, 7 xfailed, 3 xpassed
  • full UDS rerun: 476 passed, 11 skipped, 8 xfailed, 2 xpassed