目的
参加者ごとに区別できる名前を持たせ、宛先がひとつの参加者を名指せるようにする。
前提
実測
2026-08-22、Master。並列に立てた 2 セッションの名前がどちらも Claude Code になり、Lin と Lay を宛先に指定できなかった。作業ディレクトリは別々に分けてあった。#31 で入れた宛先が、名指す先を区別できないため機能しない。
名前は起動ごとに選べない
ランチャは起動ごとに作業ディレクトリと起動オプションを差し替えられるが、名前は差し替えられない。
startSession は選択中のタブを { ...tab, cwd, args } として起動する(src/main.ts)。cwd と args は入力欄の値で上書きされるが、name はタブのものがそのまま乗る。その name が start_session で agent_name になり(src-tauri/src/session.rs)、LIPLUS_AGENT_NAME として .mcp.json に書かれ、サイドカーが hello で名乗る。
そして既定のタブは 1 つだけで、名前は Claude Code である(src-tauri/src/config.rs の AppConfig::default)。タブを追加する UI も、名前を編集する UI も存在しない(index.html の #launcher は #tab-select / #session-cwd / #launch-options のみ)。
したがって、何回起動しても全員が Claude Code を名乗る。作業ディレクトリを分けても変わらない。
対称性
人間の名前は既に起動ごとに選べる。タイトルバーの #display-name(既定 human)がそれで、発言のたびに読まれる。参加者が自分の名前を名乗って場に加わる形は、人間側だけ実装されている。
エージェント側に同じ形が無いことが、この issue の中身である。掲示板として人間と AI を同じ参加者として扱うなら、名前は参加の時点で決まるべきものであり、設定ファイルに固定されたタブの属性ではない。
名簿が名前で重複を畳む
agents: BTreeSet<String> であり、同名の 2 エージェントは 1 エントリになる(src-tauri/src/room.rs)。片方が切断すると remove_agent で両方が名簿から消える。名前が一意になっても、名簿の同一性を名前に置いている点は独立に残る。
潜在的な上書き経路(今回の原因ではない)
register_sidecar は <cwd>/.mcp.json の mcpServers に固定鍵で書き込む(crates/mcp-config/src/lib.rs)。同じ作業ディレクトリを指す 2 セッションは同じ鍵を上書きするため、名前が一意になった後もこの経路では潰れる。
今回の実測では作業ディレクトリが分かれていたため、この経路は発火していない。名前を起動ごとに選べるようにした後に露出するので、同じ issue で塞ぐ。
制約
- 名前は人間が読んで選ぶものである。UUID などの機械的な一意化で置き換えない。宛先の選択肢に出るのはこの名前であり、Master が Lin と Lay を選べることが目的である。
- 名前は参加の時点で決める。人間側の
#display-name と同じ形に揃える。設定ファイルのタブ属性として固定しない。
- 名簿の同一性はセッションに置く。名前は表示と宛先のための属性であって、識別子として扱わない。
.mcp.json の既存内容は保持する。この repo の他のサーバ登録を壊さない。
対象ファイル
index.html, src/main.ts — 起動時の名前入力
src-tauri/src/session.rs — セッション起動時の名前の解決
src-tauri/src/config.rs — 既定のタブ
crates/mcp-config/src/lib.rs — 同一作業ディレクトリでの書き込み単位
src-tauri/src/room.rs — 名簿の同一性
docs/0-requirements.md
完了条件
- 起動ごとに名前を選べる。
- 並列に立てた 2 セッションが別々の名前で名乗る。
- 同じ作業ディレクトリを指す 2 セッションでも名前が潰れない。
- 宛先の選択肢に両方が並び、片方を指定できる。
- 片方が切断しても、もう片方が名簿に残る。
関連
目的
参加者ごとに区別できる名前を持たせ、宛先がひとつの参加者を名指せるようにする。
前提
実測
2026-08-22、Master。並列に立てた 2 セッションの名前がどちらも
Claude Codeになり、Lin と Lay を宛先に指定できなかった。作業ディレクトリは別々に分けてあった。#31 で入れた宛先が、名指す先を区別できないため機能しない。名前は起動ごとに選べない
ランチャは起動ごとに作業ディレクトリと起動オプションを差し替えられるが、名前は差し替えられない。
startSessionは選択中のタブを{ ...tab, cwd, args }として起動する(src/main.ts)。cwdとargsは入力欄の値で上書きされるが、nameはタブのものがそのまま乗る。そのnameがstart_sessionでagent_nameになり(src-tauri/src/session.rs)、LIPLUS_AGENT_NAMEとして.mcp.jsonに書かれ、サイドカーがhelloで名乗る。そして既定のタブは 1 つだけで、名前は
Claude Codeである(src-tauri/src/config.rsのAppConfig::default)。タブを追加する UI も、名前を編集する UI も存在しない(index.htmlの#launcherは#tab-select/#session-cwd/#launch-optionsのみ)。したがって、何回起動しても全員が
Claude Codeを名乗る。作業ディレクトリを分けても変わらない。対称性
人間の名前は既に起動ごとに選べる。タイトルバーの
#display-name(既定human)がそれで、発言のたびに読まれる。参加者が自分の名前を名乗って場に加わる形は、人間側だけ実装されている。エージェント側に同じ形が無いことが、この issue の中身である。掲示板として人間と AI を同じ参加者として扱うなら、名前は参加の時点で決まるべきものであり、設定ファイルに固定されたタブの属性ではない。
名簿が名前で重複を畳む
agents: BTreeSet<String>であり、同名の 2 エージェントは 1 エントリになる(src-tauri/src/room.rs)。片方が切断するとremove_agentで両方が名簿から消える。名前が一意になっても、名簿の同一性を名前に置いている点は独立に残る。潜在的な上書き経路(今回の原因ではない)
register_sidecarは<cwd>/.mcp.jsonのmcpServersに固定鍵で書き込む(crates/mcp-config/src/lib.rs)。同じ作業ディレクトリを指す 2 セッションは同じ鍵を上書きするため、名前が一意になった後もこの経路では潰れる。今回の実測では作業ディレクトリが分かれていたため、この経路は発火していない。名前を起動ごとに選べるようにした後に露出するので、同じ issue で塞ぐ。
制約
#display-nameと同じ形に揃える。設定ファイルのタブ属性として固定しない。.mcp.jsonの既存内容は保持する。この repo の他のサーバ登録を壊さない。対象ファイル
index.html,src/main.ts— 起動時の名前入力src-tauri/src/session.rs— セッション起動時の名前の解決src-tauri/src/config.rs— 既定のタブcrates/mcp-config/src/lib.rs— 同一作業ディレクトリでの書き込み単位src-tauri/src/room.rs— 名簿の同一性docs/0-requirements.md完了条件
関連