4.5.1 — モデルの無い接続先は、そう言う

2026-08-05 に書いたスナップショットです(MulmoTerminal 4.5.1)。 ここに書いた挙動はその日に 出荷されたものです。古くなっていくのは想定どおりなので、最新の内容は各節からリンクしている ガイド本体を見てください。

npx mulmoterminal@latest

設定するものはありません — ただし1つだけ例外があります。idopenrouter 以外の接続先を providers に登録している場合は、1行足す必要があります。そして今回のリリースで、それが初めて 画面から分かるようになりました。


MODEL の一覧が「動かせないもの」を出さなくなった

何が壊れていたか。 providers に登録した接続先が起動フォームの MODEL ドロップダウンに 出るのに、クリックでも矢印キーでも選べませんでした(#1432)。

そもそも選択肢ではありませんでした。モデルが 0 個のプロバイダは、中身の無いグループ 見出し として描画されます。ブラウザはそれを「背景色つきの行」として描き、マウスもキーボードも その行を飛ばします。

なぜモデルが 0 個になるのか。 検証済みのモデル一覧は OpenRouter のもので、プロバイダの id で紐づいています。deepseekmoonshot・社内ゲートウェイなどの id で登録した接続先は ゼロから始まるので、自分で列挙する必要があります。セッションも起動できません(プロバイダだけ 指定してモデルを指定しない起動は拒否されます)。

いまはこう見えます。 そのプロバイダは一覧から外れ、MODEL ラベル横のリンクが Needs attention に変わります:

起動フォームの MODEL 行。左に MODEL、右に Needs attention のリンク、下に This directory's default を表示したセレクト

開くと、理由がパネルの先頭に出ます:

Running a session on another model パネル。NEEDS ATTENTION の枠に「provider 'deepseek' has no models to pick — list its model ids under "models" in ~/.mulmoterminal/config.json (only 'openrouter' has built-in presets)」と表示されている

やること。 動かしたいモデル id を、そのプロバイダのエントリに足します:

{
  "providers": [
    {
      "id": "deepseek",
      "label": "DeepSeek",
      "baseUrl": "https://api.deepseek.com/anthropic",
      "tokenEnv": "DEEPSEEK_API_KEY",
      "maxOutputTokens": 16000,
      "models": ["deepseek-chat", "deepseek-reasoner"]
    }
  ]
}

サーバを再起動すると、その接続先の下に各 id が not tested 付きで並びます。「検証していない」と 言っているだけで、検証したふりをするよりは正直な表示です。

models を書いたのに 1 つも出ない場合は、書いた id が全部弾かれています。モデル id に使えるのは 英数と . _ : / - ~ だけなので、{"id": "…"} のようなオブジェクト、空白入りの値、配列でない models は捨てられます。これまでは黙って捨てていましたが、いまはサーバを起動した端末に、捨てた id が出ます:

[providers] 'deepseek': dropped 1 unusable model id(s) — {"id":"deepseek-chat"}. A model id is letters, digits and . _ : / - ~.

設定画面の Models and backends も同じことを一言で言います。到達できるのに選べるモデルが無い 接続先は、ready ではなく not in the picker と表示されます。

参照: ガイド本体の プロバイダ


「Choose a folder…」が zenity 無しでも動く

何が壊れていたか。 zenity の入っていない Linux デスクトップや WSL2 では、起動フォームの Choose a folder… ボタンが完全に無反応でした(ダイアログも出ず、メッセージも出ない — #1447)。サーバは 1 つのプログラムしか 試さず、UI 側は 3 箇所すべてがその失敗を握りつぶしていました。

いまの挙動:

ホスト ダイアログを開くもの
macOS osascript(標準搭載)
Windows PowerShell(標準搭載)
WSL2 interop 経由で Windows のダイアログ(powershell.exe、返るパスは wslpath で変換)。追加インストール不要
Linux デスクトップ zenitykdialogqarmayad のうち入っているもの

どれも無い場合は「無い」と表示します — 壊れて見えるのではなく、これまでどおり入力欄に直接 パスを打てます。npx mulmoterminal@latest init も、Linux ではこのホストにどのダイアログがあるかを 報告するようになりました。

入れるとしたら(どれも入っていない素の Linux デスクトップの場合):

sudo apt install zenity     # Debian / Ubuntu
sudo dnf install zenity     # Fedora

kdialogqarmayad でも同じように動きます。デスクトップ環境が既にどれか持っているなら、 やることはありません。

参照: ガイド本体の はじめかた


起動フォームのコントロールに幅が戻った

設定するものはありません。4.5.0 のフォームはすべての行を 360px で止めていたため、広いセルでは 細い1列だけが描かれていました(セルが 1535px あるのに、25 個のディレクトリチップが 360px の中で 20 行に折り返す)。そこで幅の上限を全部外したところ、今度はそれ以外が伸びきってしまい、1535px の セルではチェックボックスがラベルから画面幅ぶん離れて座る状態になりました。

そこで両者を分けました。ディレクトリチップはセル幅いっぱい — タイル状に並ぶので、幅がそのまま 行数の削減になります。それ以外のコントロールは 560px で共通。長いパスと worktree のタスク名が 横に並ぶ程度には広く、チェックボックスがラベルの隣に留まる程度には狭い幅です。

参照: ガイド本体の 基本


直っているかどうかの確認

npx mulmoterminal@latest --version

4.5.1 と出れば入っています。MODEL のドロップダウンにまだ「押せない接続先」が出るなら古いビルドです (npx はキャッシュするので、取り直させるには @latest を付けます)。


This site uses Just the Docs, a documentation theme for Jekyll.