-
Notifications
You must be signed in to change notification settings - Fork 112
Comparing changes
Open a pull request
base repository: tmux-python/libtmux
base: v0.52.1
head repository: tmux-python/libtmux
compare: v0.53.0
- 10 commits
- 8 files changed
- 1 contributor
Commits on Dec 7, 2025
-
Configuration menu - View commit details
-
Copy full SHA for e907f81 - Browse repository at this point
Copy the full SHA e907f81View commit details
Commits on Dec 14, 2025
-
Configuration menu - View commit details
-
Copy full SHA for de74752 - Browse repository at this point
Copy the full SHA de74752View commit details -
Configuration menu - View commit details
-
Copy full SHA for 64276e4 - Browse repository at this point
Copy the full SHA 64276e4View commit details -
test(Session.attach): Add xfail regression test for refresh after kill
why: Reproduce tmuxp issue #1002 where attach() raises exception if session is killed while user is attached. what: - Add test that simulates session killed during attach-session - Mark as xfail since attach() currently calls refresh() which fails - Documents expected behavior: attach() should not raise if session gone
Configuration menu - View commit details
-
Copy full SHA for 70d1383 - Browse repository at this point
Copy the full SHA 70d1383View commit details -
fix(Session.attach): Remove refresh() call that fails after session k…
…illed why: attach-session is a blocking interactive command where session state can change arbitrarily during attachment, including being killed entirely. Calling refresh() after such a command is semantically incorrect. what: - Remove self.refresh() call from Session.attach() Fixes: tmux-python/tmuxp#1002
Configuration menu - View commit details
-
Copy full SHA for d852aeb - Browse repository at this point
Copy the full SHA d852aebView commit details -
test(Session.attach): Remove xfail now that bug is fixed
why: The fix in the previous commit resolves the issue, so the test should now pass and serve as a permanent regression guard. what: - Remove xfail marker from test_session_attach_does_not_fail_if_session_killed_during_attach
Configuration menu - View commit details
-
Copy full SHA for a1ff647 - Browse repository at this point
Copy the full SHA a1ff647View commit details -
docs(CHANGES): Add notes for Session.attach() fix
why: Document the bug fix and behavioral change for the upcoming release. what: - Add breaking change note that attach() no longer calls refresh() - Add bug fix entry for session killed during attachment
Configuration menu - View commit details
-
Copy full SHA for 9826825 - Browse repository at this point
Copy the full SHA 9826825View commit details -
fix(
Session.attach()): Removerefresh()call that fails after ses……sion killed (#616) Fixes an issue where `Session.attach()` would raise `TmuxObjectDoesNotExist` when a user: 1. Attaches to a tmux session via `tmuxp load` 2. Works in the session 3. Kills the session (e.g., closes all windows) before detaching 4. Detaches from tmux ### User Experience After running `tmuxp load`, users would see this traceback printed to their terminal after detaching: ``` Traceback (most recent call last): File "~/.local/bin/tmuxp", line 7, in <module> sys.exit(cli.cli()) ... File ".../libtmux/session.py", line 332, in attach self.refresh() File ".../libtmux/neo.py", line 167, in _refresh obj = fetch_obj(...) File ".../libtmux/neo.py", line 242, in fetch_obj raise exc.TmuxObjectDoesNotExist(...) libtmux.exc.TmuxObjectDoesNotExist: Could not find object ``` ### Root Cause `Session.attach()` called `self.refresh()` after the `attach-session` command returned. Since `attach-session` is a **blocking interactive command**, the session state can change arbitrarily during attachment - including being killed entirely. The `refresh()` call was semantically incorrect for interactive commands: - `attach-session` blocks until user detaches - Session state can change during attachment - Refreshing after such a command makes no sense ### Timeline - **Feb 2024**: 9a5147a - `Session.attach()` was added with the `refresh()` call - **Nov 2025**: tmuxp tmux-python/tmuxp@fdafdd2b switched from `attach_session()` to `attach()` - Users started experiencing the bug ### Changes - Removes `self.refresh()` call from `Session.attach()` - Adds regression test using NamedTuple + parametrize + test_id pattern
Configuration menu - View commit details
-
Copy full SHA for 0c644b8 - Browse repository at this point
Copy the full SHA 0c644b8View commit details -
Configuration menu - View commit details
-
Copy full SHA for 764ccf9 - Browse repository at this point
Copy the full SHA 764ccf9View commit details -
Configuration menu - View commit details
-
Copy full SHA for 37812a7 - Browse repository at this point
Copy the full SHA 37812a7View commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff v0.52.1...v0.53.0