---
model: claude-fable-5
service: claude
session: f4da6654-63f9-4641-b567-f200da46d697
timestamp: 2026-07-02T16:16:24Z
git_ref: 65bf9df5
scope: tests
substantive: true
raw_file: 20260702T161624Z_65bf9df5_prompt_io.raw.md
---

## Prompt

> attempt to resolve
> https://github.com/goodboy/tractor/issues/474
> do it with /open-wkt.

Issue #474: "We need test suite for
`.trionics.start_or_cancel()`" — dig out the use case
from `modden` as a unit test (and provide motivation
for upstream `trio` to possibly provide better
porcelain around this case). The wrapper landed via
PR #464 with no tests.

## Response summary

New `tests/trionics/test_taskc.py` (9 tests) covering
`start_or_cancel()`, authored in wkt
`start_or_cancel_tests_474`.

Behaviour was first probed empirically (trio 0.29):
the lossy `RuntimeError('child exited without calling
task_status.started()')` only fires when the child
exits pre-`.started()` WITHOUT propagating the ambient
`Cancelled` — i.e. when the child (or lib code it
calls) absorbs the cancel in a graceful-teardown
pattern; a well-behaved child surfaces `Cancelled`
straight out of `.start()`. The `modden`
`progman.open_wks()` use case was reconstructed from
`modden/runtime/progman.py` accordingly.

Tests (each `use_start_or_cancel` parametrization also
pins upstream trio's current lossy behaviour as
wart-documentation):

- `test_sibling_err_not_masked_by_startup_rte` — the
  `modden` case: sibling error OOB-cancels the shared
  nursery scope; with the wrapper ONLY the root-cause
  `ValueError` escapes; bare `.start()` adds the lossy
  RTE alongside.
- `test_pure_oob_cancel_not_morphed_to_rte` — plain
  ancestor `cs.cancel()`: wrapper → clean exit; bare
  → eg-wrapped RTE.
- `test_genuine_startup_rte_still_raised` — no
  cancellation → protocol-bug RTE re-raised same as
  bare.
- `test_childs_own_rte_never_demoted_to_cancel` — a
  child's own `RuntimeError('never got started!')` /
  `RuntimeError(1234)` under ambient cancel is never
  demoted to `Cancelled` (exact-msg-match + str-guard
  regression cover).
- `test_started_value_and_args_passthru` — happy path:
  positional args, `name=`, `.started()` value.

Verified: 9/9 pass; 0 flakes across 50 hammer runs;
two impl mutations (checkpoint removed; guard relaxed
to substring match) each caught by exactly the
targeted tests; `tests/trionics/` +
`tests/test_trioisms.py` subset green (23 passed,
5 xfailed); ruff clean; 69-col style.

## Files changed

- `tests/trionics/test_taskc.py` — new
  `start_or_cancel()` unit-test suite (gh #474).

## Human edits

Pending review — session paused pre-commit per user
deadline; nothing committed as of this entry.
