From b012a43d422cfed526d1f12de89974e8ca1a9203 Mon Sep 17 00:00:00 2001 From: Claude Lin & Lay Date: Thu, 27 Aug 2026 17:57:16 +0900 Subject: [PATCH 1/3] feat(room): keep the room log and read it back as history MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 部屋の発言はウィンドウの DOM にしか無く、閉じれば消えていた。引用できない ことは症状のひとつに過ぎない——「実際に何が起きたか」を根拠にする設計判断 が、参加者の記憶と Master の記憶だけを頼りにしていた。 言われたことを追記のみの jsonl に残し、過去のやり取りは会話面の左の列で読 む。部屋の本文には復元しない——閉じれば部屋の中身は消えるという現在の振る 舞いは変えない。変えたのは、消えた先に読みに行ける場所があるかどうかだけで ある。 - ログの新規モジュール(`src-tauri/src/room_log.rs`): `logs/main.jsonl` への追記と読み出し。`config.rs` の `SavedChatMessage` / `SessionData` / `TabSessions` は流用しない。前者は `role` と `content_type` を持つチャッ トアシスタントの語彙であり部屋には当たる軸が無く(#39)、後者の鍵はタブ であって会話の器ではない。どちらを配線しても #39 が外した非対称が保存層 から戻る。載せるのは五欄(`message_id` / `speaker` / `content` / `to` / `ts`)で、`own` は見る側の属性であるため、`hue` は読み戻す頃に宣言した席 が無いため、どちらも持ち込まない。 - 部屋(`src-tauri/src/room.rs`): `deliver` が床を判定した一回の取得の内 側で追記する。ロックを離してから書くと、床が既に順序を付けた二人が逆順で ディスクへ届きうるため、一つの会話に二つの順序が生まれる。受理されたもの だけを書く——拒否された発言は部屋に無く、記録すべき出来事も無い。 - 追記の失敗で発言は失われない。発言はディスクに触れる前に部屋へ入っており、 書き込みの失敗が取り消せるものではない。失われうるのは記録の側だけである から、配送も戻り値も追記の成否に依存させず、`room-log-error` で画面の状況 行に出す。黙って記録を止めたログは依然としてログに見え、後から見に行った 者はその空白を「何も言われなかった」と読む。 - 履歴(`index.html` / `src/styles.css` / `src/main.ts`): 会話面の左の `