Description
Summary
The review sidebar's file tree omits every symlink entry, so symlinked directories are invisible in the tree even though they exist on disk and in the terminal. The tree is populated from GET /api/fs/list, which returns only real entries: symlinks to directories, symlinks to files, and broken symlinks are all absent.
Environment
- opencode version: 2.0.25
- OS: Linux x86_64
- Terminal: xterm-256color (desktop app connected to a remote server)
- Shell: /bin/bash
- Install/channel: release binary, server started as
opencode serve --service
- Active plugins: none
Reproduction
- Create a scratch directory containing:
realdir/ (real directory)
realfile.txt (real file)
linkdir -> realdir (symlink to directory)
linkfile -> realfile.txt (symlink to file)
broken -> /nonexistent (broken symlink)
- Query the listing API for that directory:
opencode api get '/api/fs/list?path=<scratch-dir>'
- Inspect the returned
data array, or open the sidebar file tree at that directory.
Expected Behavior
Symlink entries should be listed like other entries; at minimum symlinks that resolve to directories should appear as directories and be browsable, matching a normal file explorer. External targets can remain behind the existing permission flow if desired.
Actual Behavior
Only realdir/ and realfile.txt are returned. linkdir, linkfile, and broken are all missing, so no symlink of any kind can appear in the sidebar file tree. Reproduces consistently (100%).
Additional Context
Plugins
No response
OpenCode version
No response
Steps to reproduce
No response
Screenshot and/or share link
No response
Operating System
No response
Terminal
No response
Description
Summary
The review sidebar's file tree omits every symlink entry, so symlinked directories are invisible in the tree even though they exist on disk and in the terminal. The tree is populated from
GET /api/fs/list, which returns only real entries: symlinks to directories, symlinks to files, and broken symlinks are all absent.Environment
opencode serve --serviceReproduction
realdir/(real directory)realfile.txt(real file)linkdir->realdir(symlink to directory)linkfile->realfile.txt(symlink to file)broken->/nonexistent(broken symlink)opencode api get '/api/fs/list?path=<scratch-dir>'dataarray, or open the sidebar file tree at that directory.Expected Behavior
Symlink entries should be listed like other entries; at minimum symlinks that resolve to directories should appear as directories and be browsable, matching a normal file explorer. External targets can remain behind the existing permission flow if desired.
Actual Behavior
Only
realdir/andrealfile.txtare returned.linkdir,linkfile, andbrokenare all missing, so no symlink of any kind can appear in the sidebar file tree. Reproduces consistently (100%).Additional Context
readDirectoryEntriesclassifies symlinks, and downstream filters drop non-directory entries. Opening a new issue per the auto-close notice on fix: symlink/junction directories invisible in directory picker and @file #28526.file.listclient call to/api/fs/list; anything filtered server-side is invisible in the UI.Plugins
No response
OpenCode version
No response
Steps to reproduce
No response
Screenshot and/or share link
No response
Operating System
No response
Terminal
No response