CommandCodeAI / CommandCodeAI/desktop

[Feedback]: Open projects inside WSL on Windows

未关闭
#79 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

主要语言
Shell
星标
80
派生
2
PR 合并指标
30 天内没有已合并 PR

描述

What problem are you trying to solve?

I open a project that lives inside WSL (Ubuntu 24.04) from Command Code Desktop on Windows. The app opens the \\wsl.localhost\... path fine — reading files, glob, grep, and edits all work over the UNC path. But the agent's shell side runs on Windows, not inside the distro, so the two halves disagree about where the project is and what can run in it.

Environment: Desktop 0.1.31, Windows 11 (build 26200), WSL 2 distro Ubuntu 24.04 (kernel 6.18.33.2-microsoft-standard-WSL2), project opened at \\wsl.localhost\Ubuntu-24.04\home\<user>\projects\<project>.

Three things go wrong.

1. Shell calls start in the wrong directory. Shell commands are spawned as Windows cmd.exe / Windows PowerShell 5.1, not the WSL shell. Every cmd.exe launch cannot enter a UNC path:

CMD.EXE was started with the above path as the current directory.
UNC paths are not supported.  Defaulting to Windows directory.

The harness then discards that fallback cwd (it resolves outside the project), so shell commands do not start in the project at all. There is no way to make cmd.exe use the UNC path as cwd — it is a documented limitation of the tool, not of this app.

2. The project's toolchain does not exist on the Windows side.

tool Windows WSL (Ubuntu 24.04)
php not found PHP 8.4.21
composer not found 2.9.7
node C:\nvm4w\nodejs\node.exe v24.16.0

So every command the project actually depends on — test runner, build, migrations, dev server, git hooks — has to be hand-wrapped as wsl.exe -d Ubuntu-24.04 -- bash -lc '<command>' before it means anything. An agent cannot reliably infer that on its own: it sees Windows-style paths and a UNC root, and has no way to know a Linux path (/home/<user>/projects/<project>) refers to the same tree.

3. The mismatch is silent until something fails. Because file operations work, the project looks correctly opened. The divergence only surfaces later, as a command that reports "not found" for a tool the project obviously uses, or one that quietly runs in the wrong directory. That makes the failure expensive to diagnose — the initial state looks healthy.

Net effect: a WSL project is half-open. File-operating tasks work; anything that compiles, tests, runs, or touches git hooks does not.

What would improve it?

Detect when the opened project is a WSL path (\\wsl.localhost\<distro>\... or \\wsl$\<distro>\...) and run the agent on the WSL side for that project — shell commands execute inside the distro with the cwd translated to the corresponding Linux path, so the toolchain, environment variables, and paths all match what the project expects. Functionally the equivalent of wsl.exe -d <distro> --cd <linux-path>.

If switching execution wholesale is out of scope, then at minimum:

  • translate the UNC project path to its Linux path and use that as the cwd for shell calls,
  • route shell execution through the distro instead of cmd.exe / Windows PowerShell,
  • show which OS the agent is running commands on, so the mismatch is visible instead of silent.

A remote or headless mode — CLI running inside WSL, desktop app connecting to it — would also solve this. I mention it as an alternative shape, not a preference; the ask is that the project's execution context matches where the project actually lives.

What do you do today?

I wrap every command by hand:

wsl.exe -d Ubuntu-24.04 -- bash -lc 'cd /home/<user>/projects/<project> && php artisan test'

That means the agent and I both maintain two mental models of the same project, and any command the agent runs directly is wrong until I correct it.

Product area

Terminal

Related
  • CommandCodeAI/command-code#869 — the same request filed against the CLI repo ("WSL Project Folder in Windows app"). This issue is the desktop-repo counterpart, with the reproduction details that issue lacks.
  • openai/codex#18332 — "codex desktop cannot open or create project in wsl" (open). Same gap on the same platform.
  • anomalyco/opencode#28303 — OpenCode desktop project picker missing deeper WSL folders (closed). Same class of problem in the desktop project picker.

贡献指南

这个仓库没有索引到贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

调研方向

先从报告中描述的 Terminal shell 执行和项目路径处理开始,使用 \wsl.localhost\... 项目路径复现该问题。将命令 cwd 和执行环境与 WSL 发行版上下文进行比较。完成的标准是:命令在该发行版中使用转换后的 Linux cwd 运行;或者,如果完整路由超出范围,则清晰呈现执行上下文。

由索引模型根据 Issue 内容生成。

评估

技术栈
bash, linux, powershell, shell
领域
cli, desktop
Issue 类型
功能
难度
4/5
预计耗时
3-5 天
活跃度
活跃
描述清晰度
基本清楚
新手友好度
48/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。