Skip to content

bug(history): a session-only topic leaves an index entry with no posts file #117

Description

@smileygames

観測

2026-08-27、#115 / #116 を実機で確認中に発見。

セッションを起動すると、その時点でトピックが索引に書かれる。しかし発言が無ければ .jsonl は作られないため、索引にエントリがあって投稿ファイルが存在しないトピックが生まれる。一覧にはタイトルが空の行として並ぶ。

実測(%APPDATA%\org.liplus-project.pullcept\logs\main\):

{
  "topic_id": "2203d6d1-4df7-4d76-ac2b-6f718ad64152",
  "title": "",
  "created_at": "2026-08-27T14:07:17.876Z",
  "sessions": { "2d8f9a1a-…": "fc7c3171-…" }
}

同ディレクトリに 2203d6d1-….jsonl は存在しない。

前提

索引を書くこと自体は必然である

トピックはセッションの器であり(#115 決定3)、{account_id: session_uuid} の置き場は索引しかない。セッション起動時に書かないと、その id を失う。したがって「セッション起動で索引に書く」を単純にやめる形は取れない。

整合を戻す仕組みが片方向しかない

src-tauri/src/room_log.rs のモジュール doc は「実在はディレクトリ側、索引は注釈」と述べ、read_index索引に無い .jsonl を拾う。これは「投稿がファイルに着いたが索引に着く前に落ちた」窓を閉じるためのもので、#115 の遅延生成を安全にしている。

しかし逆向き — ファイルの無い索引エントリ — を戻す経路が無い。拾う側だけがあって、落とす側が無い状態。

結果

「起動してセッションだけ起こし、何も言わずに閉じた」たびに、タイトルが空の行が一つ積まれる。掃除される経路を持たない。#115 の遅延生成が避けようとした「何も話さずに閉じた回が一覧に残る」形が、この経路からだけ復活している。

未決

  • 空タイトルの行をどう扱うか。読み出し時に落とすか、一覧で隠すか、セッション id だけ別の場所に持つか。
  • セッションを起こしただけのトピックは、そもそも一覧に出るべきか。出すなら何と表示するか(現在は空文字)。
  • 既に生まれてしまったエントリの後始末。

関連

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bug動いていない、壊れているforming本文を再構築しながら要求を整えている状態

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions