[Codex Desktop] Local text-selection → side chat fails for Git repositories with no remotes
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.4k
- PR merge metrics
- PR metrics pending
Description
What version of the Codex App are you using (From “About Codex” dialog)?
26.825.51511 (build 7377); app-server 0.151.0-alpha.7.2
What subscription do you have?
ChatGPT subscription (exact plan not surfaced in Codex Desktop)
What platform is your computer?
macOS 26.5.2 (25F84), Darwin 25.5.0 arm64
What issue are you seeing?
A valid local-only Git repository with no configured remotes cannot use the text-selection Ask in side chat / Send to side chat action.
The UI presents this as a side-panel conversation action, but the submit path switches to cloud mode and attempts to compute a remote-based diff. The Desktop logs show the following sanitized chain:
No matching origin found
method=gitDiffToRemote
errorCode=-32600
failed to compute git diff to remote for cwd: "<local-repo>"
[Composer] submit failed cwd=<worktree> followUp=local mode=cloud
For the affected repository:
git remote
exit code: 0
stdout: <empty>
stderr: <empty>
refs/remotes/*: <empty>
branch upstream: <none>
Because there is no SHA that also exists on a remote, gitDiffToRemote returns no result. The app-server maps that to JSON-RPC -32600, and cloud chat creation is aborted. In this path, the implementation does not reach the actual git diff command.
A repository with no remote is a valid Git configuration. Users should not have to create or publish a remote repository merely to ask a question about selected text.
What steps can reproduce the bug?
-
Create or open a local Git repository that has at least one commit and has never had a remote configured.
-
Verify that
git remoteexits 0 with no output. -
Open that folder as a local task in Codex Desktop.
-
Select text in the local task and choose Ask in side chat or Send to side chat.
-
Observe that the cloud conversation is not created and the app reports:
failed to compute git diff to remote
The same result occurs from a linked worktree because all worktrees share the repository's empty remote configuration.
What is the expected behavior?
The action should not fail merely because the repository has no remote.
Any of these would be acceptable:
- Keep the side conversation local.
- Clearly disclose that the action creates a cloud conversation, then send only the selected text when no remote diff is available.
- Fall back to a local baseline or omit the Git diff.
- Show a non-blocking warning that repository changes were not attached.
The UI should also distinguish a local side panel from a local-to-cloud handoff before submission.
Additional information
Environment:
- Codex App:
26.825.51511(build7377) - app-server / bundled CLI:
0.151.0-alpha.7.2 - macOS
26.5.2(build25F84), Apple Silicon
The repository and worktree were otherwise healthy: HEAD resolved, local branches resolved, and local comparisons succeeded. Only remote discovery/baseline resolution was unavailable.
This is related to, but distinct from:
- #35079 — local text selection silently creates a cloud Chat conversation
- #37716 —
gitDiffToRemoteis consumed by cloud-task flows and has edge-case failures - #31534 — Codex Desktop's remote diff behavior depends on local remote-tracking refs
The specific missing case here is graceful behavior for a valid repository with zero configured remotes. No project files or private repository contents are needed to reproduce it.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the flow with a committed local repository that has no remotes, then trace the Composer submit path through gitDiffToRemote and the app-server error handling. Determine how the side-chat action should behave when no remote diff is available; done means the action no longer aborts solely because remote discovery returns no result, with the selected text still handled according to the chosen product behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- git, rust
- Domain
- desktop, devtools
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 56/100