# K1336 — peer death and closed channel `PeerChannel` binds two distinct live process generations to two endpoints. Each endpoint has a fixed-size inbound FIFO. A send copies at most `MAX` bytes into kernel-owned storage addressed to the other endpoint and is accepted only while both endpoints are live. Queue-full returns `WouldBlock` (EAGAIN); a payload above `MAX` returns `MessageTooLarge` (EMSGSIZE). A partial user-copy failure leaves the entire channel snapshot unchanged. Closing an endpoint models that process's exit. It marks the endpoint dead and discards messages addressed to that endpoint. Messages it already sent to the surviving peer remain available in FIFO order. The survivor drains them, then receive returns `Closed` on every empty read. A send toward the dead peer returns `PeerClosed` (EPIPE 32) without mutation. A repeated close or operation by the dead endpoint returns `BadFd`; a foreign process generation cannot impersonate either owner. The final close clears all payload slots. The adapter may `peek` before copying to user memory and only consume after a successful destination write. K1336–K1339 require positive and boundary tests, an AArch64 `no_std` metadata build, and a mutant that permits a post-death send and fails the negative test. K1340 requires the same behavior from two real EL0 process identities over six direct/UEFI QEMU profiles on one experimental Image. This is a synchronous close and drain contract, not a scheduler wake or product release gate.