@termiq/cli 3.47.1 → 3.48.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +28 -7
  2. package/dist/bin.js +157 -49
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -8,7 +8,7 @@ End-to-end encrypted — the TermIQ server is a blind relay that streams your ou
8
8
 
9
9
  The headless half of a long-running task is exactly where you can't sit and watch — a remote box over SSH, a CI runner, an unattended host. Start the work, leave, and let TermIQ tell you when it needs you:
10
10
 
11
- - **Push the moment it matters** — get notified when a task **completes**, is **waiting** for a confirmation, or hits an **error**, even with your phone in your pocket.
11
+ - **Push the moment it matters** — get notified when a task **completes**, is **waiting** for a confirmation, or an AI agent **fails**, even with your phone in your pocket.
12
12
  - **Answer from the notification** — approve a `Y/n` prompt without opening anything; the answer goes straight to the terminal.
13
13
  - **Reliable input** — what you type from your phone reaches the terminal in order, even on a flaky mobile connection.
14
14
  - **Real-time sync** — output streams to your phone with sub-second latency and reconnects on its own when the network changes.
@@ -69,7 +69,7 @@ Check the connection with `termiq status`; sign out with `termiq logout`.
69
69
  | `--log-to-file` | Write logs to `~/.termiq/logs/cli.log` |
70
70
  | `--force` | Start even when already inside a TermIQ session (nested run) |
71
71
  | `--multi-viewer` | Latest-wins geometry: the pty follows whoever typed or resized last, and other viewers mirror it. Off by default (the size is the smallest viewer's). Persists in `config.json` |
72
- | `--push-prompt-text` | Put the prompt's text in push notifications. Off by default — see [Notifications and privacy](#notifications-and-privacy). Persists in `config.json` |
72
+ | `--push-prompt-text` | No effect, still accepted so existing scripts keep working: notifications never carry the prompt's text — see [Notifications and privacy](#notifications-and-privacy) |
73
73
  | `--no-signal-waiting` | Ignore the agent's own "waiting" signal. On by default: Codex and Gemini announce that they are waiting in the window title, so you still get notified even when TermIQ's own parsing misses the prompt (you get a plain input box rather than buttons). Persists in `config.json` |
74
74
  | `--version`, `-V` | Print version and exit |
75
75
 
@@ -84,11 +84,32 @@ terminal is waiting — not what it asked. The question and its buttons reach
84
84
  your phone over the encrypted channel and are readable only by your own
85
85
  devices; the server relays ciphertext and cannot open it.
86
86
 
87
- If you would rather read the question straight from the notification shade,
88
- `--push-prompt-text` sends that text over the plain event channel instead. It
89
- is off unless you turn it on, because turning it on means the server sees the
90
- question and the button labels in order to put them in the notification body.
91
- Everything inside the app works the same either way.
87
+ Notifications never carry the question, whatever the settings: the server puts
88
+ no terminal text into them. `--push-prompt-text`, which used to put the question
89
+ in the notification body, no longer has any effect; the CLI still accepts it so
90
+ that existing scripts keep working.
91
+
92
+ ### When an agent fails
93
+
94
+ You get a notification when an AI agent (Claude Code, Codex, Gemini CLI,
95
+ Copilot, Cursor Agent, Aider and others) exits with an error, and when the
96
+ shell itself is killed, by the out-of-memory killer for example. Stopping an
97
+ agent with `Ctrl+C`, a clean exit, a failing command that is not an agent (a
98
+ build, `grep`, `git`) and the shell staying open after the agent are not
99
+ failures. The notification says only that the task failed, never the error. One
100
+ failure gives one notification, and a terminal gives at most one a minute.
101
+
102
+ Only the shell knows how a command inside it ended, so `termiq` starts bash and
103
+ zsh with a small hook that reports the exit code and the program name of each
104
+ command to the CLI, in a sequence your terminal ignores. Each hook signs its
105
+ reports with a random value only its shell knows, so text that merely passes
106
+ through the terminal, a file you `cat` or the output of a remote host, cannot
107
+ fake a failed agent. The hook only adds itself: your `~/.bashrc` or `.zshrc`
108
+ load as usual and are never changed, and its file lives in a private temporary
109
+ directory while the shell runs. Other shells, and every shell on Windows, start
110
+ as before; there a failed agent is noticed only if your own shell integration
111
+ reports command ends (OSC 133). Set `TERMIQ_SHELL_INTEGRATION=0` to start bash
112
+ and zsh without the hook.
92
113
 
93
114
  ### When the buttons don't appear
94
115