Skip to content

fix(terminal-browser): エージェントが開いたときはペインのフォーカスを奪わない - #526

Merged
gapul merged 1 commit into
mainfrom
fix/tb-no-focus-steal
Sep 1, 2026
Merged

fix(terminal-browser): エージェントが開いたときはペインのフォーカスを奪わない#526
gapul merged 1 commit into
mainfrom
fix/tb-no-focus-steal

Conversation

@gapul

@gapul gapul commented Aug 31, 2026

Copy link
Copy Markdown
Owner

症状

エージェントが terminal-browser open --split right で裏に 1 枚開くたびに、ユーザーの入力先がブラウザのペインへ飛ぶ。打っている最中に持っていかれる。

原因

terminal-browser の herdr 連携が split に --focus を決め打ちで渡している。

splitPane(["--pane", from.id, "--direction", native, "--focus", ...ratio])

分割の後は全部明示的な pane id で動いている (pane swap --pane newPaneIdpane run newPaneId) ので、--focus を外しても後続は壊れない。

直し方

cli/dist/main.jssubstituteInPlace を当てて、環境変数で切り替えられるようにした。判断は bin ラッパー側。

  • 人が打った → フォーカスを移す (見るために開いたはずなので)
  • エージェントが開いた → 移さない

見分けは stdout が端末かどうか。エージェントはパイプ越しに叩くのでここで分かれる。TERMINAL_BROWSER_FOCUS=1 を置けば常に移る。

cli/dist/main.js は .app の外なので、同梱 Electron の署名には影響しない (ビルド後に codesign -v が通ることを確認済み)。cmux 側にも "--focus" があるが別のリテラルなので巻き込まない (--replace-fail で一致は 1 箇所)。

確認

実機で、パイプ越しに open --split right を実行 → 開いた後もフォーカスは元の w1:p3H / タブ w1:t33 のままだった。

@gapul
gapul merged commit 94e2196 into main Sep 1, 2026
5 checks passed
@gapul
gapul deleted the fix/tb-no-focus-steal branch September 1, 2026 01:09
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