Add a seventh stalled-IPC case whose peer task shields outer
cancellation while subactor control IPC remains usable. Require
shield entry before SIGINT and child-side pending-cancel evidence
afterward, then prove cancel-ack budget expiry, runtime hard-reap,
SIGKILL status and completed OS reaping before watchdog rescue.
Keep the six existing cases and include the reviewed provenance
pair with corrected human attribution. This models a shielded Trio
task, not an uninterruptible kernel call.
Prompt-IO: ai/prompt-io/opencode/20260929T222213Z_68e9c49f_shielded_peer.md
(this patch was generated in some part by `opencode` using
`gpt-6.1-sol` (`openai`))
Add `examples.advanced_faults.ipc_stalls` and an external
`RootMonitor` so SIGINT delivery and shutdown evidence stay
independent of the stalled actor channels. Exercise six Linux
TCP cases with the `trio` spawner: healthy IPC, context receive,
send, both directions, context cancel send, and both directions
plus the subactor `Portal` cancel send.
Deats,
- Split cancellable send gates from buffered receive gates, and
require actual parked operations before publishing readiness.
- Keep the OOB context `Channel` distinct from the child-control
`Portal`; context-only faults retain cooperative child exit.
- Require finite cancel-send expiry, runtime hard-reap logs,
SIGKILL status and completed `waitpid` for the control fault.
- Bound readiness and shutdown with an independent stdout
watchdog; rescue cleanup cannot satisfy teardown assertions.
- Use `get_rando_addr()` for unreserved registry port selection,
raise `TimeoutError` on watchdog expiry, and retain structured
shutdown evidence through `record_property`.
These waits model cancellable runtime unresponsiveness, not
kernel TCP loss or an uninterruptible syscall. Preserve human
review decisions and historical working-tree verification in
the prompt provenance; exact-tree plan checks remain pending.
Prompt-IO: ai/prompt-io/opencode/20260923_ipc_fault_regressions.md
(this commit msg was generated in some part by `opencode` using
`gpt-6.1-sol` (`openai`))