@@ -17,6 +17,10 @@ _Notes on upcoming releases will be added here_
1717 Migration for clients iterating the old shape: replace
1818 `for m in search_panes(...)` with
1919 `for m in search_panes(...).matches`.
20+ - `fastmcp>=3.2.4` minimum (was `>=3.1.0`). Required for
21+ `ReadonlyRetryMiddleware` to retry through the production tool
22+ decorator path; under earlier fastmcp versions the middleware was
23+ a no-op.
2024
2125### What's new
2226
@@ -27,6 +31,35 @@ _Notes on upcoming releases will be added here_
2731 `load_buffer` staging can no longer dump unbounded content into the
2832 model context on a single `show_buffer` call. Pass `max_lines=None`
2933 for a full-buffer read.
34+ - New tools: `list_servers`, `snapshot_pane`, `wait_for_text`,
35+ `wait_for_content_change`, `wait_for_channel` / `signal_channel`,
36+ buffer lifecycle (`load_buffer`, `paste_buffer`, `show_buffer`,
37+ `delete_buffer`), hook introspection (`show_hook`, `show_hooks`),
38+ plus pane / session / window helpers (`pipe_pane`,
39+ `display_message`, copy-mode entry/exit, `paste_text`,
40+ `select_pane`, `swap_pane`, `select_window`, `move_window`).
41+ - Middleware stack: `TimingMiddleware`, `ErrorHandlingMiddleware`,
42+ `AuditMiddleware` (digest-redacted argument summaries with
43+ sensitive-payload protection), `SafetyMiddleware` (tier-gated
44+ tool visibility), `ReadonlyRetryMiddleware` (transparent retry of
45+ readonly tools on transient `LibTmuxException` — mutating tools
46+ never retry), `TailPreservingResponseLimitingMiddleware` (caps
47+ oversized output while keeping the tail).
48+ - Four recipe prompts: `run_and_wait`, `diagnose_failing_pane`,
49+ `build_dev_workspace`, `interrupt_gracefully`. Optional
50+ `PromptsAsTools` transform (env-gated via
51+ `LIBTMUX_MCP_PROMPTS_AS_TOOLS=1`) lets tools-only MCP clients
52+ reach them.
53+ - `wait_for_text` / `wait_for_content_change` emit
54+ `ctx.report_progress` and `ctx.warning` notifications, and
55+ propagate `asyncio.CancelledError` cleanly so MCP clients can
56+ abort long waits.
57+ - Best-effort lifespan-shutdown GC for leaked `libtmux_mcp_*` paste
58+ buffers — agents that miss `delete_buffer` no longer pollute the
59+ tmux server's buffer namespace across MCP restarts.
60+ - Tool input schemas now carry per-parameter `description` fields
61+ auto-extracted from existing NumPy-style docstrings (free with
62+ the fastmcp 3.2.4 bump).
3063
3164### Fixes
3265
@@ -37,6 +70,29 @@ _Notes on upcoming releases will be added here_
3770 `/var/log/syslog` example is replaced with an OS-neutral
3871 `watch -n 1 date` default; callers can override via the new
3972 `log_command` parameter.
73+ - `build_dev_workspace` no longer instructs agents to wait for shell
74+ prompts after launching screen-grabbing programs (`vim`, `watch`,
75+ `tail -f`). Eliminates a class of false-positive timeouts on
76+ agents following the recipe literally.
77+ - macOS `TMUX_TMPDIR` self-kill guard: `_effective_socket_path`
78+ queries tmux directly via `display-message #{socket_path}` before
79+ falling back to env-based reconstruction; `_caller_is_on_server`
80+ adds a basename-match fallback to close the residual launchd-
81+ divergence gap.
82+ - `search_panes` neutralizes tmux format-string injection in the
83+ regex fast path.
84+ - `ReadonlyRetryMiddleware` retry warnings route through
85+ `libtmux_mcp.retry` (was fastmcp's stock `fastmcp.retry`) so they
86+ appear on the project's audit-stream namespace.
87+
88+ ### Documentation
89+
90+ - New per-tool docs pages: `buffers.md`, `hooks.md`, `waits.md`,
91+ `tools/index.md`. Updated `panes.md` documents the
92+ `SearchPanesResult` shape and migration from the previous flat
93+ list. `docs/topics/safety.md` documents the macOS `TMUX_TMPDIR`
94+ self-kill caveat, the audit log, `pipe_pane`, and
95+ `set_environment`.
4096
4197## libtmux-mcp 0.1.0a1 (2026-04-13)
4298
0 commit comments