beyondcode / beyondcode/polyscope-community

[Bug]: Could not read from remote repository

Đang mở
#32 1 bình luận 1 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
Không có dữ liệu ngôn ngữ
Star
20
Fork
0
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

### Platform

macOS

### Operating system version

macOS Tahoe 26.3

### System architecture

ARM64 (M1, M2, etc)

### PolyScope Version

0.7.0

### Bug description

Hello! First, the app looks amazing, the remote feature is exactly what I was looking for coming from Conductor which I use daily. I can't wait to be able to try it out.

When adding a repository from a local path, it fails to fetch the remote. The same `git fetch origin "main"` command works perfectly from my terminal.

**I've since identified the root cause (thus the issue update).** I use two GitHub accounts (personal and work) with `includeIf` directives in `~/.gitconfig` to set `core.sshCommand` per directory, selecting the correct SSH key for each account. Here's the expected flow:

1. Git reads `~/.gitconfig`
2. `includeIf "gitdir/i:~/Code/"` matches → includes `~/Code/.gitconfig`
3. `core.sshCommand = "ssh -o IdentitiesOnly=yes -i ~/.ssh/github-perso"` is set
4. SSH authenticates as the correct account

**What happens in Polyscope:**

1. Polyscope spawns `git fetch origin "main"`
2. `includeIf` is **not evaluated** (likely because Polyscope runs git from a different working directory, or strips/overrides environment variables like `HOME`)
3. No `core.sshCommand` is set
4. SSH falls back to the agent, tries keys in order, and authenticates as my **other** account
5. GitHub returns "Repository not found" (that account can't access this repo)

**Supporting evidence:**

- Repos owned by my work account (whose SSH key happens to be tried first by the agent) **work fine** in Polyscope
- Repos owned by my personal account **consistently fail** with `ERROR: Repository not found`
- From terminal: `ssh -T git@github.com` → work account (default agent order), while `ssh -o IdentitiesOnly=yes -i ~/.ssh/github-perso -T git@github.com` → personal account
- Other tools that shell out to `git` (Conductor, OpenCode) evaluate `includeIf` correctly

**Likely fix:** Ensure the git subprocess inherits the user's full environment (especially `HOME`) and that the working directory is set to the repo path before running `git fetch`, so that `includeIf "gitdir:..."` patterns can match correctly.

My issue is likely related to https://github.com/beyondcode/polyscope-community/issues/17 — both point to the subprocess environment not matching the user's shell environment.

I also have a custom `gh` wrapper script with similar per-account logic. I also use Conductor and the OpenCode GUI which work flawlessly with this setup.

Let me know if I can help debug further. Have a great day!

### Steps to reproduce

* Have a multi-account GitHub setup using `includeIf` + `core.sshCommand` in `~/.gitconfig`
* Open Polyscope
* Click "Choose repository"
* Choose a repository that requires the `includeIf`-resolved SSH key (not the default agent key)
* Wait for it to load
* The error notification appears in the bottom right corner (see screenshot)

Image

### Relevant log output

```shell
[server:err] ERROR: Repository not found.
[server:err] fatal: Could not read from remote repository.
[server:err] [ws] worktree.create error: Command failed: git fetch origin "main"
```

(Full logs available on request — the error repeats on every `worktree.create` attempt. A secondary `Command "sites" is not defined` error also appears on every `repo.add`.)

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.