# clisbot v0.1.43

Released: 2026-04-21

This is the consolidated public note for the work originally split across `v0.1.42` and `v0.1.43`.

`v0.1.43` makes runtime recovery more durable, clarifies routed follow-up controls, makes tmux prompt submission checks more truthful, restores queued-start notifications in non-streaming message-tool flows, and stops Slack thread replies from inheriting stale attachments from the root message.

## In One Line

`clisbot` now recovers more truthfully from runtime and tmux startup trouble, gives routed conversations clearer follow-up controls, and tightens prompt and attachment delivery so Slack and Telegram sessions behave more honestly under real load.

## Highlights

### 1. Runtime recovery is smoother and less likely to stall permanently

- the default runtime monitor ladder now ramps through 1 minute, 3 minutes, 5 minutes, 10 minutes, 15 minutes, and finally 30 minutes
- once the final stage is reached, the runtime keeps retrying at that delay instead of permanently giving up
- Telegram polling conflicts now recover inside the runtime instead of forcing a hard stop when another process is temporarily using the same bot token
- delayed owner alerts can surface persistent runtime-channel failures while recovery is still in progress

### 2. Routed follow-up controls and routed command guidance are clearer

- `/mention` is now the fast shorthand for `/followup mention-only`
- `/mention channel` and `/mention all` persist mention-only defaults at the right scope and also apply them to the current conversation immediately
- `/transcript` now returns a compact recent session snapshot by default, while `/transcript full` keeps the longer pane view available when needed
- routed Slack and Telegram guidance now surface the main follow-up and transcript controls more directly

### 3. Tmux prompt delivery is more truthful at the exact paste-versus-submit boundary

- submit confirmation now baselines against the pane snapshot after the pasted prompt is visibly present
- this closes the false-positive path where a visible paste could be mistaken for a successful Enter submit
- startup session-id capture keeps its cooldown behavior when prompt delivery fails truthfully, which makes the first prompt path after `/status` less fragile

### 4. Queued messages now announce when they actually start running in more routed chat flows

- queued-start notifications are now allowed to surface on the first `running` update even when the route uses `message-tool` with `streaming: off`
- this brings Slack and Telegram behavior back in line with the intended queue lifecycle: queued first, then “now running”, then final settlement
- the change stays narrow and does not reopen wider live-preview rendering in non-streaming flows

### 5. Slack thread replies no longer inherit attachments from the root thread message

- Slack attachment hydration now looks only at the current inbound message when the event payload omits `files`
- a text-only reply in a thread no longer pulls an old image or file from the root thread prompt into the new agent request
- this keeps attachment mentions truthful to what the user actually sent in that specific message

### 6. Message-tool and operator guidance are cleaner

- `message send` now prefers `--file` as the generic attachment flag, with `--media` kept as a compatibility alias
- agent prompt guidance keeps the model on normal markdown output instead of implying destination-native raw payloads
- `allowBots` remains safely defaulted to `false`, and the current note includes explicit regression coverage that routed bot-originated messages are dropped unless that config is intentionally enabled

## Schema And Contract Notes

Schema version is now `0.1.43`.

Current template:

- `config/clisbot.json.template`

## Validation

Validated with:

- `bun run check`

And supported by targeted regressions for:

- runtime monitor restart backoff behavior
- runtime process and supervisor recovery state
- Telegram polling-conflict recovery
- scoped follow-up command parsing and persistence
- compact transcript versus full transcript rendering
- tmux submit confirmation versus paste visibility
- startup session-id capture retry and cooldown behavior
- queued-start notifications in message-tool non-streaming flows
- Slack text-only thread replies with a file on the root thread
- Slack and Telegram `allowBots=false` ingress enforcement
