The terminal list was always empty — tmux escapes control chars

FixKlusterServices
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.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing