IPC / multiprocess: ranking notes

Category notes

The band spread is driven by the category's stated priorities: crash/disconnect correctness across the process boundary and the prerequisites of the process-separation stack form P1; platform coverage, mining-interface mechanics and the per-executable -ipcconnect work form P2; test, fuzz and build-check additions without a blocked consumer stay P3. No P4 was warranted: every PR here has a concrete consumer or a named issue.

Review order and overlapping PRs

  • Overlapping work: #32387 (ipc: add windows support) states it also fixes the Windows wrapper to await child processes, which is exactly what #36105 does standalone. Review #36105 first and have #32387 rebase on it rather than carrying a duplicate fix.
  • Dependency chain whose order matters: #36520 -> #29409 -> #10102 -> #19460 -> #19461. The later ones cannot land or be meaningfully evaluated before the earlier ones; reviewing bottom-up is the only productive order.
  • #36190 is pure test coverage for the behaviour introduced by #36105; it is not reviewable independently and should follow #36105.
  • #35932 and #36572 both address lifetime/teardown races in the same IPC event-loop and disconnect path (both touch or depend on libmultiprocess disconnect fixes). They should be looked at together to avoid conflicting fixes.
  • #36597 is a wallet-interface signature change whose only stated consumer is an out-of-process GUI; by the category scope it is wallet-first and only marginally ipc, which is why it sits at the top of P3 rather than among the interface-mechanics PRs.
  • #30437 (bitcoin-mine client) and #36192 (IPC createNewBlock error-path test) both exercise the mining interface from outside the node; #30437 provides the harness and is the more consequential of the two.

Band and position changes

  • #36520: Base of the Chain-over-IPC chain: standalone crash hardening that #29409 and #10102 build on, so it is worth a reviewer first.
  • #10102: Kept P1 as the category-defining PR, but placed after the two prerequisites it is stacked on.
  • #36572: P2 alone, P1 after comparison. Raised to P1: same class of IPC event-loop use-after-free/termination as #35932 and #36520, which are P1.
  • #36097: Moved up: it changes mining IPC call mechanics (cancellation via promises) per agreed RFC #33575, affecting external consumers' interface stability more than the other P2s.
  • #36106: P3 alone, P2 after comparison. Raised to P2 for consistency with #36105: both are wrapper breakages on real install targets, and this one makes the wrapper fail outright on common distro layouts.

About

This pass by claude-opus-5 on 2026-11-01 saw every PR in the category at once and checked the bands given to each PR alone against each other, ordered the PRs, and noted chains and overlaps. Back to the category.