Skip to content

feat(ui): surface the participant panel the design already specifies #43

Description

@smileygames

目的

design/Main.dc.html が示す右側の参加者パネルを出す。あわせて発言の色分けを design どおり参加者ごとの色相へ揃える。今日の詰まりを Master が自力で読める面にする。

前提

design/canvas.jsonnext-diff 付箋は、実装済みからの差分を 2 つと記している。

  1. 右の参加者パネル — 裏の値(PTY / cwd / ポート / 起動コマンド)はすべて既にあり、出すだけ
  2. 宛先(feat(room): give utterances an addressee so agents can stay silent #31

2 は #31 で入り、#39 で投稿モデルへ載せ替えた。1 は未実装で、issue も無い。この issue がそれである。

出す値は既にある

design/Main.dc.html のパネルが並べる項目と、現在の供給元。

項目 供給元
参加者一覧(マスター(あなた) を含む) room_participants / room-participants#39 で人間も着席済み)
部屋ソケット room_port
接続方法 / 起動コマンド TabConfig.command
作業ディレクトリ TabConfig.cwd
開始時刻 セッション起動時刻(現在は保持していない)
ウィンドウ terminal.cols × terminal.rows

開始時刻のみ新規に保持が要る。他は取得済みの値を並べるだけである。

色分けの軸が design とずれている

design/canvas.jsonroadmap 付箋: 「参加者ごとの色は accent と同じ彩度・明度で色相だけ変えています」。

design/Main.dc.html の実値がその通りになっている。

  • accent = #3a6ea5src/styles.css--accent)。oklch でおよそ L 0.52 / C 0.09 / H 255
  • 別の参加者 = oklch(0.52 0.09 155)。明度と彩度は同じ、色相のみ差し替え

現在の実装は #39[data-kind="human"](人間 / AI)を [data-own="true"](自分 / 他人)へ移している。人間 / AI の軸を外した点は #39 の目的どおりだが、外した後に入れる軸は design が既に答えており、そちらのほうが掲示板として筋が通る。自分 / 他人は二値であり、Lin と Lay が同じ色になる。参加者ごとの色相なら、名簿の色と発言の色が一致し、誰の発言かを色で追える。

パネルの参加者一覧も同じ色を使うため、揃えるならこの issue の中で行う。

現在の診断面との関係

現在の診断面(#diagnostics)は部屋ソケットとセッション状態と端末を畳んで持つ。design はこれを右下へ同居させ、会話面には置かない形にしている。パネルはその上に座る。

制約

  • 会話面に診断値を混ぜない。design の「診断面の端末は右下に畳んで同居。会話面には置かない」を維持する。
  • 端末は message source ではない。現在のコメントが述べている境界を崩さない。
  • 参加者一覧は名簿(room-participants)を唯一の出所とする。画面側で別に持たない。
  • 色と寸法は src/styles.css の実値を使う。design 側が実装トークンを写している側であり、逆ではない。
  • 色相の割り当ては参加者名から決まり、同じ名前には同じ色が付く。発言のたびに変わらない。
  • 明度と彩度は accent と同じに保つ。色相のみ振る。ライト / ダークの両方で読めることを確認する(src/styles.css--accent をダーク時に #7aa7d8 へ差し替えている)。
  • 自分の発言が自分のものと分かる手段は残す。色相が参加者ごとになるため data-own が担っていた役割の行き先を決める(名簿の (あなた) 表記に寄せる、枠線の太さで分ける、等。手段は実装側の判断とする)。

対象ファイル

  • index.html, src/main.ts, src/styles.css
  • src-tauri/src/session.rs — 開始時刻の保持
  • docs/0-requirements.md

完了条件

  • 右側に参加者パネルが出る。名簿の全員が並び、自分が自分と分かる。
  • セッションの裏の値(接続方法 / 起動コマンド / 作業ディレクトリ / 開始時刻 / ウィンドウ)が読める。
  • 部屋ソケットのアドレスが読める。
  • 会話面に診断値が混ざっていない。
  • 発言の色が参加者ごとに異なり、名簿の色と一致する。明度と彩度は accent と同じ。
  • ライト / ダークの両方で発言の色が読める。

対象外

宛先の UI 形状。design は削除可能なチップ(Lin ×)と入力欄の @Lin 表示を示しているが、現在の実装は <select> である。機能は等価であり、この issue では扱わない。

関連

Metadata

Metadata

Assignees

Labels

enhancement新機能・改善要望ready本文が実装開始できる形まで収束している状態。ただし更新は継続可能

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions