Is your feature request related to a problem? Please describe.
The XAML workspace resolver and language server each maintain their own case-insensitive Windows path containment/equality logic. Both are currently tested, but duplicated boundary logic raises the risk that junction, separator, or canonicalization behavior diverges later.
Describe the solution you'd like
Extract a small shared path-boundary utility and use it for project discovery, allowed-root validation, and canonical path equality. Preserve the existing junction-resolution and trusted-root security tests.
Additional context
This is non-blocking follow-up from PR #50's final review; no current boundary bypass was found.
Is your feature request related to a problem? Please describe.
The XAML workspace resolver and language server each maintain their own case-insensitive Windows path containment/equality logic. Both are currently tested, but duplicated boundary logic raises the risk that junction, separator, or canonicalization behavior diverges later.
Describe the solution you'd like
Extract a small shared path-boundary utility and use it for project discovery, allowed-root validation, and canonical path equality. Preserve the existing junction-resolution and trusted-root security tests.
Additional context
This is non-blocking follow-up from PR #50's final review; no current boundary bypass was found.