Skip to content

Commit 2e11c7e

Browse files
committed
docs(CHANGES) FastMCP alignment, new tool surface, and middleware stack
1 parent 7270f79 commit 2e11c7e

1 file changed

Lines changed: 56 additions & 0 deletions

File tree

CHANGES

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)