Skip to content

feat(tuios): rconのDocker container sessionをTUIOSで使えるようにする - #439

Merged
shonenm merged 1 commit into
mainfrom
feat/tuios-rcon-container
Oct 19, 2026
Merged

shonenm merged 1 commit into
mainfrom
feat/tuios-rcon-container

Conversation

@shonenm

@shonenm shonenm commented Oct 18, 2026

Copy link
Copy Markdown
Owner

Summary

tmux の rcon で使っていた Docker container 連携を TUIOS でも使えるようにする。container に紐づけた session では、pane・split・popup が container 内で開き、cwd も引き継ぐ。

Changes

  • tui rcon [host:container] を追加する。~/.config/rcon/targets から fzf で選ぶか、引数で指定する。
    • session のホストの ${XDG_STATE_HOME:-~/.local/state}/tuios-rcon/<session> に container 名を書いてから、session を作成・表示する。
    • remote へは [hosts] の addr に SSH して書く。
    • TUIOS 0.10.1 には session 単位の default command や user option がないため、この state file で代用する。
  • tmux-default-shell: 登録済み session の pane shell(引数なし、$TMUX なし)は tmux-docker-enter で container に入る。分割・新規 pane・daemon 再起動後の復元にも同じ経路が効く。
  • tmux-docker-enter: TUIOS の pane では RCON_PANE_ID を container に渡す。
    • 新規 pane の cwd は、同じ session で最後に prompt を出した pane の container 内 cwd を使う。
    • TUIOS は shell が起動する時点で新しい pane に focus を移しており、分割元の pane を取得できない。cwd の継承も docker client のホスト側 cwd になる。
  • container 側の zshrc hook: RCON_PANE_ID でも pane ごとの cwd ファイルを書く。TUIOS の pane では prompt のたびに更新する。
  • tmux-pane-context: TUIOS では command entry の TUIOS_SESSION / TUIOS_ACTIVE_PANE_ID / TUIOS_ACTIVE_PANE_CWD と state file を読む。tmux 経路の出力は変えない。
  • lazygit / live-pr / pgcli / quay の popup を tmux-popup-in-container 経由にする。
  • docs/tools/tuios.md に Container session の節を追加し、docs/infrastructure/rcon.md からリンクする。

Test plan

  • python3 scripts/test-tui.py(33件)。登録・SSH 経由の登録・pane shell の分岐・pane context・新規 pane の cwd 選択を、偽の docker / tuios / tmux で確認
  • 隔離 daemon(TUIOS_SERVER、一時 XDG_CONFIG_HOME / XDG_STATE_HOME)と一時 alpine container での E2E
    • tui rcon local:<container> で pane が container に入る
    • container 内で cd してから prefix | で分割すると、新しい pane が同じ container 内 cwd で開く
    • prefix の popup(検証用 command entry)が、focus 中の pane の container・cwd で動く。container のない session ではホストで動く
  • 隔離 tmux server で tmux-pane-context の tmux 経路の出力が main と同一
  • scripts/check-markdown-links.py / scripts/check-package-duplication.sh
  • remote host(ailab:<container>)での実機確認。稼働中のホストに触れないよう未実施

@shonenm
shonenm force-pushed the feat/tuios-rcon-container branch from 74e10d2 to 0c461c9 Compare October 19, 2026 03:20
- tui rconでtargetsからcontainerを選び、sessionのホストへ登録してから作成・表示する
- 登録済みsessionのpane shellはtmux-docker-enterでcontainerへ入る
- 新規paneは同じsessionで最後にpromptを出したpaneのcontainer内cwdを引き継ぐ
- lazygit・live-pr・pgcli・quayのpopupをfocus中paneのcontainer・cwdで開く
- tmux-pane-contextをTUIOSのcommand entry環境変数と登録ファイルに対応させる
@shonenm
shonenm force-pushed the feat/tuios-rcon-container branch from 0c461c9 to 18ca912 Compare October 19, 2026 03:27
@shonenm
shonenm merged commit 086f2a8 into main Oct 19, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant