openai / openai/codex

Codex Desktop file tree shows symlinked files but hides symlinked directories outside the workspace

Open
#40,588 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

app bug
Dominant language
Rust
Stars
125k
Forks
19.4k
PR merge metrics
PR metrics pending

Description

What version of the Codex App are you using?

Codex Desktop 26.818.61809

What subscription do you have?

Unknown

What platform is your computer?

macOS 26.5.2 (25F84), arm64

What issue are you seeing?

The Codex Desktop file tree handles valid symlinks inconsistently based on the target type:

  • A symlink whose target is a regular file outside the opened workspace is shown in the file tree and can be opened, but it has the same visual treatment as a regular file. There is no symlink badge or icon to distinguish it.
  • A symlink whose target is a directory outside the opened workspace is omitted from the file tree entirely.

The directory symlink and its contents remain accessible from the shell and the Codex agent, so this appears to be a file-tree visibility/filtering issue rather than a filesystem access problem.

This is narrower than #18262, which reported that both symlinked files and directories were invisible in Codex Desktop 26.415.21839. In the current version, file symlinks are visible while directory symlinks are not.

A related but different report, #25245, observed that non-dot symlink aliases to directories inside the same workspace could be displayed. The reproduction below uses targets outside the opened workspace.

What steps can reproduce the bug?

Create a workspace containing one symlink to an external file and one symlink to an external directory:

mkdir -p /tmp/codex-symlink-target/linked-dir
mkdir -p /tmp/codex-symlink-workspace
printf 'linked file\n' > /tmp/codex-symlink-target/linked-file.txt
printf 'nested file\n' > /tmp/codex-symlink-target/linked-dir/nested.txt
ln -s /tmp/codex-symlink-target/linked-file.txt /tmp/codex-symlink-workspace/file-link.txt
ln -s /tmp/codex-symlink-target/linked-dir /tmp/codex-symlink-workspace/dir-link

Then:

  1. Open /tmp/codex-symlink-workspace as a workspace in Codex Desktop.
  2. Open the file tree.
  3. Observe that file-link.txt is displayed.
  4. Observe that dir-link is missing.
  5. Confirm in the shell that both links resolve and that dir-link/nested.txt is readable.

The same behavior occurs in a real user configuration directory: regular directories are listed, symlinked skill directories are omitted, while a symlinked JSON file is displayed.

What is the expected behavior?

Both valid symlinked files and valid symlinked directories should be visible in the file tree. Each symlink entry should have a clear badge or icon so it can be distinguished from a regular file or directory. If following external directory symlinks is intentionally restricted, the entry should still be shown with a clear explanation rather than silently omitted.

Additional information

Related issues:

  • #18262 — broader older report where both file and directory symlinks were invisible
  • #25245 — dot-directory filtering; internal non-dot directory aliases were reportedly visible

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the external file and directory symlink cases in Codex Desktop, then trace the file-tree visibility and filtering entry points. The fix is done when both valid symlink types appear, symlinks are distinguishable from regular entries, and the behavior is covered by the relevant checks.

Written by the indexing model from the issue text.

Assessment

Tech stack
macos, rust
Domain
desktop-dev
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
58/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.