@@ -36,6 +36,42 @@ $ uvx --from 'libtmux' --prerelease allow python
3636_ Notes on the upcoming release will go here._
3737<!-- END PLACEHOLDER - ADD NEW CHANGELOG ENTRIES BELOW THIS LINE -->
3838
39+ ### What's new
40+
41+ #### Structured lifecycle logging across Server, Session, Window, and Pane (#637 )
42+
43+ All lifecycle operations (create, kill, rename, split) now emit INFO-level log
44+ records with structured ` extra ` context. Every log call includes scalar keys
45+ such as ` tmux_subcommand ` , ` tmux_session ` , ` tmux_window ` , ` tmux_pane ` , and
46+ ` tmux_target ` for filtering in log aggregators and test assertions via
47+ ` caplog.records ` .
48+
49+ - Add ` NullHandler ` to library ` __init__.py ` per Python logging best practices
50+ - Add DEBUG-level structured logs for ` tmux_cmd ` execution with ` isEnabledFor ` guards
51+ - Replace f-string log formatting with lazy ` %s ` formatting throughout
52+ - Replace ` traceback.print_stack() ` calls with proper ` logger.debug(exc_info=True) `
53+ - Replace ` logger.exception() ` in options parsing with ` logger.warning() ` and ` tmux_option_key ` context
54+ - Remove unused logger definitions from modules that don't log
55+
56+ ### Bug fixes
57+
58+ #### Window.rename_window() now raises on failure instead of silently swallowing (#637 )
59+
60+ Previously ` rename_window() ` caught all exceptions and logged them, masking
61+ tmux errors. It now propagates the error, consistent with all other command
62+ methods.
63+
64+ #### Server.kill() captures stderr and handles "no server running" gracefully (#637 )
65+
66+ ` Server.kill() ` previously discarded the tmux return value. It now checks
67+ stderr, raises on unexpected errors, and silently returns for expected
68+ conditions ("no server running", "error connecting to").
69+
70+ #### Server.new_session() checks kill-session stderr (#637 )
71+
72+ When ` kill_session=True ` and the existing session kill fails, ` new_session() `
73+ now raises ` LibTmuxException ` with the stderr instead of proceeding silently.
74+
3975## libtmux 0.53.1 (2026-02-18)
4076
4177### Bug fixes
0 commit comments