37 lines
1.2 KiB
Markdown
37 lines
1.2 KiB
Markdown
|
|
---
|
||
|
|
model: openai/gpt-5.6-sol
|
||
|
|
service: opencode
|
||
|
|
session: ses_3e4c90d3eafeqHEtRYSIHgHhpA
|
||
|
|
timestamp: 2026-08-18T19:30:01Z
|
||
|
|
git_ref: bf06b4f8
|
||
|
|
scope: code
|
||
|
|
substantive: true
|
||
|
|
raw_file: 20260818T193001Z_bf06b4f8_prompt_io.raw.md
|
||
|
|
---
|
||
|
|
|
||
|
|
## Prompt
|
||
|
|
|
||
|
|
Fix cancellation during an indeterminate transport write without
|
||
|
|
allowing a second RPC msg to corrupt the stream. Keep the transport
|
||
|
|
fix separate from the higher-level `to_actor` remediation and explain
|
||
|
|
the length-prefixed protocol rather than using unexplained "framed
|
||
|
|
send" terminology.
|
||
|
|
|
||
|
|
## Response summary
|
||
|
|
|
||
|
|
Close a msgpack transport stream when cancellation interrupts its
|
||
|
|
length-prefixed `send_all()` operation. The stream can no longer be
|
||
|
|
safely reused because Trio cannot report how many bytes were written.
|
||
|
|
|
||
|
|
## Files changed
|
||
|
|
|
||
|
|
- `tractor/ipc/_transport.py` - close an interrupted send stream.
|
||
|
|
- `tests/ipc/test_each_tpt.py` - cover cancellation during the write.
|
||
|
|
|
||
|
|
## Human edits
|
||
|
|
|
||
|
|
The human required this transport edge-case fix to land as its own
|
||
|
|
behavioral commit with a detailed message. During staged review, the
|
||
|
|
human also rejected the unexplained "framed send" wording and asked
|
||
|
|
for terminology tied directly to the actual transport operation.
|