beyondcode / beyondcode/polyscope-community

[Bug]: Could not read from remote repository

Abierto
#32 1 comentario 1 reacción 0 asignados Ver en GitHub
Lenguaje dominante
Sin datos de lenguaje
Estrellas
20
Forks
0
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

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

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.