---
title: 4.7.2 — ターミナルが正しいプロセスに戻る
layout: default
parent: 日本語
nav_order: 1004
description: MulmoTerminal 4.7.2 のセットアップガイド — ターミナルが別のバックエンドプロセスに再接続してしまう問題を 3 層にわたって修正、worktree が作業ディレクトリのチップに溜まらなくなり、コックピットのロスターに Agent Picker のマークが付き、コレクションのチャットでエージェントを選べるようになった。2026-08-08 時点のスナップショット。
---

# 4.7.2 — ターミナルが正しいプロセスに戻る

**2026-08-08 にリリースした 4.7.2 のスナップショットです。** アプリが進むにつれて内容は古くなり
ますが、それは想定どおりです。常に最新の情報は、各セクションから貼っている本編ガイドのリンクを
たどってください。

```bash
npx mulmoterminal@latest
```

**このリリースでは設定することはほとんどありません。** 中身のほとんどは修正で、4.7.2 を起動した
時点で全部効いています。手を動かす価値があるのは片付けが 1 つだけ
（→ [すでに溜まった worktree チップを消す](#すでに溜まった-worktree-チップを消す)）。

---

## このリリースの中心にある不具合

ターミナルが**別のバックエンドプロセスに再接続**してしまうことがありました。具体的には —
codex（あるいは Antigravity / Muse）の会話のバックエンドがまだ tmux で動いているのに、ランチャーは
それを「空いている」と表示し、resume を押すと**同じ会話に 2 つ目のバックエンドが起動**する。以降は
コールド再接続のたびにどちらのプロセスに当たるか分からず、同じセルが日によって違う状態を見せる、
という状態でした。

実機で見つかったもので、しかも稀ではありませんでした。調査したところ Claude 以外の 3 エージェント
すべてのログでこの二重セッション状態が見つかり、加えて 19 個のセッションが誰にも見えないまま
detached で動き続けていました。

**修正を受け取るために何かする必要はありません。** 以下は「効いていることをどう確かめるか」です。

### 効いているかの確かめ方

worktree でエージェントを起動し、ブラウザのタブを閉じて（**セルは閉じないでください** — セルを
閉じるとセッションが終了します）、もう一度アプリを開きます。

- worktree の行が、新規セッションの開始ではなく **resume** を出すようになります。以前はここが
  「空き」に見えていて、動いているエージェントの隣に 2 つ目を起動していました。
- resume を押すと、すでに動いていたプロセスにそのまま戻ります。同じ会話の、スクロールバックの
  途中に着地します。

もう半分は**サーバ再起動**です。codex のセルが作業中のまま MulmoTerminal を再起動し、セルが再接続
するのを待ってから、そのセッションを進めてみてください。

- セルの **working / waiting** のドットがまた動きます。このリリース以前は、再起動をまたいだ codex
  セッションは再接続自体はできるものの activity の追跡が復帰せず、ドットが止まったまま・ターン完了
  通知も来ないままで、セッションを立て直すまで直りませんでした。
- サーバが落ちた時点で**ターンの途中**だった場合、セルはそれを working として表示します（ターンが
  終わるまで idle に見える、ということがなくなりました）。

→ 本編の [セッションと再接続](basics.html)

### 開けないセッションが掃除されるようになった

セッション id が設定されないまま起動すると、`mt-undefined` という名前の tmux セッションができて
いました。同じ不具合を踏んだ起動が全部そこに相乗りする共有バケツで、しかも attach / resume /
terminate はどれも id を検証するので、**開くことも終わらせることもできない**代物でした。2 つ直して
います: 不正な id での起動は黙って共有されるのではなく**メッセージを出して失敗**するようになり、
idle sweep はこの手の到達不能なセッションを猶予なしで即座に終了します（どれだけ最近使われていても
到達可能にはならないため）。

もし持っていても、次回起動時に消えます。作業は不要です。

→ [使っていないセッションの終了](config.html) — `sessionIdleReapDays` は今までどおり sweep 全体を
止められますし、誰かが接続中のセッションは今までどおり守られます。

---

## worktree が作業ディレクトリのチップに溜まらなくなった

セルのランチャーの **WORKING DIRECTORY** の下に並ぶチップは、起動した場所から自動的に記録されます。
worktree も他のディレクトリと同じように起動するので、**隔離タスクを 1 つ回すたびにチップが 1 つ**
残っていました。worktree は 1 ブランチ 1 タスクのために存在し、タスクが終われば削除されるもの
です。しかも削除してもチップは消えないので、実体のないパスが積み上がって本来のプロジェクトを
押し出していました。

4.7.2 からは managed worktree を記録しません。このリストに入る経路は 2 つあり、両方を塞いでいます:
起動のたびの自動記録と、`mulmoterminal init` が Claude の履歴から作り直す seed です。

**スキップするのは「このアプリが作った worktree」だけです。** 判定は managed root（MulmoTerminal が
worktree を作るディレクトリ）配下かどうかを見たうえで、そこに生成される `<repo>-<8hex>` という名前
であることまで要求します。たまたま同じような構成になっているご自身のディレクトリや、その root の下に
手で置いたディレクトリは、今までどおり記録されます。

### すでに溜まった worktree チップを消す

**すでに保存されているチップはそのまま残します。** これは意図的です。保存済みの設定はユーザーのもの
であって、このリリースがそこから黙ってエントリを削除することはしません。

したがって、しばらく溜め込んだリストには今も並んでいます。要らないものはチップの **×** で消して
ください（今までと同じボタンです）。それ以外にすることはありません。新しく増えることはもうありません。

→ [ランチャーフォーム](basics.html) — 作業ディレクトリの入力欄とチップ
→ [worktree](worktree.html) — managed worktree とは何か、どこにできるのか

---

## 何回押してもファイルダイアログは 1 つ

作業ディレクトリ欄の横の**フォルダ**ボタンは、**クリックした回数だけ OS のファイルダイアログを開いて**
いました。ネイティブのダイアログは閉じるまで応答しない設計で、その間クリックを止めるものが何も
なかったためです。せっかちにダブルクリックすれば 2 つ閉じることになり、何度か押せばその回数だけ
閉じる羽目になっていました。

ファイルダイアログは 1 台に 1 つなので、その裏側の状態も 1 つにしました。アプリ内のすべてのピッカー
ボタンが同じフラグを読み、サーバ側でも 2 つ目の同時ダイアログを拒否します。

有効化の操作は不要です。

---

## コックピットのロスター

拡大表示のロスターに関する変更が 2 つ。どちらもセルを拡大した瞬間に見えます。

### すべての行が Agent Picker と同じマークを着ける

以前は Claude 以外のエージェントの**名前**が枠付きのピルで出ていました（`codex` / `agy` / `grok` /
`mu`）。Claude には何も出ませんでした。これが Agent Picker やレート制限ゲージと同じ**描かれた
マーク**になり、1 つのエージェントはアプリのどこでも同じ見た目になります。

**エージェントを走らせていない行には何も付きません。** ここが注意の要るところで、ランチャーチップ、
コマンド実行セル、まだ何も起動していないセルはいずれもエージェントを持ちません。安直に「エージェント
無し = Claude」としてしまうと、`yarn dev` のチップに Anthropic のマークが付くことになります。その行が
何なのかは、ステータスのドットとディレクトリがすでに語っています。

→ 本編の [コックピット・ロスター](basics.html)

### 枠のジオメトリを統一（枠の太さが「状態」を意味するように）

行を囲むリングは **blocked** が 2px、**done** が 1px、残り 3 状態は無し、と状態ごとに太さが違って
いました。縦に積まれたリストでは、目は色より先に**幅の差**を読むので、3 種類の太さは「3 つの意味」
ではなく「描画バグ」に見えます。

全状態を 2px に統一し、言うことのない行は透明で縁取ります（box-shadow なのでレイアウトコストは
ゼロ）。左端の 3px のストライプは削除しました。リングが行を囲むようになった時点で、1 辺だけ太さが
違うのは枠が自分自身と食い違っているだけだからです。行間は 5px → 9px に広げています（隣り合う
リングが 1px 差まで近づき、列がひとかたまりに見えていたため）。

設定は不要で、これがロスターの新しい描画です。

---

## コレクションのチャットでエージェントを選べるようになった

**Collections** から始めるチャットは、二重の意味で Claude 専用になっていました。

コレクションブラウザにあった 3 ボタンのエージェント切り替えは、ピン留めのお気に入りに置き換えられ、
その設定を**書く側が誰もいなくなって**いました。つまりブラウザが最後に保存した値のまま固定され、
旧トグルを一度も使わなかった人にとってはずっと Claude、という状態でした。

コンパクトな **Launch with** ドロップダウンが、そのピンと同じ行に入りました。並ぶのは組み込みの
エージェントだけです（spawn のルートがホストできるのがちょうどそれだけのため。Shell は無し —
seed 付きのチャットにはエージェントが要ります。カスタムエージェントも無し — このルートはカスタムの
argv を組み立てません）。ピンが 1 つも無くてもこの行は表示されるようになりました。ピッカーには常に
中身があるからです。

もう半分は目に見えないほうで、これらのチャットが頼る**ワークスペースのスキル**が、選べるエージェント
の一部からは見えていませんでした。今はすべてのエージェントから見えます。

→ [機能一覧](features.html) — Collections とアプリ内ビュー
→ [どのコーディングエージェントか](agents.html) — 5 つすべて、常に最新

---

## その他

- **Windows の CI が復旧** (#1540)。前リリースのセッション周りの作業以降、Windows のテストが失敗して
  いました。新しいテストが、正規化済みのパスを取る関数に生の POSIX パスを渡していたため、Windows では
  `/wt/fix-login` と `D:\wt\fix-login` を比較して永久に一致しない、というものです。**出荷される
  コードは正しく**、間違っていたのはテストだけなので、Windows でのアプリの挙動は何も変わっていません。
  記録しておく価値があるのは、そのテストの 6 ケースのうち 4 つが Windows で**間違った理由で通って
  いた**からです。次の不具合を隠すのはこの種の緑です。
- **コードレビュー bot が現行の Codex CLI とモデルで動くように** (#1526, #1529)。リポジトリのツール
  周りで、アプリへの影響はありません。
- **ブログのカバー画像をこのリポジトリへ移動** (#1530)。private 側の raw URL が外部から 404 になり、
  記事のカバーが表示されなかったためです。

---

## リンク

- [基本 — 画面の読み方](basics.html) — ランチャーフォーム、チップ、ロスター
- [worktree](worktree.html) — タスクごとの隔離ブランチ
- [機能一覧](features.html) — Collections・Wiki・会計・ファイルエクスプローラ
- [どのコーディングエージェントか](agents.html) — Claude / Codex / Antigravity / Grok / Muse
- [設定](config.html) — すべての設定、常に最新
- [変更履歴](https://github.com/receptron/mulmoterminal/blob/main/docs/ChangeLog.md) — 全リリースと
  対応する Pull Request
