diff --git a/skills/inter-session/bin/client.py b/skills/inter-session/bin/client.py index b5e7bcd..8097116 100644 --- a/skills/inter-session/bin/client.py +++ b/skills/inter-session/bin/client.py @@ -52,7 +52,7 @@ def _format_msg(msg: dict) -> str: sanitized = shared.sanitize_for_stdout(msg.get("text", "")) truncated, was_truncated, full_len = shared.truncate_for_stdout(sanitized) from_name = msg.get("from_name") or msg.get("from", "?")[:8] - from_label = msg.get("from_label", "") + from_label = shared.sanitize_label_for_display(msg.get("from_label", "")) msg_id = msg.get("msg_id", "") label_part = f' "{from_label}"' if from_label else "" if was_truncated: diff --git a/skills/inter-session/bin/list.py b/skills/inter-session/bin/list.py index 3273df2..3fb5701 100644 --- a/skills/inter-session/bin/list.py +++ b/skills/inter-session/bin/list.py @@ -118,7 +118,7 @@ async def _run(args) -> int: print(f"{'NAME':<24} {'LABEL':<24} {'CWD':<40} {'SINCE':<8} ID") for s in resp["sessions"]: name = s.get("name", "") or "(unnamed)" - label = s.get("label", "") + label = shared.sanitize_label_for_display(s.get("label", "")) cwd = s.get("cwd", "") if len(cwd) > 38: cwd = "…" + cwd[-37:] diff --git a/skills/inter-session/bin/shared.py b/skills/inter-session/bin/shared.py index 4670048..36bd25b 100644 --- a/skills/inter-session/bin/shared.py +++ b/skills/inter-session/bin/shared.py @@ -37,6 +37,15 @@ NAME_RE = re.compile(r"^[a-z0-9][a-z0-9-]{0,39}$") ANSI_RE = re.compile(r"\x1b\[[0-9;]*[A-Za-z]") LABEL_MAX_CP = 60 +# Structural characters of the stdout notification header +# (`[inter-session … from="…" "