--- model: claude-opus-4-8 service: claude session: c7860302-6a33-4d92-821c-0807d68be464 timestamp: 2026-07-02T17:22:33Z git_ref: 5cd190c5 scope: code substantive: true raw_file: 20260702T172233Z_5cd190c5_prompt_io.raw.md --- ## Prompt Branched session (`to_actor_subpkg_POST_WEEKLY_CUTOFF_2OPUS`, now on Opus 4.8) continuing the `._ria_nursery` removal after step A committed + pushed (`5cd190c5`/`99310269`): > ok continue where your superior left off please then, after the commit-split discussion: > yup committed and pushed so take a look ma fren. i.e. green-lighting step-B prep against the committed step-A tree. ## Response summary Step B of the `._ria_nursery` removal (issue #477): delete the now-vestigial secondary nursery, - collapse the inner `async with (collapse_eg(), trio.open_nursery() as ria_nursery)` layer in `_open_and_supervise_one_cancels_all_nursery` — `da_nursery` becomes the single nursery for ALL subactors. - `ActorNursery.__init__` drops the `ria_nursery` param + the `self._ria_nursery` attr; `start_actor()` drops its `nursery=` escape-hatch param. - `._cancel_after_result_on_exit` kept (ria-child discriminator for `_reap_ria_portals()`). Verified behavior-preserving via a first-principles argument (zero-task nursery = a bare checkpoint) + the targeted gate (`test_cancellation test_spawning test_local test_rpc test_to_actor` = 49 passed, 1 xfailed on trio). The two error handlers were deliberately NOT merged — that changes propagation semantics and is deferred to its own PR (TODO left at the outer `except`). ## Files changed - `tractor/runtime/_supervise.py` — collapse the ria nursery layer + drop the ctor/`start_actor` params + refresh the now-stale nursery comments ## Human edits None yet — committed via the drafted `.claude/git_commit_msg_ria_step_b.md` (user-driven `git commit --edit`).