Skip to content

bug(session): a session that exits on its own is not observed, so the row stays running and the #127 repair never fires #130

Description

@smileygames

目的

自分で終了したセッションを、アプリが終了したと気づかない。行は「起動中」のまま残り、人が を押すまで動かない。押した時点ではこちらから止めた終了として着くため、#127 の復帰は設計どおり見送られる。

結果として #127 の修理は、それが書かれた当の経路で一度も発火しない。

観測(2026-08-29 14:09〜14:12、main bea76b6 の実機)

#127 の経路を意図的に再現した。トピック「ハロ〜」には 00:41 起動時の死んだ id b384c094-… が残っており、Claude Lay の再開コマンドを claude --resume {session_id} に戻したうえで、そのトピックを開いて起動した。

  1. 再開の線に入った。 状態行「Claude Lay を再開しました。」
  2. CLI が失敗した。 端末に No conversation found with session ID: b384c094-f08b-414a-bc8f-e39454a60f46。索引の id と一致する。
  3. CLI は自分で終了した。 プロセス木を確認したところ、pullcept.exe の子は webview と conhost.exe のみで、CLI は在らず。走っている claude-code は Master 自身のもの(14:08:40 起動、親は Claude Desktop)だけであった。
  4. しかしアプリは気づかない。 約 40 秒観測しても行は「起動中」、セッション: Claude Lay 起動中 のまま。pty-exit に相当する画面側の反応(「〜が終了しました」)が一度も出ない。子を持たない conhost.exe だけが生き残っていた。
  5. で止めると、そこで初めて終了が着いた。 状態行「Claude Lay が終了しました(終了コード不明)。端末を確認してください。」
  6. 索引の記録はそのまま。 sessions: {2d8f9a1a: b384c094} が全工程のあとも残っている。

効いている構造

#127 は「自分で終わったか」を終了コードの有無で判別している。pty.rs が kill されたセッションを reap の前に map から外すため、こちらから止めた終了はコードを伴わずに着く——これは行の ・トピック削除・アプリ終了を除外するための、正しい守りである。

問題は、アプリが自死を観測しないために、自死が人の kill に化けることである。

守りが外れているのではない。守りが正しいまま、入力のほうが化けている。 #127 の条件を緩めても直らない(緩めれば今度は本物の kill で記録を落とす)。直すべきは 4 である。

前提

判断が要る点

target files

  • src-tauri/src/pty.rs
  • src-tauri/src/session.rs
  • src/main.ts
  • docs/0-requirements.md

関連

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