Skip to content

Commit 2fd40f3

Browse files
committed
docs(control-mode): Note env requirements and capture normalization in CHANGES
1 parent 1d26efd commit 2fd40f3

File tree

1 file changed

+41
-1
lines changed

1 file changed

+41
-1
lines changed

CHANGES

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)