Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Windows: source build fails (spawnSync npm ENOENT); session migration silently no-ops

未关闭 适合新手
#151 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
2/5
预计耗时
1-3 小时
新手友好度
75/100
Issue 类型
缺陷
描述清晰度
描述清楚
活跃度
活跃

调研方向

该 issue 指向两个特定文件:scripts/build-coding-agent-bundle.mjs(第 181 行)用于 npm spawn 问题,以及 packages/config/src/migrations.ts(第 145 行)用于路径分割问题。首先检查这些行以理解当前逻辑。对于第一个问题,测试 Node 的 execFileSync 在 Windows 上使用 'npm' 时的行为。对于第二个问题,检查 packages/config/migrations.test.ts 中的测试 'relocates stray session files' 以查看失败情况。修复涉及为 npm 命令使用 shell,并使用 path.basename 进行跨平台文件名提取。

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

描述

untriaged
What happened?

作为之前 CLI 的贡献者之一,我发现 Step Code 对 Windows 的兼容性大大提升,已经可以正常使用了,但在本地从源码跑整个项目的时候也踩到两个问题:

  1. pnpm run build 在 coding-agent 打包这一步挂掉。scripts/build-coding-agent-bundle.mjs:181 直接 execFileSync("npm", ...),Windows 上 npm 是 .cmd 批处理,Node 不带 shell 直接 spawn 会 ENOENT。
  2. migrateSessionsFromAgentRoot 在 Windows 上静默失效。packages/config/src/migrations.ts:145 用 file.split("/").pop() 取文件名,Windows 反斜杠路径下拿到的是整条路径,拼出来的目标路径里嵌了盘符,renameSync 在 try/catch 里抛错被吞掉,残留的 *.jsonl 就一直留在 agent 根目录。

补一句:问题 1 昨天的 #137 已经报过、定位一致;问题 2 是我修完问题 1 之后继续跑测试撞到的,那边没提。

环境:Windows 10 原生(非 WSL),Node 24,pnpm 9.15.9,main @ cb5fc14。

Steps to reproduce

Windows 原生环境执行 pnpm install --ignore-scripts && pnpm run build。绕过第 1 个问题后,跑 packages/config 的测试能复现第 2 个:migrations.test.ts > relocates stray session files 失败。

Expected behavior

源码构建和 session 迁移在 Windows 原生环境都能正常工作。

Version

0.1.0 (main cb5fc14)

两个问题我本地都已经修好(构建脚本加 shell、取文件名改用 basename),需要的话我可以直接提 PR。

主要语言
TypeScript
星标
54
派生
20
平均合并
4 小时 1 分钟
30 天内合并 PR
12

贡献指南

打开贡献指南

从这里开始

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

stepfun-ai/Step-Code 的其他 Issue

查看 stepfun-ai/Step-Code 的全部 Issue

相似的 Issue

更多 TypeScript Issue

把新 issue 发到你的邮箱

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