Keep nonexistent solution selections from watching unrelated parent directories
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 58/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- typescript
- Domain
- backend
Research direction
Start by locating the native watcher registration and the root-resolution helper; the issue names no source files, but it describes the failing regression as missing_selected_solution_does_not_watch_or_refresh_for_its_unrelated_parent. Trace watcher registration for a nonexistent selected solution and keep root resolution available for project filters and atomic saves. Done means the regression passes and existing directories, projects, and solutions remain monitored.
Written by the indexing model from the issue text.
Description
Selecting a nonexistent solution starts a recursive native watcher on its parent directory. This broadens the selected diagnostic scope and can fail the selection because of unrelated permission errors.
The full Linux run reproduces the permission failure when sharplsp/loadSolution selects absent /tmp/test.sln: watcher registration traverses /tmp and reaches a protected systemd-private directory. This is separate from the earlier invalid temporary-filesystem/socket setup; it still fails with a native Linux temporary directory.
A deterministic real native Windows regression also reproduces the scope bug without changing permissions:
- Create and restore a real F# project and initialize a modern diagnostic client with both semantic engines disabled.
- Select an absent
DoesNotExist.slnbeside the project and confirm the existing asynchronous success acknowledgement. - Drain earlier notifications, edit a genuine F# source and independently compile it with the actual SDK to confirm FS0001.
- Observe an unexpected
workspace/diagnostic/refreshfrom the unrelated parent directory.
Expected: nonexistent selected targets do not register native watchers on their parents. Existing directories, projects and solutions continue to be monitored. The pure root-resolution helper must still support project-filter resolution and atomic saves; target existence should only gate watcher registration.
Regression: missing_selected_solution_does_not_watch_or_refresh_for_its_unrelated_parent fails specifically on the unrelated diagnostic refresh, after its real project and compiler-oracle assertions pass.
- Dominant language
- TypeScript
- Stars
- 168
- Forks
- 9
- Avg merge
- 2h 51m
- Merged PRs (30d)
- 59
Getting set up
Starts the project's dev container in your browser, under your own GitHub account.
- No Dockerfile or Docker Compose file
- Has a pull request template
- No contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Nimblesite/SharpLsp
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Nimblesite/SharpLsp#468 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Nimblesite/SharpLsp#461 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
Nimblesite/SharpLsp#447 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Nimblesite/SharpLsp#444 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Nimblesite/SharpLsp#442 ·
Maintainers usually reply within 1 day
All issues in Nimblesite/SharpLsp
Similar issues
-
[Bug]: Device screenshot fails with 500 on iPhone Duo (Xcode 27.2): serve-sim calls simctl without --displayPossibly taken A pull request linked to this issue is open or already merged. Open
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
pingdotgg/t3code#24900 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
inu-appcenter/UNIDorm-web#411 ·
Maintainers usually reply within 1 day
-
🐛 bug
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Maintainers usually reply within 2 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
ranxianglei/billion-context#4720 ·
Maintainers usually reply within 1 day
-
area:arcade game p3-medium ready-for-agent type:bug
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
fderuiter/deruiter.dev#2840 ·
Maintainers usually reply within 1 day