`Server.kill_session(name)` kills a session whose name only starts with `name`
維護者通常 1 天內回覆
還沒有人認領這個 Issue。
評估
- 難度
- 2/5
- 預估耗時
- 1-3 小時
- 新手友好度
- 83/100
- Issue 類型
- 缺陷
- 描述清晰度
- 描述清楚
- 活躍度
- 活躍
- 技術堆疊
- python
研究方向
閱讀 src/libtmux/server.py 中 Server.kill_session 附近的程式碼(第 483–500 行),並將其目標處理方式與第 429 行附近的 has_session(exact=True) 比較。接著找出相關的 kill-session 測試並執行。完成條件是:結束不存在的精確名稱時會引發錯誤,而名稱僅共用該前綴的工作階段仍會保留。
由索引模型根據 Issue 內容生成。
描述
Summary
Server.kill_session("doom") removes a session named doomsday when no doom exists. It passes the bare name to kill-session -t, and tmux resolves a bare target by prefix and fnmatch(3). The docstring says so ("'asdf' will kill 'asdfasd'"), while Server.has_session() already defaults to exact=True. Scripts that kill by name can end someone else's session.
Reproduction
- Create two sessions and kill by the shorter name:
import libtmux
srv = libtmux.Server(socket_name="kill-prefix", config_file="/dev/null")
srv.new_session("probe", window_command="sh")
srv.new_session("doomsday", window_command="sh")
srv.kill_session("doom")
print(sorted(s.name for s in srv.sessions))
srv.kill()
Expected
kill_session("doom") raises because no session named doom exists, and doomsday survives.
Actual
It returns normally and doomsday is gone: ['probe'].
Environment
- libtmux:
masterat886b1cd(v0.62.0 plus 114 commits) - tmux: 3.8 (system build reports 3.8a)
- Python: run with
uv run --frozenfrom the libtmux checkout - OS: Linux (WSL2), private
-Lsocket,-f /dev/null
References
src/libtmux/server.py#L483-L500, docstring at#L489;has_session(exact=True)at#L429- Projects that target
=nameby hand: claude-squad (tmux.go#L470, "-t name does a prefix match, which is wrong"), firstmate (tmux.sh#L53), Qwen Code (ab-drive.ts#L316), NVIDIA IsaacCapture (launcher.py#L388), Microsoft amplifier-bundle-converge (tmux_view.py#L131), OpenAI tunnel-client (session.go#L714) - Ports: .NET kills
=name; Java looks the name up exactly; Go passes the bare name (lifecycle_kill.go#L101)
- 主要語言
- Python
- 星號
- 1.2k
- 分支
- 127
- 平均合併
- 2 小時 37 分鐘
- 30 天內合併 PR
- 33
環境準備
- 沒有 Dockerfile 或 Docker Compose 檔案
- 沒有 Pull Request 範本
- 閱讀貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
tmux-python/libtmux 的其他 Issue
-
難度 2/5 1-3 小時 新手友好度 65/100
tmux-python/libtmux#856 ·
維護者通常 1 天內回覆
-
bug
難度 2/5 1-3 小時 新手友好度 82/100
tmux-python/libtmux#838 · 1 則留言 ·
維護者通常 1 天內回覆
-
`show_option` coerces user options, so an `@` option set to `123` or `on` comes back as an int or a bool可能已有人在做 關聯的 PR 仍在進行中或已合併。 未關閉
難度 2/5 1-3 小時 新手友好度 88/100
tmux-python/libtmux#759 · 1 則留言 ·
維護者通常 1 天內回覆
-
難度 2/5 1-3 小時 新手友好度 68/100
tmux-python/libtmux#745 · 2 則留言 ·
維護者通常 1 天內回覆
-
Documentation: how to use internal libtmux logging可能已有人在做 @tony 於 84 天前認領。 未關閉enhancement
難度 2/5 1-3 小時 新手友好度 72/100
tmux-python/libtmux#744 ·
維護者通常 1 天內回覆
查看 tmux-python/libtmux 的全部 Issue
相似的 Issue
-
documentation good first issue
難度 2/5 1-3 小時 新手友好度 88/100
JheysonJhordyHuarauyaRiquelme/sprocguard#18 ·
維護者通常 1 天內回覆
-
enhancement good first issue help wanted
難度 2/5 1-3 小時 新手友好度 80/100
dlq/synthpopcan#59 ·
維護者通常 2 天內回覆
-
難度 2/5 1-3 小時 新手友好度 72/100
mdn/translated-content#40220 ·
維護者通常 4 天內回覆
-
enhancement
難度 2/5 1-3 小時 新手友好度 84/100
ETSInitiative/PETSIRD#243 ·
維護者通常 1 天內回覆
-
deferred p2
難度 2/5 1-3 小時 新手友好度 70/100
cuadrao-ai/argus#2160 ·
維護者通常 1 天內回覆