gitpp 0.7.5

Git Personal Parallel Manager — manage 100+ Git repos with one command
# gitpp ロードマップ

最終更新: 2026-04-24

## リブート方針

gitp.sh の原型に立ち返り、Rust 版をシンプルに再構築する。
機能を足すのではなく削ぎ落とす。

crate 名・リポ名・バイナリ名はすべて **`gitpp`** に統一済み。

## 完了済み

### Phase 1: コード修正(2026-04-02 セッション120)

- [x] `config` / `config user` コマンド削除
- [x] `serial` オプション削除
- [x] macOS 判定修正("unknown OS" → UTF-8 統合)
- [x] デバッグ println 削除
- [x] YAML パースエラー修正(空設定でエラー終了)
- [x] `git_status()` / `git_config_raw()` 削除
- [x] 設定ファイル名 `gitp_setting.yaml``gitpp.yaml`
- [x] リポ名・フォルダ名 `gitp``gitpp`
- [x] GitHub リポ名 `kako-jun/gitp``kako-jun/gitpp`
- [x] 並列度制限追加(セマフォ、`-j N` / `--jobs N`、YAML `jobs: 20`
### Phase 2: TUI 改修(2026-04-02 セッション120)

- [x] 縦スクロール(100+ リポ対応、タイトルに `[1-20/101]` 表示)
- [x] 右ペイン詳細表示(Enter で git 出力をリアルタイム表示)
- [x] キー操作(j/k/↑/↓ スクロール、g/G 先頭/末尾、Enter 詳細、Esc 閉じる)
- [x] 選択カーソル(▸ 表示、反転スタイル)
- [x] TUI 終了後サマリー(失敗リポの出力を stdout に表示)
- [x] 完了後ブラウズモード(自動終了前にキー操作で結果を確認可能)

### Phase 3: 動作確認(完了)

- [x] gitp.sh と並行して pull を実行し、結果を比較
- [x] 101 リポジトリ全体で動作確認

### Phase 4: 移行(完了)

- [x] `cargo install` で配布テスト
- [x] gitp.sh 廃止
- [x] crates.io 公開(`gitpp`
### Phase 5: サブコマンド追加(v0.6.0〜v0.6.4、完了)

- [x] status(st), diff(di), fetch(fe), branch(br), switch(sw), stash list(sl), gc サブコマンド追加
- [x] TUI 6状態表示: Updated(✓)/Unchanged(─)/Failed(✗)/Running(▶)/Waiting(⏸)/Untracked(?)
- [x] フッタ: Total/Done(Updated/Unchanged/Failed/Untracked)
- [x] キー操作追加: n/N エラージャンプ、y クリップボードコピー、g/G 先頭/末尾
- [x] Esc 段階終了、auto-exit ヒント
- [x] pre-commit hook リトライ
- [x] --version/-V フラグ
- [x] Cargo.lock git 管理

現在のバージョン: **v0.7.5**

### Phase 6: Untracked検出(v0.7.0、完了)

- [x] YAML未定義リポジトリをUntrackedとして常時表示(#20)
- [x] 隠しディレクトリ(.で始まる)をスキャン対象から除外
- [x] detect_untracked_repos のユニットテスト追加(7件)

### Phase 7: TUI終了時の端末クリーンアップ(v0.7.5、完了)

- [x] 終了前後で pending event を drain し、シェルプロンプトへの漏れを抑制
- [x] 失敗サマリーを plain text 化(ANSI / OSC 制御シーケンスを除去)
- [x] terminal mouse capture 自体を廃止(未使用機能のため、SGR mouse-report 漏れの根本経路を遮断)

## 残タスク

### 将来検討

- gitp_config.yaml → gitpp.yaml の変換スクリプト(Bash版ユーザー向け)