@@ -32,7 +32,47 @@ $ uvx --from 'libtmux' --prerelease allow python
3232
3333<!-- To maintainers and contributors: Please add notes for the forthcoming version below -->
3434
35- - _ Future release notes will be placed here_
35+ _ Future release notes will be placed here_
36+
37+ ### Features
38+
39+ - Control-mode–first engine protocol (experimental): adds structured command results,
40+ notification parsing (layout changes, unlinked windows, client detach/session change,
41+ session rename, paste-buffer events), and stats while keeping existing
42+ ` Server/Session/Window/Pane.cmd ` return type (` tmux_cmd ` ) stable. (#605 )
43+ - Control mode engine's internal connection session is now automatically filtered from
44+ ` Server.sessions ` and ` Server.has_session() ` , making engine choice transparent to
45+ users. Advanced users can access all sessions via ` Server._sessions_all() ` . (#605 )
46+ - ` ControlModeEngine ` accepts optional ` internal_session_name ` and ` attach_to `
47+ parameters for advanced session management scenarios. (#605 )
48+ - ` Server.connect() ` : New convenience method for session management. Returns an
49+ existing session if found, otherwise creates a new detached session. Simplifies
50+ common session reuse patterns and works transparently with both subprocess and
51+ control-mode engines.
52+ - Control-mode diagnostics: bounded notification queue with drop counting,
53+ richer exceptions (` ControlModeTimeout ` , ` ControlModeProtocolError ` ,
54+ ` ControlModeConnectionError ` , ` SubprocessTimeout ` ), and documented retry/timeout
55+ behaviour. Control sandbox pytest fixture provides a hermetic control-mode server
56+ for integration tests.
57+
58+ ### Compatibility
59+
60+ - Control mode's internal session is now automatically filtered from user-facing APIs.
61+ Code that previously filtered ` libtmux_control_mode ` manually can be simplified.
62+ APIs remain unchanged for tmux command return objects; new metadata is attached for
63+ advanced users. (#605 )
64+ - ` -e KEY=VAL ` environment propagation for ` new-session ` , ` new-window ` , and
65+ ` split-window ` requires tmux 3.2 or newer. Older tmux versions ignore ` -e ` ; libtmux
66+ logs a warning and skips env-specific tests in that configuration.
67+ - Control-mode ` capture-pane ` trims trailing whitespace-only lines to align with
68+ subprocess behaviour; explicit range flags (` -S/-E ` ) remain exact.
69+
70+ ### Testing
71+
72+ - ` uv run ruff check . --fix --show-fixes `
73+ - ` uv run ruff format . `
74+ - ` uv run mypy `
75+ - ` uv run py.test `
3676
3777## libtmux 0.47.0 (2025-11-01)
3878
0 commit comments