観察
実装ファイルが大型化している:
src/tabs.ts = 821 行 (TabManager + SessionState + 永続化連携が 1 ファイルに同居)
src-tauri/src/stream_parser.rs = 643 行 (NDJSON parser + ANSI strip + channel push detection が同居)
src-tauri/src/pty.rs = 548 行
機能凝集が高いため動作には支障なし、ただし Read / 修正の局所性と将来追加機能の局在化が低下する。
提案
各ファイルを責務別に分割:
tabs.ts: TabManager / SessionState / SessionManager 連携 / 永続化を別 module へ
tabs/tab-manager.ts, tabs/session-state.ts, tabs/persistence.ts 等
stream_parser.rs: NDJSON parser / ANSI strip / channel push detection を分離
stream_parser/ndjson.rs, stream_parser/ansi.rs, stream_parser/channel_push.rs
pty.rs: 機能別に分離 (具体は内容確認後に決定)
関連ファイル
src/tabs.ts
src-tauri/src/stream_parser.rs
src-tauri/src/pty.rs
src-tauri/src/lib.rs (mod 宣言追加)
src/main.ts (import 修正)
優先度
低-中 — 動作影響なし、保守性向上目的。
観察
実装ファイルが大型化している:
src/tabs.ts= 821 行 (TabManager + SessionState + 永続化連携が 1 ファイルに同居)src-tauri/src/stream_parser.rs= 643 行 (NDJSON parser + ANSI strip + channel push detection が同居)src-tauri/src/pty.rs= 548 行機能凝集が高いため動作には支障なし、ただし Read / 修正の局所性と将来追加機能の局在化が低下する。
提案
各ファイルを責務別に分割:
tabs.ts: TabManager / SessionState / SessionManager 連携 / 永続化を別 module へtabs/tab-manager.ts,tabs/session-state.ts,tabs/persistence.ts等stream_parser.rs: NDJSON parser / ANSI strip / channel push detection を分離stream_parser/ndjson.rs,stream_parser/ansi.rs,stream_parser/channel_push.rspty.rs: 機能別に分離 (具体は内容確認後に決定)関連ファイル
src/tabs.tssrc-tauri/src/stream_parser.rssrc-tauri/src/pty.rssrc-tauri/src/lib.rs(mod 宣言追加)src/main.ts(import 修正)優先度
低-中 — 動作影響なし、保守性向上目的。