0ebf46b0a3
The peer now owns submit/cancel lifecycle: pendingSubmit retains the original DevID per submit, CMD_UNLINK carries it (stub_rx valid_request was silently rejecting devid=0), and RET_UNLINK finalizes the bound transaction. UrbTransaction.Cancel delegates instead of assembling the wire itself. Stale exports stay in linux and darwin host snapshots so the ledger broadcasts unavailable State updates rather than Removed.