目的
端末をアカウントごとに持ち、アカウントごとに終了できるようにする。design/Vision.dc.html の参加者パネルが描く 端末 / 終了 の形にする。
前提
端末が 1 つしかなく、混ざっている
followSession(src/main.ts)は起動のたびに pty-data-{id} の購読を足すが、書き込み先は共有の terminal 1 つであり、購読の解除も無い。
したがって 2 セッションを動かすと両方の出力が同じ端末に混ざる。「最後に起動したものが見える」のではなく「全部が重なっている」状態である。
入力の宛先も間違っている
キーボード入力とペーストは activePtyId へ送られる(src/main.ts 886 / 904 行)。activePtyId は最後に起動したセッションであり、画面に何が見えているかとは無関係である。
見ている端末と打ち込まれる端末が一致しない。 表示の混線より実害が大きい。
終了は機構として既にある
kill_pty は実装済みで、src-tauri/src/lib.rs の invoke ハンドラにも登録済み。UI から呼ばれていないだけである。
席の解放も追加作業を要しない。RoomSeats::seated(#53)が死んだ PTY の席を掃くため、終了すれば席は自動的に空く。
パネルは既にアカウントを並べている
#54 でパネルがアカウント一覧 ⋈ 稼働中の名簿を描いている。行はある。操作が無いだけである。
制約
対象ファイル
src/main.ts — アカウント → 端末の対応、切り替え、入力の宛先、終了の呼び出し
index.html, src/styles.css — パネル行の操作
docs/0-requirements.md
完了条件
- アカウントごとに端末を選んで見られる。
- 2 セッションを動かしたとき、出力が混ざらない。
- 入力とペーストが、今見えている端末のセッションへ届く。
- 切り替えて戻ってもスクロールバックが残っている。
- アカウントごとに終了できる。終了後、そのアカウントの席が空き、再起動できる。
- 終了が押し間違いで起きにくい形になっている。
- 終了直後もそのアカウントの出力が読める。
- 未起動のアカウントに端末の操作が出ない、または押せない。
- protocol が変わっていない。
関連
目的
端末をアカウントごとに持ち、アカウントごとに終了できるようにする。
design/Vision.dc.htmlの参加者パネルが描く端末/終了の形にする。前提
端末が 1 つしかなく、混ざっている
followSession(src/main.ts)は起動のたびにpty-data-{id}の購読を足すが、書き込み先は共有のterminal1 つであり、購読の解除も無い。したがって 2 セッションを動かすと両方の出力が同じ端末に混ざる。「最後に起動したものが見える」のではなく「全部が重なっている」状態である。
入力の宛先も間違っている
キーボード入力とペーストは
activePtyIdへ送られる(src/main.ts886 / 904 行)。activePtyIdは最後に起動したセッションであり、画面に何が見えているかとは無関係である。見ている端末と打ち込まれる端末が一致しない。 表示の混線より実害が大きい。
終了は機構として既にある
kill_ptyは実装済みで、src-tauri/src/lib.rsの invoke ハンドラにも登録済み。UI から呼ばれていないだけである。席の解放も追加作業を要しない。
RoomSeats::seated(#53)が死んだ PTY の席を掃くため、終了すれば席は自動的に空く。パネルは既にアカウントを並べている
#54 でパネルがアカウント一覧 ⋈ 稼働中の名簿を描いている。行はある。操作が無いだけである。
制約
activePtyId(最後に起動したもの)を入力の宛先として使わない。対象ファイル
src/main.ts— アカウント → 端末の対応、切り替え、入力の宛先、終了の呼び出しindex.html,src/styles.css— パネル行の操作docs/0-requirements.md完了条件
関連
design/Vision.dc.htmlの端末/終了。この issue はその形に寄せる。RoomSeatsの掃きによる。