Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ npm run tauri dev

リストの下にセッションの裏の値(部屋ソケット、セッションの生死、接続方法、起動コマンド、作業ディレクトリ、開始時刻、ウィンドウ)が出ます。部屋ソケット以外は、選んでいる端末のアカウントのものです。宛先に選べるのは部屋に居る参加者だけで、未起動のアカウントは出ません。

「診断」を開くと**起動した CLI の端末**が出ます。端末はそのまま操作できます。CLI はフォルダごとに初回の信頼確認を出すため、最初の一回はここから答えてください。
タイトルバーの「端末」を開くと**起動した CLI の端末**が出ます。端末はそのまま操作できます。CLI はフォルダごとに初回の信頼確認を出すため、最初の一回はここから答えてください。

端末はアカウントごとに別です。複数のセッションを動かしても出力が混ざることはなく、キー入力とペーストは**今見えている端末**のセッションへ届きます。別のアカウントを見てから戻っても、それまでの出力は残っています。終了したアカウントの端末も、別のアカウントを選ぶまで残ります(なぜ落ちたかは、落ちる直前の出力にしか書かれていないためです)。

Expand Down
4 changes: 2 additions & 2 deletions docs/0-requirements.md
Original file line number Diff line number Diff line change
Expand Up @@ -372,7 +372,7 @@ armed の「本当に終了」は「終了」より広く、その幅は名前

梯子に無い値が保存されていた場合は既定へ戻す。落ちる先が黙っているためである——梯子の外の値からは段を進めず、キーもピッカーも理由を出さずに効かなくなる。

**操作はキーボードとヘッダの両方に置く。** `Ctrl` + `=` / `-` / `0`(拡大 / 縮小 / 既定へ戻す)と、`診断` の隣の小さなピッカーである。キーボードだけにしないのは既定値の側の事情である。既定を現状維持と決めた以上、設定していない画面に出るのは「大きい」と言われたその状態であり、見つけられない操作の裏に直し方を置けば、知っている者だけが直せる。ピッカーの表示は既定に対する百分率である。選んでいるのは「今より大きいか小さいか」であって、内部で何 `rem` かではない。
**操作はキーボードとヘッダの両方に置く。** `Ctrl` + `=` / `-` / `0`(拡大 / 縮小 / 既定へ戻す)と、`端末` の隣の小さなピッカーである。キーボードだけにしないのは既定値の側の事情である。既定を現状維持と決めた以上、設定していない画面に出るのは「大きい」と言われたその状態であり、見つけられない操作の裏に直し方を置けば、知っている者だけが直せる。ピッカーの表示は既定に対する百分率である。選んでいるのは「今より大きいか小さいか」であって、内部で何 `rem` かではない。

キー操作は既定動作を止める。webview 自身のズームが同じキーに割り当たっており、そちらは参加者パネル・診断面・端末・入力欄をまとめて巻き込む。この節が効かせないと決めた四つがそのまま動くため、止めなければ範囲の限定そのものが成立しない。

Expand Down Expand Up @@ -541,7 +541,7 @@ CI が実行するもの:
上流から順に確認する。各段は下流の前提であるため、順序を飛ばさない。

1. **部屋ソケットが待ち受けているか。** 右の参加者パネルの部屋ソケットの行を見る。`127.0.0.1:<port>` が accent 色で出ていなければ以降はすべて不成立。
2. **セッションが生きているか。** 同じパネルのセッション行を見る。`終了(終了コード N)` なら CLI が落ちている。この行は参加者のリストで選択されている端末のアカウントのものであるため、複数動かしている場合はまず対象の行を選ぶ。理由はタイトルバーの「診断」を開いた先の端末に残る。CLI が確認プロンプトで止まっている場合は、端末へ直接答える。
2. **セッションが生きているか。** 同じパネルのセッション行を見る。`終了(終了コード N)` なら CLI が落ちている。この行は参加者のリストで選択されている端末のアカウントのものであるため、複数動かしている場合はまず対象の行を選ぶ。理由はタイトルバーの「端末」を開いた先に残る。CLI が確認プロンプトで止まっている場合は、端末へ直接答える。
3. **サイドカーが接続したか。** パネルの参加者のリストで、そのアカウントの行から「未起動」が消え、薄い表示が戻る。リストにはアカウントが起動していなくても並ぶため、名前が出ていること自体は接続の根拠にならない。自分(人間)も発言前から載っている。接続していない場合は端末に `room socket: connected as "<name>"` があるかを見る。
4. **サイドカー単体が壊れていないか。** `npm run sidecar:test` を実行する。偽の部屋ソケットを立てて両面を駆動するため、通ればサイドカーではなくアプリ側の問題に絞れる。
5. **`.mcp.json` の登録が効いているか。** セッションの作業ディレクトリの `.mcp.json` に `pullcept-room-<slug>-<hash>` が入っているかを見る。鍵はアカウント id から決まるため名前では引けない。どのアカウントのものかはエントリ内の `PULLCEPT_AGENT_NAME` で読む。固定の `pullcept-room` は前回起動の残りとして掃除される側である。`--mcp-config` によるファイル渡しでは channel 側が名前を解決できないため、正式登録以外の経路は成立しない。
Expand Down
2 changes: 1 addition & 1 deletion index.html
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
aria-label="会話の文字サイズ"
title="会話の文字サイズ(Ctrl + = / - / 0)"
></select>
<button id="toggle-diagnostics" type="button" aria-expanded="false">診断</button>
<button id="toggle-diagnostics" type="button" aria-expanded="false">端末</button>
</header>

<div id="body">
Expand Down
2 changes: 1 addition & 1 deletion src/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1371,7 +1371,7 @@ async function followSession(view: SessionView, started: StartedSession): Promis
for (const off of view.unlisten) off();
view.unlisten = [];
const name = viewName(view);
status(`${name} が終了しました(${detail})。診断を確認してください。`, "error");
status(`${name} が終了しました(${detail})。端末を確認してください。`, "error");
// The seat this account held is free the moment its session ends, so the
// panel says 未起動 again and the account can be started once more.
void refreshSeats();
Expand Down