fix(server): include symlink directories in listings

Fixes https://github.com/NeuralNomadsAI/CodeNomad/issues/106
This commit is contained in:
Shantur Rathore
2026-02-03 15:22:49 +00:00
parent ea4c687125
commit a2127a11ac

View File

@@ -222,20 +222,18 @@ export class FileSystemBrowser {
const results: FileSystemEntry[] = [] const results: FileSystemEntry[] = []
for (const entry of dirents) { for (const entry of dirents) {
if (!options.includeFiles && !entry.isDirectory()) {
continue
}
const absoluteEntryPath = path.join(directory, entry.name) const absoluteEntryPath = path.join(directory, entry.name)
let stats: fs.Stats let stats: fs.Stats
try { try {
// Use fs.statSync (not Dirent.isDirectory) so symlinks to directories
// are treated as directories in directory-only listings.
stats = fs.statSync(absoluteEntryPath) stats = fs.statSync(absoluteEntryPath)
} catch { } catch {
// Skip entries we cannot stat (insufficient permissions, etc.) // Skip entries we cannot stat (insufficient permissions, etc.)
continue continue
} }
const isDirectory = entry.isDirectory() const isDirectory = stats.isDirectory()
if (!options.includeFiles && !isDirectory) { if (!options.includeFiles && !isDirectory) {
continue continue
} }