beyondcode / beyondcode/polyscope-community

[Bug]: Could not read from remote repository

Aperta
#32 1 commento 1 reazione 0 assegnatari Vedi su GitHub
Lingua principale
Nessun dato sulla lingua
Stelle
20
Fork
0
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

### 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`.)

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Direzione di ricerca

Inizia tracciando il sottoprocesso git utilizzato da worktree.create per `git fetch origin "main"`, quindi confronta la relativa directory di lavoro e l'ambiente con quelli del terminale dell'utente. Riproduci il problema con una configurazione GitHub multi-account utilizzando `includeIf` e `core.sshCommand`; il lavoro è completato quando il repository che richiede la chiave SSH selezionata viene recuperato correttamente tramite Polyscope.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
git, github
Ambito
devtools
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
42/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.