Skip to content

feat: v1.7 マルチリポジトリ・自動化#25

Merged
HMasataka merged 9 commits intomainfrom
feat/v1.7-multi-repo-auto
Mar 7, 2026
Merged

feat: v1.7 マルチリポジトリ・自動化#25
HMasataka merged 9 commits intomainfrom
feat/v1.7-multi-repo-auto

Conversation

@HMasataka
Copy link
Owner

Summary

  • タブで複数リポジトリを同時に開けるマルチリポジトリ対応を追加
  • バックグラウンド自動fetchと新着コミット検知を追加
  • tauri-plugin-notificationによるシステム通知機能を追加

主な変更

バックエンド

  • AppStateHashMap<TabId, RepoContext>ベースのマルチタブ管理に変更
  • with_repoヘルパーで全コマンドを統一パターンに移行(20+コマンドにtab_id追加)
  • auto_fetch.rsでバックグラウンド定期fetch(git CLIでロック外実行)
  • tauri-plugin-notificationを統合
  • 未使用のPR生成コード(ai/pr.rs)を削除

フロントエンド

  • tabStore(Zustand)でタブ状態管理、getActiveTabId()ヘルパーを一元化
  • 全19サービス・全ストアにtabIdパラメータを追加
  • デザインモック準拠のTitlebarタブUI(ドラッグ&ドロップ、タブ追加/閉じる)
  • useSystemNotificationフックでアプリ非アクティブ時のシステム通知
  • リポジトリを新規タブで開くように修正(Open/Clone/Init)

テスト

  • フロントエンド: 407テスト全パス
  • Rust: 239テスト全パス
  • clippy/biome: 警告なし

Test plan

  • 複数リポジトリをタブで同時に開けることを確認
  • タブ切り替えでファイル一覧・ブランチ等が正しく更新されることを確認
  • タブのドラッグ&ドロップで並び替えできることを確認
  • 「+」ボタンから新しいリポジトリを新規タブで開けることを確認
  • 自動fetchが設定間隔で実行されることを確認
  • アプリ非アクティブ時にシステム通知が表示されることを確認

🤖 Generated with Claude Code

HMasataka and others added 9 commits March 7, 2026 16:36
単一リポジトリ前提のMutex<Option<Box<dyn GitBackend>>>から
HashMap<TabId, RepoContext>ベースのマルチタブ管理に移行。
with_repoヘルパー・タブ管理コマンド・watcherのタブ対応を追加。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
with_repoヘルパー経由でタブ単位のリポジトリアクセスに統一。
git/branch/remote/history/stash/tag/conflict/rebase等の全コマンドを対応。
lib.rsに新コマンド登録とAppState初期化を更新。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
auto_fetch.rsで定期的にgit fetch CLIを実行しauto-fetch:updatedイベントをemit。
Mutex保持中のネットワークI/Oを回避するためgit CLIでロック外実行。
tauri-plugin-notificationを依存追加。未使用のPR生成コードを削除。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
tabStore(Zustand)でタブ状態管理、getActiveTabId()ヘルパーを一元化。
全19サービスファイルにtabIdパラメータを追加。
全ストアがアクティブタブ経由でサービスを呼び出すように変更。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
デザインモックアップ準拠のタブUI(D&D対応、タブ追加/閉じる)をTitlebarに追加。
useSystemNotificationフックでアプリ非アクティブ時のシステム通知を実装。
全ページコンポーネントをgetActiveTabId()経由のtabId対応に更新。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
tabStore.test.ts新規追加(7テスト)。
Rust結合テスト・フロントエンドストア/サービステストを
HashMap<TabId, RepoContext>ベースのマルチタブ構造に対応。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
デザインモック準拠のタブスタイル(.titlebar-tabs, .tab, .tab-add,
.tab-close)をshell.cssに追加。タブ切り替え時にfetchStatusが
呼ばれずファイル一覧が更新されない問題を修正。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
OpenRepositoryPage・CloneDialog・InitDialogがrepoStore経由で
現在のタブに上書きしていたのを、tabStore.openTab/cloneInNewTab/
initInNewTabで新規タブとして開くように修正。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@HMasataka HMasataka merged commit 7bd740f into main Mar 7, 2026
5 checks passed
@HMasataka HMasataka deleted the feat/v1.7-multi-repo-auto branch March 7, 2026 08:00
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