The windows-latest leg caught these on its first run — all three are the tests
assuming POSIX, not the code under test.
- The `/@fs/` case built its input as `/@fs` + an absolute path, which only
produces a separator when that path opens with one. On Windows it yielded
`/@fsC:\Users\…`, a URL Vite would never serve. Vite writes the path in URL
form after `/@fs/`: forward slashes, no leading slash of its own.
- The filesystem-root case passed a bare `sep`, which on Windows resolves
against the *current* drive. CI checks out on D: while the temp directory
lives on C:, so the root and the file under test were genuinely unrelated and
the guard was right to deny. `parse(root).root` names the root that actually
contains it.
- The symlinked-root case used Node's default link type, which is "file" and
does not work for a directory on Windows. A junction does, and unlike a real
directory symlink it needs neither elevation nor Developer Mode.