v1.5.2
An agent's notification now reaches your iPad with its own message, and a bell that fired on every prompt stopped firing.
macOS and Linux only. The change is entirely server-side and rides the same event the notification hook already used, so iOS 1.5.1 from the App Store picks it up as soon as you update the server. There is no 1.5.2 for iOS.
Notifications from the terminal itself
Anything in a session can now raise attention with a real message, using the escape sequences terminals already speak:
printf '\033]9;Build finished\007' # OSC 9 — a message
printf '\033]777;notify;Codex;Needs approval\007' # OSC 777 — title and bodyWezTerm, iTerm2, Kitty and ntfy hooks send these already, so an agent configured to notify one of those notifies TermAway too, with nothing to install. Before, the best a session could do was ring a bell — attention with nothing to say.
Two limits worth knowing. tmux swallows both sequences — verified against real tmux, with allow-passthrough and with the DCS wrapper, none of it reaches the client — so rich notifications need session persistence turned off. A plain bell passes through either way. And because a sequence can be driven by whatever is on the terminal, a remote host or a file being cat'd, these are rate-limited per session in a way the loopback hook is not.
Fixes
- A shell that set its window title rang the bell on every prompt. BEL is itself a valid terminator for an escape sequence, so the title write ended in the same byte a bell does, and TermAway counted it. It now checks for bells only in what is left after complete sequences are removed.
- A long escape sequence could invent a bell. Clipboard sync and inline images base64 their whole payload across several reads; the buffer that tracks a half-received sequence is capped, and on overflow it used to forget it was inside one — so the terminator rang. Related: an abandoned sequence no longer swallows the bells that follow it, which had silenced an agent's permission prompt.
- Progress updates are no longer notifications. iTerm2 sends progress as
OSC 9;4;…and ConEmu uses9;<digit>;for several other things; each tick was raising an alert.