What happened
Intermittently during a multi-agent session, tt ... --json invocations emitted a cmux socket error line on stdout before the JSON object. Any consumer doing JSON.parse/json.loads on stdout breaks; the session-long workaround was stripping everything before the first {:
tt status --json 2>&1 | python3 -c "import sys,json; s=sys.stdin.read(); d=json.loads(s[s.find('{'):])"
It reproduced repeatedly earlier in the session (presumably while the cmux socket was unavailable) and not later in the same session, so it looks conditional on cmux connectivity rather than deterministic.
Expected
With --json, stdout carries exactly one parseable JSON document; all diagnostics (including cmux socket/connectivity warnings) go to stderr.
Environment
tt 0.14.1, macOS (darwin 27), Claude Code harness (zsh), agents on cmux and manual wake transports in the same room.
What happened
Intermittently during a multi-agent session,
tt ... --jsoninvocations emitted a cmux socket error line on stdout before the JSON object. Any consumer doingJSON.parse/json.loadson stdout breaks; the session-long workaround was stripping everything before the first{:It reproduced repeatedly earlier in the session (presumably while the cmux socket was unavailable) and not later in the same session, so it looks conditional on cmux connectivity rather than deterministic.
Expected
With
--json, stdout carries exactly one parseable JSON document; all diagnostics (including cmux socket/connectivity warnings) go to stderr.Environment
tt 0.14.1, macOS (darwin 27), Claude Code harness (zsh), agents on cmux and manual wake transports in the same room.