tractor/ai/prompt-io/opencode/20260818T193003Z_bf06b4f8_p...

830 B

Cancellation while Actor.start_remote_task() waits for StartAck can strand its caller-side context and leave the remote task running. Make one bounded cleanup request, remove local startup state and close its receive channel.

git diff HEAD~1..HEAD -- tractor/runtime/_runtime.py tractor/runtime/_portal.py tractor/_context.py tests/test_context_stream_semantics.py

Separate private startup-cancellation policy from public target kwargs using Portal._run_from_ns(). Have Context.cancel() disable recursive startup cancellation for its own _cancel_task RPC. Exercise cancellation after Start publication and prove the caller-owned actor remains reusable without leaked contexts.