Skip to content

Commit da09ba9

Browse files
committed
fix(runtime): remove tmux wrapper from claude
1 parent c7f3682 commit da09ba9

3 files changed

Lines changed: 4 additions & 42 deletions

File tree

deploy/docker/managed-user/README.md

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,4 @@ Phase 2 只允许在这个模板旁边新增网络准备钩子接口,不在本
1515
## 容器内运维脚本
1616

1717
- `restart-vnc`:重启 KasmVNC + 桌面进程(不重建容器)。
18-
- `claude`:默认包装为基于 `tmux` 的持久会话模式:
19-
- 会话名按当前目录计算,同目录重复执行会复用同一 Claude 进程。
20-
- SSH 断开不会结束 Claude 进程。
21-
- 临时关闭该行为:`CLAUDE_NO_TMUX=1 claude ...`
18+
- `claude`:直接启动 `claude-real`,不额外包 `tmux` 或其他中转层,优先保证 SSH + 输入法场景下的交互兼容性。

deploy/docker/managed-user/claude-wrapper.sh

Lines changed: 2 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -6,44 +6,9 @@ if [ ! -x "${REAL_CLAUDE}" ]; then
66
if command -v claude-real >/dev/null 2>&1; then
77
REAL_CLAUDE="$(command -v claude-real)"
88
else
9-
echo "claude-real not found, cannot start persistent claude session." >&2
9+
echo "claude-real not found, cannot start claude." >&2
1010
exit 127
1111
fi
1212
fi
1313

14-
# Non-interactive mode keeps the original behavior.
15-
if [ "${CLAUDE_NO_TMUX:-}" = "1" ] || ! command -v tmux >/dev/null 2>&1 || [ ! -t 0 ] || [ ! -t 1 ]; then
16-
exec "${REAL_CLAUDE}" "$@"
17-
fi
18-
19-
WORKDIR="$(pwd -P)"
20-
HASH="$(printf '%s' "${WORKDIR}" | sha1sum | awk '{print $1}')"
21-
SESSION="claude_${HASH:0:12}"
22-
23-
build_cmd() {
24-
local quoted
25-
printf -v quoted '%q ' "${REAL_CLAUDE}" "$@"
26-
printf '%s' "${quoted% }"
27-
}
28-
29-
CMD="$(build_cmd "$@")"
30-
31-
if tmux has-session -t "${SESSION}" 2>/dev/null; then
32-
if [ -n "${TMUX:-}" ]; then
33-
CURRENT="$(tmux display-message -p '#S' 2>/dev/null || true)"
34-
if [ "${CURRENT}" = "${SESSION}" ]; then
35-
echo "Already attached to ${SESSION} (${WORKDIR})" >&2
36-
exit 0
37-
fi
38-
exec tmux switch-client -t "${SESSION}"
39-
fi
40-
exec tmux attach -t "${SESSION}"
41-
fi
42-
43-
tmux new-session -d -s "${SESSION}" -c "${WORKDIR}" "${CMD}"
44-
tmux set-option -t "${SESSION}" destroy-unattached off >/dev/null 2>&1 || true
45-
46-
if [ -n "${TMUX:-}" ]; then
47-
exec tmux switch-client -t "${SESSION}"
48-
fi
49-
exec tmux attach -t "${SESSION}"
14+
exec "${REAL_CLAUDE}" "$@"

version.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.2.0
1+
1.6.9

0 commit comments

Comments
 (0)