aaif-goose / aaif-goose/goose

Define safe Git branch switching for executable repository filters

オープン
#11,706 コメント 0 件 リアクション 0 件 担当者 1 名 @jbg に割り当て済み GitHub で見る
主要言語
Rust
スター
54.2k
フォーク
6.2k
平均マージ
3日 2時間
マージ済み PR(30日)
262

説明

**What problem would this solve?**

The desktop app switches branches by invoking `git checkout` inside the selected repository. Git may execute repository-local hooks and configured smudge/process filters while materializing the branch, so a navigation action can run native commands that are not visible in the Goose UI.

**What would a good outcome look like?**

Branch switching has an explicit repository-trust model and does not unexpectedly execute untrusted native commands. Legitimate Git LFS and custom-filter users have clear, intentional behavior rather than silent breakage.

**Possible approaches**

- Run checkout with hooks disabled and an isolated configuration that suppresses executable filters.
- Detect executable hooks or filters and require an explicit repository-trust confirmation before switching.
- Limit the built-in switcher to repositories whose materialization does not require native filter commands, with a clear fallback to an external Git client.

The design should separately cover post-checkout hooks, smudge/process filters, Git LFS, local versus global configuration, and existing trusted repositories.

**Additional context**

- [x] I have verified this does not duplicate an existing feature request

Do not begin implementation until the issue reaches **Ready** on the [Goose Issues board](https://github.com/orgs/aaif-goose/projects/1).

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。