目的
design/Main.dc.html が示す右側の参加者パネルを出す。あわせて発言の色分けを design どおり参加者ごとの色相へ揃える。今日の詰まりを Master が自力で読める面にする。
前提
design/canvas.json の next-diff 付箋は、実装済みからの差分を 2 つと記している。
右の参加者パネル — 裏の値(PTY / cwd / ポート / 起動コマンド)はすべて既にあり、出すだけ
宛先(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.json の roadmap 付箋: 「参加者ごとの色は accent と同じ彩度・明度で色相だけ変えています」。
design/Main.dc.html の実値がその通りになっている。
accent = #3a6ea5(src/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 では扱わない。
関連
目的
design/Main.dc.htmlが示す右側の参加者パネルを出す。あわせて発言の色分けを design どおり参加者ごとの色相へ揃える。今日の詰まりを Master が自力で読める面にする。前提
design/canvas.jsonのnext-diff付箋は、実装済みからの差分を 2 つと記している。2 は #31 で入り、#39 で投稿モデルへ載せ替えた。1 は未実装で、issue も無い。この issue がそれである。
出す値は既にある
design/Main.dc.htmlのパネルが並べる項目と、現在の供給元。マスター(あなた)を含む)room_participants/room-participants(#39 で人間も着席済み)room_portTabConfig.commandTabConfig.cwdterminal.cols×terminal.rows開始時刻のみ新規に保持が要る。他は取得済みの値を並べるだけである。
色分けの軸が design とずれている
design/canvas.jsonのroadmap付箋: 「参加者ごとの色は accent と同じ彩度・明度で色相だけ変えています」。design/Main.dc.htmlの実値がその通りになっている。#3a6ea5(src/styles.cssの--accent)。oklch でおよそL 0.52 / C 0.09 / H 255oklch(0.52 0.09 155)。明度と彩度は同じ、色相のみ差し替え現在の実装は #39 で
[data-kind="human"](人間 / AI)を[data-own="true"](自分 / 他人)へ移している。人間 / AI の軸を外した点は #39 の目的どおりだが、外した後に入れる軸は design が既に答えており、そちらのほうが掲示板として筋が通る。自分 / 他人は二値であり、Lin と Lay が同じ色になる。参加者ごとの色相なら、名簿の色と発言の色が一致し、誰の発言かを色で追える。パネルの参加者一覧も同じ色を使うため、揃えるならこの issue の中で行う。
現在の診断面との関係
現在の診断面(
#diagnostics)は部屋ソケットとセッション状態と端末を畳んで持つ。design はこれを右下へ同居させ、会話面には置かない形にしている。パネルはその上に座る。制約
room-participants)を唯一の出所とする。画面側で別に持たない。src/styles.cssの実値を使う。design 側が実装トークンを写している側であり、逆ではない。src/styles.cssは--accentをダーク時に#7aa7d8へ差し替えている)。data-ownが担っていた役割の行き先を決める(名簿の(あなた)表記に寄せる、枠線の太さで分ける、等。手段は実装側の判断とする)。対象ファイル
index.html,src/main.ts,src/styles.csssrc-tauri/src/session.rs— 開始時刻の保持docs/0-requirements.md完了条件
対象外
宛先の UI 形状。design は削除可能なチップ(
Lin ×)と入力欄の@Lin表示を示しているが、現在の実装は<select>である。機能は等価であり、この issue では扱わない。関連
docs/0-requirements.mdの「UI の方向」節から design にリンクがある。