Windows: source build fails (spawnSync npm ENOENT); session migration silently no-ops
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 75/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- node.js, shell, typescript
- Lĩnh vực
- build-system, cli, tooling
Hướng nghiên cứu
Issue này chỉ ra hai tệp cụ thể: scripts/build-coding-agent-bundle.mjs (dòng 181) cho vấn đề spawn npm, và packages/config/src/migrations.ts (dòng 145) cho vấn đề tách đường dẫn. Hãy bắt đầu bằng cách kiểm tra những dòng này để hiểu logic hiện tại. Đối với vấn đề đầu tiên, hãy kiểm tra cách Node's execFileSync hoạt động với 'npm' trên Windows. Đối với vấn đề thứ hai, hãy kiểm tra bài kiểm tra 'relocates stray session files' trong packages/config/migrations.test.ts để xem lỗi. Bản sửa lỗi liên quan đến việc sử dụng shell cho lệnh npm và sử dụng path.basename để trích xuất tên tệp đa nền tảng.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
What happened?
作为之前 CLI 的贡献者之一,我发现 Step Code 对 Windows 的兼容性大大提升,已经可以正常使用了,但在本地从源码跑整个项目的时候也踩到两个问题:
pnpm run build在 coding-agent 打包这一步挂掉。scripts/build-coding-agent-bundle.mjs:181直接execFileSync("npm", ...),Windows 上 npm 是 .cmd 批处理,Node 不带 shell 直接 spawn 会 ENOENT。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。
- Ngôn ngữ chính
- TypeScript
- Star
- 54
- Fork
- 20
- Merge trung bình
- 23 phút
- Pull request đã merge (30 ngày)
- 7
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của stepfun-ai/Step-Code
-
untriaged
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
stepfun-ai/Step-Code#153 · 2 bình luận ·
-
untriaged
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
stepfun-ai/Step-Code#149 · 1 bình luận ·
-
untriaged
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
stepfun-ai/Step-Code#148 · 1 bình luận ·
-
untriaged
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 90/100
stepfun-ai/Step-Code#144 · 1 bình luận ·
-
untriaged
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
stepfun-ai/Step-Code#141 · 1 bình luận ·
Tất cả issue của stepfun-ai/Step-Code
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
vercel-labs/just-bash#464 ·
-
looksLikeSlug() is ASCII-only, so non-Latin entity slugs (e.g. Korean) skip exact match and collapse Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 90/100
TanStack/tanstack.com#1293 ·