- Shipped
- September 3, 2026 at 9:53 PM UTC
- Author
- Kamo
- Commit
- d0ef866
The field separator was a unit separator (0x1f), which is the obvious choice and silently wrong: tmux OCTAL-ESCAPES control characters in `-F` format output, so the byte came back as the four characters \037 and not one row ever parsed. The list was empty in production while kill and rename — neither of which uses a format string — worked perfectly on the very same sessions. Every test in the class agreed with the bug, and that is the part worth keeping in mind: they build their rows by joining with FIELD_SEP itself, so the parser and the fixture agreed about a byte tmux would never emit. Found by listing the real machine, not by reading. The separator is now printable, which means a member could type it into a title — so the title is the last field and the split is bounded to five. The fields before it are a validated session name and four integers, none of which can contain it, and everything after the fifth separator is the title however many it holds. Two tests: one asserts the separator is printable (the invariant the fixtures cannot express), one puts the separator inside a title and checks the columns do not shift. 133 tests.