477481f9d9
* feat(backends): use _platform_quote for Windows cmd.exe compatibility Resolves the 3 skipped E2E tests in test_backends.py that exercised the /skills/... mount path. The path-rewriter was wrapping resolved absolute paths via shlex.quote (POSIX single-quote style); cmd.exe doesn't strip single quotes, so the literal ' characters ended up in the subprocess argv and the python script failed to find its file. Replace the 3 shlex.quote call sites in _resolve_virtual_mount_path with _platform_quote, a thin platform dispatcher: - POSIX: shlex.quote (unchanged) - Windows: _cmd_quote uses cmd.exe-compatible double-quote wrapping and properly escapes embedded " and percent signs Adds: - backends.py: _is_windows, _cmd_quote, _platform_quote (~40 lines) - test_backends.py: 6 TestPlatformQuote unit tests + _split_cmd cross-platform tokenizer helper to replace shlex.split in the 8 sites that tokenize convert_virtual_paths_in_command results (POSIX shlex strips backslashes from bare Windows paths, which broke the 5 TestVirtualMountResolution assertions on Windows) Removes: - 3 @pytest.mark.skipif(sys.platform == "win32") markers on the E2E tests for /skills/... mount resolution Refs #274. * fix: escape % as %% in _cmd_quote instead of relying on double-quoting cmd.exe expands %VAR% before processing quotes, so double-quoting cannot neutralize percent signs. Escape bare % as %% (the cmd.exe idiom for a literal percent) before any other quoting logic. Also updates _cmd_quote docstring and _resolve_virtual_mount_path docstring to reflect the actual quoting strategy. * style: fix ruff format (single → double quotes) * fix: treat % as regular char in _cmd_quote, document limitation %% escaping only collapses in .bat/.cmd files, not via cmd /c. Since virtual-mount paths should never contain % in practice, simpler to leave % alone and document the caveat.