… panic
Two TRP-only shadow-streaming bugs:
1. Size header was emitted with width/height swapped and non-standard row/col keys (read columns from bytes[2..4] instead of [0..2]). Read columns from [0..2], rows from [2..4], and emit a standard asciicast v2 {width,height} header so clients size the terminal correctly.
2. AsyncReadChannel::poll_read copied an entire decoded line into the caller's ReadBuf without bounds, panicking when a line exceeded the buffer (e.g. a full-screen htop redraw > 8 KiB). Copy only what fits and buffer the remainder across reads.
Two TRP-only shadow-streaming fixes (cast path unaffected):
{width, height}header with the correct axis. The decoder read columns from the wrong half of the size-change payload and emitted non-standardrow/col, so clients sized the terminal transposed.AsyncReadChannel::poll_readcopied a whole decoded line into the caller'sReadBufunchecked, panicking when a line exceeded it (e.g. an htop full-screen redraw > 8 KiB). Now copies what fits and buffers the rest across reads.