--- model: claude-fable-5 service: claude session: b8ec2ffe-1e47-4db5-8bc3-5bebc5feaaf6 timestamp: 2026-07-02T15:50:06Z git_ref: 65bf9df5 scope: code substantive: true raw_file: 20260702T155006Z_65bf9df5_prompt_io.raw.md --- ## Prompt From `ai/prompt-io/prompts/issue_473.md`: > NOTE: you MUST pause this work at 12:50PM EST (BEFORE > your weekly limit reset) for review by a human! > > resolve GH #473: https://github.com/goodboy/tractor/issues/474 > do it with /open-wkt. (The prompt's issue-number/URL mismatch was resolved in favor of #473 — file name, session name and prompt text all say #473; the `/474` URL is a typo.) GH #473: "Root-cause UDS-on-macOS — `uds_transport_actor_tree` example fails on CI". ## Response summary Worked all four #473 next-step checkboxes in wkt `uds_macos_473`: 1. **stderr surfacing**: `test_docs_examples.py` now raises with the full subproc stderr (+stdout) on ANY non-zero exit. The old last-line-'Error' check could never fire for `tractor` crashes since root-actor stderr always ends with the strict-EG collapse note `( ^^^ this exc was collapsed from a group ^^^ )` — proven against the real PR #460 macOS CI log (bare `assert 1 == 0`, no traceback). 2. **root-cause (linux-provable layer)**: macOS-only addr corruption in `MsgpackUDSStream.get_stream_addrs()` — no `SO_PASSCRED`/autobind on darwin means the accept side's `getpeername()` is `''`, and the `(str(), str())` arm took `peername` unconditionally → `Path('')` garbage addrs on every accepted conn. Proven + fixed via linux no-autobind simulation. Possibly not the final macOS crasher (non-fatal on linux-sim); the diagnostic patch guarantees the next macOS CI run shows any remaining layer. 3. **CI matrix**: removed the `macos-latest`+`uds` exclude. 4. **un-skip**: dropped the macOS+CI skip of the example. Also: `start_listener()` bindspace mkdir hardened (`parents=True, exist_ok=True`), example docstring peer-pid mechanism corrected for macOS. ## Files changed - `tests/test_docs_examples.py` — surface full stderr on non-zero exit; remove macOS skip of the UDS example - `tractor/ipc/_uds.py` — fix no-autobind `get_stream_addrs()` arm; harden bindspace mkdir; document autobind semantics - `.github/workflows/ci.yml` — add macOS UDS leg (remove matrix exclude) - `examples/uds_transport_actor_tree.py` — platform- correct peer-pid docs ## Human edits None yet — pending human review (hard-stop review checkpoint at 12:50PM EST per prompt); commit staging and any edits are the human's.