Replies: 1 comment
|
Scope note: if the Finder alias half feels out of scope, the symlink half alone is a much smaller, cross-platform bug fix (~+65 / −4 across 5–6 files, no |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Before submitting
Area
apps/server
Problem or use case
Typing a path in the add-project autocomplete (e.g. ~/) hides two kinds of valid directory targets:
/opt/homebrew shortcuts).
Root cause in apps/server/src/workspace/Layers/WorkspaceEntries.ts → browse(): it filters dirents on dirent.isDirectory(), but readdir uses lstat
semantics so symlinks are excluded, and Finder aliases are plain files that no fs call can follow.
Proposed solution
using Finder's original item of ….
resolved target).
existing "append clicked name" navigation so ~/ style paths are preserved. For aliases, jump directly to the resolved fullPath — appending the
alias name would point at a non-directory and readdir would fail.
Scope stays inside the interactive browse() path. The recursive workspace indexer in the same file is left alone to avoid cycles.
Why this matters
Common developer shortcuts are silently invisible, forcing users to paste resolved paths or fall back to the native picker — which defeats the
typed-path autocomplete's purpose. Electron's native folder dialog already handles both cases transparently, so the current gap is an
inconsistency, not a design choice.
Smallest useful scope
Just the symlink fix: detect symlinks, stat() them, include if the target is a directory. Single-function change, no contract change. Covers the
Dropbox and dotfiles cases. Finder alias support + contract additions + icon + alias navigation can ship as a follow-up.
Alternatives considered
the alias file itself isn't a directory.
Risks or tradeoffs
failure entries drop silently.
Examples or references
in the add-project picker — Dropbox is missing.
picker — the alias is missing.
Contribution
All reactions