Skip to content

feat: org ディレクトリの複数リポジトリを横断して扱う WorkPane#30

Merged
sasagar merged 1 commit into
devfrom
feature/multi-repo-workpane
Jul 1, 2026
Merged

feat: org ディレクトリの複数リポジトリを横断して扱う WorkPane#30
sasagar merged 1 commit into
devfrom
feature/multi-repo-workpane

Conversation

@sasagar

@sasagar sasagar commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

概要

「org ディレクトリでエージェントを実行しても、リポジトリを上手く扱うビュー」の中核。作業ディレクトリが単一リポジトリでない(複数リポを含む org ディレクトリ)場合に、配下の git リポジトリを検出し、変更ファイル・Diff・履歴を横断して扱えるようにした。

内容

  • GitEngine.discoverRepos(under:): .git を持つ子孫を列挙(リポジトリの中へは降りない、最大3段)。作業ディレクトリ自身がリポならそれ1つ。
  • WorkPaneModel を複数リポ対応:
    • 変更ファイルをリポジトリごとに集計。複数リポ時は repoName をトップ階層にしてツリー表示(repoA/ repoB/ …)。件数は全リポ合計。
    • Diff/全文は各ファイルの repoRoot 基準で取得。
    • 履歴/ブランチは対象リポジトリを選択(履歴ペインにリポジトリセレクタ)。
    • 単一リポは従来どおり(プレフィックスなし)。
  • 単一 worktree セッションは挙動不変。

確認(実機)

  • /tmp/test-org(repoA・repoB を含む非リポ)をセッションにすると、変更ファイルが repoA / repoB セクションに分かれ、「4 変更」集計、履歴ペインにリポセレクタ(repoA 選択で repoA の履歴)が出ることを確認(スクショ)。
  • swift test に discoverRepos の単体テストを追加、緑。xcodebuild 成功。

補足(follow-up)

  • 「org を開くと配下リポを列挙してリポジトリごとに個別セッション化」する変種(Part A の別解釈)は未実装。現状は「org を1セッションで開くと横断表示」でカバー。必要なら追加。

作業ディレクトリがリポジトリでない(org ディレクトリ等)場合、配下の git
リポジトリを検出し、変更ファイル/Diff/履歴を横断して扱えるようにした。
- GitEngine.discoverRepos(under:) を追加(.git を持つ子孫を列挙、リポには降りない)
- WorkPaneModel を複数リポ対応に: 変更ファイルをリポジトリごとに集計(複数時は
  repoName をトップ階層にしてツリー表示)、Diff/全文は各ファイルの repoRoot 基準、
  履歴/ブランチは対象リポジトリを選択(履歴ペインにリポジトリセレクタ)
- 単一リポは従来どおりの表示
- discoverRepos の単体テストを追加
Refs #(org ディレクトリ対応の中核 B)
@sasagar sasagar marked this pull request as ready for review July 1, 2026 15:47
@sasagar sasagar merged commit 8c53c6d into dev Jul 1, 2026
1 check passed
@sasagar sasagar deleted the feature/multi-repo-workpane branch July 1, 2026 15:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant