fix: include symlinked directories in project discovery listings - #245
Open
ColasNahaboo wants to merge 1 commit into
Open
fix: include symlinked directories in project discovery listings#245ColasNahaboo wants to merge 1 commit into
ColasNahaboo wants to merge 1 commit into
Conversation
ColasNahaboo
force-pushed
the
fix-issue243-symlinks
branch
from
August 16, 2026 20:06
c644224 to
228eaae
Compare
Author
|
rebased the symlink fix onto v2.0.122. |
Dirent.isDirectory() never follows symlinks, so symlinked project folders were invisible in the directory browser, orphaned-workspace scan, workspace listing, and plugin listing. Add a shared isDirectoryEntry helper that follows symlinks via stat() (excluding broken/cyclic links) and use it at all four sites.
ColasNahaboo
force-pushed
the
fix-issue243-symlinks
branch
from
August 18, 2026 14:42
228eaae to
bc3f1b2
Compare
Author
|
Rebased onto upstream |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The bug: Openfox ignores projects that are symlinks to directories #243
The fix: checking that a directory exists does now perform two checks:
AI-Enhanced Development
Cache Impact
Does this PR affect anything cached — system prompts, tool definitions, skills, or other context?
Tests
Tests performed and passed
All automated checks were run against the rebased branch (c644224 = symlink fix on ae26b30 / v2.0.120), clean worktree.
src/server/git/workspace.test.ts — listWorkspaces:
src/server/routes/directories.test.ts — GET /api/directories (real filesystem symlinks via node:fs symlink):
npx vitest run src/server/git/workspace.test.ts src/server/routes/directories.test.ts
Test Files 2 passed (2)
Tests 43 passed (43)
npm run test:unit
Test Files 319 passed | 2 skipped (321)
Tests 4057 passed | 33 skipped (4097)
npm run check # exit 0
Includes: typecheck (server + web + e2e), ESLint, Prettier, and duplicate-code detection (jscpd) — 0 clones.
Not run
Manual test plan (recommended)
Covers the four call sites the fix touches (isDirectoryEntry in src/server/utils/fs.ts:16):
Directory browser (routes/directories.ts): launch the app, browse to a dir containing ln -s linked — the linked folder appears and is navigable; a broken link (ln -s broken) does not appear.
Workspace listing (git/workspace.ts listWorkspaces): a symlinked worktree dir appears in the workspaces panel with its git branch.
Orphaned workspace scan (routes/workspace-config.ts findOrphanedWorkspaces, used at lines 219/224): a symlinked git repo is offered for re-attach.
Plugins listing (routes/plugins.ts): a symlinked plugin dir shows in installed plugins.
Precondition for a manual test: revert to the stock build and confirm symlinked dirs are absent (repro), then run the modified build and confirm they appear.