Skip to content

アプリ設計状況まとめ(2026-08-12 時点) ​

注記: この文書は 2026-08-12 時点のスナップショット。本文の「Zustand + persist」は古く、persist は撤去済み。 現在のオーバーレイ設定の正本と同期は Sync and State を参照。

現時点でのアプリ全体の設計状況・リリース状況・未マージ PR の実装形態を俯瞰するスナップショットドキュメント。

1. リリース状況 ​

項目状態
最新リリースv6.1.0(main の最新タグ)
mainv6.1.0 リリース時点 + develop 統合マージのみ
develop未リリースの変更が約 40 コミット蓄積(次期 6.2 相当)
E2E 運用2026-07-03 より停止中(workflow_dispatch のみ。スクショは手動キャプチャ代替)

リリースは git-flow lite 2 トラック運用(キャラ追加 = chars/* off main で patch / 機能 = develop 集約で minor)。

2. 現行アーキテクチャの骨子 ​

詳細は各設計ドキュメントを参照。ここでは全体像のみ。

  • 3 実行体パッケージング: Manager(管理 GUI)/ Recorder(ログ監視・記録)/ Viewer(BP 表示)の 3 exe 構成。
    • Manager+Recorder 並走時、委譲モード Manager は matches.db を read-only で開く単一 writer 設計(WAL 変換競合対策、PR #227 で確立)。
    • BP ウィンドウの表示権は manager.lock による Manager 優先調整(PR #224、未マージ→ §4)。
  • UID 解決の一元化: main プロセス electron/services/resolveMyUid.ts に統一(PR #219 マージ済み)。renderer 側は resolve-my-uid IPC + useResolvedMyUid フックへ寄せる(PR #225、未マージ→ §4)。localStorage('myUid') は書き手のない死にキー。
  • 状態同期: Zustand + persist + SyncAdapter パターン(Electron IPC / WebSocket / BroadcastChannel / localStorage polling の CompositeAdapter)。→ Sync and State
  • ログ解析: LogParserCore(純粋関数)/ StreamLogParserV2(リアルタイム)/ LogParser(一括)の 3 層。→ Log Parser Engine
  • DB: better-sqlite3。マイグレーション順序規約「新列参照の CREATE INDEX は migrate の後」(6.1.0 の起動不能バグの教訓)。→ Database Design
  • 戦績 API 直叩き: ブラウザレスでの API 直接呼び出し(token ヘッダのみ)。→ Battle Record Direct API
  • テスト基盤: 全 Vitest を Electron ABI(140) ラッパーに一本化。test:related による差分実行。fresh-install smoke ハーネス(yarn test:fresh:{dev,portable,installed,upgrade})を新設(develop、未リリース)。

3. develop に溜まっている未リリースの主な変更(マージ済み) ​

テーマ内容主な PR
初回起動フロー再設計Onboarding にアカウント登録ステップ追加・初回ダイアログの優先度キュー化・ブラウザ自動起動を opt-in 化・ログイン前にプロファイル紐づけ先を選択させ不一致警告#232, #233 ほか(設計書: docs/superpowers/specs/2026-07-29-first-launch-onboarding-flow-design.md)
fresh-install smoke ハーネス実 exe を空 userData で起動し update.log の boot マーカーで判定。legacy スキーマからのアップグレード起動検証も含む#226
DB 初期化競合の解消委譲モード Manager の read-only 化(単一 writer)。read-only 下の書込は isDatabaseReadonly でガード#227
オーバーレイ起動挙動初回起動は非表示で開始・非表示中はタスクバー非表示・画面外座標の補完#229, #230, #234
ブラウザ自動化の競合修正ログインページ遷移の二重トリガ競合・ウィンドウサイズ問題#231
プロファイル機能拡張プロファイルの「メイン」指定(active profile UID)#233
テスト監査無駄テスト削除・弱アサーション強化・デッドスイート復活・モックパス誤り修正#228

4. オープン PR(未マージ)と実装形態 ​

2026-08-12 時点で 6 件。すべて base = develop。

すぐマージ可能(CLEAN) ​

  • #225 fix(uid): renderer 側の UID 解決を main の resolveMyUid に統一(+640/-63)
    • renderer に残っていた localStorage('myUid') 直読み 2 箇所(overlaySlots の RecentResults/MvpCounter、DailySummaryTab)を resolve-my-uid IPC + useResolvedMyUid フック経由に置換。OBS ブラウザソース側(ObsOverlayServer / obsBrowserBridge)にも解決済み UID を配る。#219(main 側統一)の develop 未着分の取り込みを含む。
  • #224 fix(bp): Manager+Viewer 並走時の BP ウィンドウ二重表示を修正(+214/-32)
    • manager.lock(processLock)を導入し、Viewer は存命 Manager を検知したら自前 BP ウィンドウの show のみ抑制する Manager 優先設計。bpAutoVisibility にロック判定を組み込み。再現には委譲トポロジ 3 プロセスが必要で、検証は WS ポート分離で実施済み。
  • #223 fix(obs): オーバーレイ全面背景を透明化(+4/-1)
    • OverlayView ルートに敷かれていたテーマ半透明グラデーション(例: cyberpunk 0.2α)を除去。OBS キャプチャでゲーム画面が薄く色づく問題の解消。1 ファイルの小修正。
  • #217 docs: リファクタリング総合評価 2026-07-11(+214/-0)
    • 7 領域並列調査 + churn 分析による優先度付きリファクタリング実行計画。docs/architecture/refactoring-assessment-2026-07-11.md を追加し VitePress サイドバーに登録。次の改善サイクルの起点ドキュメント。

draft(作業途中 / 引き継ぎ待ち) ​

  • #202 docs: god ファイル/巨大関数分割キャンペーン引き継ぎ書(draft, CLEAN, +236/-0)
    • サンドボックス(Electron 起動不可環境)で進めた分割キャンペーンをローカルで継続するための引き継ぎ書(docs/archive/handover-god-file-split-2026-07.md)。ドキュメントのみでコード変更なし。
  • #201 refactor: PlayerDashboardTab を設定/分析ビューに分割(draft, CONFLICTING, +609/-232)
    • 328 行の render 関数を DashboardSetupView / DashboardAnalysisView の 2 presentational view に分割し、max-lines-per-function(250 行)baseline から除外する tech-debt 返済。develop と競合中のため、マージには git merge develop での競合解消が必要(rebase は運用禁止)。作成が 7/4 と古く、以降の DailySummaryTab 周辺変更(#225 とも同ファイル群)と衝突リスクあり。

マージ順の推奨 ​

  1. #217 / #202(docs のみ、無風)
  2. #223(1 ファイル小修正)
  3. #224 → #225(ともに Electron main / renderer に触るが独立。#225 は DailySummaryTab を触るため #201 より先に入れる)
  4. #201(develop を merge して競合解消後に draft 解除)

5. 進行中・未着手の設計テーマ ​

テーマ状態
recording-service-splitA(#148)・B1(#149) マージ済み。B2〜F が未着手(各フェーズ 1 PR、確認なしで進める運用)
プロファイル別戦績 APIPhase 1(認証基盤・全トークン保存・自動ルーティング)= #209 マージ済み。Phase 2/3(マージ表示拡張ほか)が残
telemetry リモート収集Phase 1/2 マージ済み・D1 作成済み。残: schema 適用 → secret → deploy → constants.ts へ URL/token 反映 PR
god ファイル分割#200 で per-function guard 導入済み。#201 が最初の返済 PR(競合中)。全体計画は #202 の引き継ぎ書と #217 の評価ドキュメント
E2E 再開停止中。再開時は「実装完了の必須要件(E2E + スクショ)」を復活させる

関連ドキュメント ​