[App/Linux] Review → Committed hangs when project root is opened through a symlink
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.803.81509
What subscription do you have?
ChatGPT Pro
What platform is your computer?
Linux 6.8.0-136-generic x86_64 x86_64
What issue are you seeing?
In Codex Desktop, Review → Committed remains on Loading commits… indefinitely for a Codex-managed worktree when the saved project root uses a symlinked path while Git resolves the shared repository metadata through the canonical path. Local Git commands, including git log, work normally.
The desktop log repeats this every five seconds (paths anonymized):
[git-init-watcher] Failed to watch workspace root for git init
cwd=/home/user/.codex/worktrees/abcd/repo/../../../../home/user/projects/repo
errorCode=ENOENT
errorMessage="ENOENT: no such file or directory, watch '/home/user/.codex/worktrees/abcd/repo/../../../../home/user/projects/repo'"
That constructed path normalizes to the nonexistent /home/user/home/user/projects/repo.
What steps can reproduce the bug?
- Put a Git repository on another filesystem or mount:
mkdir -p /mnt/storage/user/projects git clone <any-repository> /mnt/storage/user/projects/repo ln -s /mnt/storage/user/projects /home/user/projects - Add the project to Codex Desktop using the symlinked path
/home/user/projects/repo. - Start a task using a Codex-managed worktree.
- Create at least one commit in that worktree.
- Open Review, select Committed, and observe that its submenu stays at
Loading commits…. - Inspect the desktop logs and observe the repeated
git-init-watcherENOENT above.
In the managed worktree, the relationship looks like:
worktree: /home/user/.codex/worktrees/abcd/repo
saved project: /home/user/projects/repo
real project: /mnt/storage/user/projects/repo
git common dir: /mnt/storage/user/projects/repo/.git
Workaround: Change the saved project root to the canonical /mnt/storage/user/projects/repo path and restart Codex Desktop. The Committed menu then loads normally and the watcher error stops.
What is the expected behavior?
Codex Desktop should treat the symlinked project path and its canonical path as the same Git repository. Review → Committed should load the commit list, and repository discovery should not construct or repeatedly watch an invalid path.
At minimum, the project root should be canonicalized before deriving paths relative to the managed worktree, or an absolute saved root should not be appended as a relative path.
Additional information
- Git:
git version 2.34.1 - Local Git access worked throughout; this was not a GitHub CLI or sandbox-permission failure.
- The canonical-path workaround fixing both the UI and log loop suggests a project-path normalization mismatch.
- Possibly related: #15448 (symlink/canonical workspace identity mismatch) and #32695 (permanent
git-init-watcherfailure retried every five seconds).
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
Start at the git-init-watcher and Review → Committed repository-discovery paths, then reproduce the issue with a symlinked project root and a Codex-managed worktree. Trace how the saved project and canonical Git paths are combined; done means the committed list loads and the watcher no longer retries an invalid path.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- git, rust
- Domain
- desktop
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 58/100