--- model: openai/gpt-5.6-sol service: opencode session: ses_3e4c90d3eafeqHEtRYSIHgHhpA timestamp: 2026-08-18T19:30:03Z git_ref: bf06b4f8 scope: code substantive: true raw_file: 20260818T193003Z_bf06b4f8_prompt_io.raw.md --- ## Prompt Cancel a remote task when its caller is cancelled after `Start` publication but before startup acknowledgement. Keep cancellation bounded, prevent its private `_cancel_task` RPC from recursively cancelling itself and preserve public target kwargs unchanged. ## Response summary Add private portal startup policy, use it for non-recursive context cancellation and clean caller-side startup state under a shield. ## Files changed - `tractor/runtime/_portal.py` - separate private startup policy. - `tractor/_context.py` - disable recursion for cancellation RPCs. - `tractor/runtime/_runtime.py` - clean cancelled task startup. - `tests/test_context_stream_semantics.py` - control cancellation between `Start` publication and acknowledgement. ## Human edits The human required this cancellation behavior to remain a distinct commit from general startup failures and from the public `to_actor` API. The human also requested that its runtime comment describe the actual length-prefixed transport guarantee and concrete `_cancel_task` operation rather than referring to an unnamed wrapper.