観測
2026-08-22 のセッションで、Master が部屋でのやり取りを引用しようとして、履歴が存在しないことが判明した。部屋の発言はウィンドウの DOM にしか無く、閉じれば消える。
引用できないことは症状のひとつに過ぎない。#47 のような「実際に何が起きたか」を根拠にする設計判断が、参加者の記憶と Master の記憶だけを頼りにしている。
前提
保存の土台は既にあり、使われていない
src-tauri/src/config.rs に save_sessions / load_sessions コマンドと TabSessions / SessionData / SavedChatMessage 型が存在する。フロントエンドからの参照はゼロ(*.ts 全体で該当なし)。
土台の形が現在のモデルと合っていない
そのまま配線すると、#39 で外した人間 / AI の非対称が保存層から戻ってくる。
design は既に答えを持っている
design/Vision.dc.html の部屋情報に ログ logs\main.jsonl がある。部屋単位、追記形式。
制約
未決
- 起動時に過去ログを画面へ読み戻すか、それとも書き出し専用にして参照は別手段(ファイルを開く)とするか。
- 保持期間と上限。無制限に伸ばすか、日付で分けるか。
- 部屋が複数になったとき(Vision のルーム一覧)のファイル分割。今決める必要は無いが、ファイル名の形が先に固まると後で効く。
関連
観測
2026-08-22 のセッションで、Master が部屋でのやり取りを引用しようとして、履歴が存在しないことが判明した。部屋の発言はウィンドウの DOM にしか無く、閉じれば消える。
引用できないことは症状のひとつに過ぎない。#47 のような「実際に何が起きたか」を根拠にする設計判断が、参加者の記憶と Master の記憶だけを頼りにしている。
前提
保存の土台は既にあり、使われていない
src-tauri/src/config.rsにsave_sessions/load_sessionsコマンドとTabSessions/SessionData/SavedChatMessage型が存在する。フロントエンドからの参照はゼロ(*.ts全体で該当なし)。土台の形が現在のモデルと合っていない
SavedChatMessageはroleとcontent_typeを持つ。チャットアシスタントの語彙であり、feat(room): one post frame, so a participant is a participant #39 の参加者モデルにはroleに当たる軸が無い。発言者は名前で、種別は持たない。TabSessionsはタブ単位。掲示板ではログは部屋のものであってタブのものではない。タブは起動の設定であり、会話の器ではない。そのまま配線すると、#39 で外した人間 / AI の非対称が保存層から戻ってくる。
design は既に答えを持っている
design/Vision.dc.htmlの部屋情報にログ logs\main.jsonlがある。部屋単位、追記形式。制約
TabSessions系はこのモデルに合わないため、流用ではなく作り直す。message_id/speaker/content/to/ts。参加者クラスを値域に取る欄を作らない(feat(room): one post frame, so a participant is a participant #39)。src-tauri/src/room.rsの「a later joiner simply missed it」という現在の扱いを変えない。変えると、部屋が「誰が何を聞いたか」を持ち始める(feat(room): give utterances an addressee so agents can stay silent #31 / feat(room): one post frame, so a participant is a participant #39 で退けた形)。rules/task/task.mdの「エージェント間の対話を GitHub へ流さない」に当たる。未決
関連
ログがある。