WSL 开发环境验收 + 清理 Windows 副本 + 修跨平台脚本路径 #3

Closed
opened 2026-10-31 15:10:45 +00:00 by laoyang · 1 comment
Owner

需求

用户要求确认 WSL 开发路线是否真正走通;走通则删除 D:\Yongquan\code\simple_password。

实际发现:一开始没走通

第一步跑 _sp_visual.js 就失败:

找不到可用的 Chromium/Chrome,请设置环境变量 SP_CHROME 指向可执行文件

根因:_sp_visual.js / _sp_clip.js 把浏览器候选路径无条件写成 3 条 Windows 路径,
非 Windows 下 find(exists) 全落空,连带 process.exit(2) 在正确平台上误触发。

同时老毛病复发:迁移时把仓库路径从 D:/Yongquan/... 改成 /home/yongquan/...,
又把 Windows 侧改废了。这不是跨平台,是"换一边写死"。

修复

统一改为 __dirname 相对推算 + Windows 路径挂 win32 条件:

脚本 改动
_sp_visual.js 浏览器候选加 isWin;TARGET/SHOT 改推算
_sp_clip.js 同上,ROOT 改推算
_sp_visual_falsify.js SRC 改推算
_sp_deploy.sh SRC_DIR 改 BASH_SOURCE 推算;注释 u:theme→u:btops

两端 md5 现已一致。

⚠️ _sp_deploy.sh 写死 D:/Yongquan/code/simple_password 是删目录后才会暴露的断点
(脚本会报"本地产物不存在")。删目录前应先 grep _tooling/ 里的路径引用。

验收

判据 结果
_sp_test.js 78 / 78
_sp_visual.js 114 / 114
_sp_clip.js 19 / 19
_sp_file_check.js 15 / 15
_sp_falsify.js 22 注入 / 22 抓到
_sp_visual_falsify.js 6 注入 / 6 抓到(1 分 6 秒)
_sp_deploy.sh 实跑 五步全过,线上 200,属主 www:www 664 52081

数据完整性:17 个受控文件 hash 两端完全一致(汇总 4479092b79d856a5ff9b09633cfce965),
HEAD 同为 9ca33a0,无 stash / tag,唯一 ignore 项是 node_modules/。

反向发现

Windows 侧 _tooling/ 从来没装 node_modules(playwright 在 simple_password/node_modules),
所以 Windows 侧连判据都跑不了(MODULE_NOT_FOUND)。WSL 才是功能完整的一侧。

Windows 副本处置

回收站 API 走不通(PowerShell 是 ConstrainedLanguage,Add-Type/COM 全被拦),
改为移动到 D:\Yongquan\workbuddytmp\trash\simple_password-20261031-230805 作软删除,
等价可还原。移走前记录快照,移走后再校验 md5 汇总一致、git fsck 无损坏。

## 需求 用户要求确认 WSL 开发路线是否真正走通;走通则删除 `D:\Yongquan\code\simple_password`。 ## 实际发现:一开始没走通 第一步跑 `_sp_visual.js` 就失败: ``` 找不到可用的 Chromium/Chrome,请设置环境变量 SP_CHROME 指向可执行文件 ``` 根因:`_sp_visual.js` / `_sp_clip.js` 把浏览器候选路径**无条件**写成 3 条 Windows 路径, 非 Windows 下 `find(exists)` 全落空,连带 `process.exit(2)` 在正确平台上误触发。 同时老毛病复发:迁移时把仓库路径从 `D:/Yongquan/...` 改成 `/home/yongquan/...`, **又把 Windows 侧改废了**。这不是跨平台,是"换一边写死"。 ## 修复 统一改为 `__dirname` 相对推算 + Windows 路径挂 `win32` 条件: | 脚本 | 改动 | |---|---| | `_sp_visual.js` | 浏览器候选加 `isWin`;`TARGET`/`SHOT` 改推算 | | `_sp_clip.js` | 同上,`ROOT` 改推算 | | `_sp_visual_falsify.js` | `SRC` 改推算 | | `_sp_deploy.sh` | `SRC_DIR` 改 `BASH_SOURCE` 推算;注释 `u:theme`→`u:btops` | 两端 md5 现已一致。 ⚠️ `_sp_deploy.sh` 写死 `D:/Yongquan/code/simple_password` 是**删目录后才会暴露**的断点 (脚本会报"本地产物不存在")。删目录前应先 grep `_tooling/` 里的路径引用。 ## 验收 | 判据 | 结果 | |---|---| | `_sp_test.js` | 78 / 78 | | `_sp_visual.js` | 114 / 114 | | `_sp_clip.js` | 19 / 19 | | `_sp_file_check.js` | 15 / 15 | | `_sp_falsify.js` | 22 注入 / 22 抓到 | | `_sp_visual_falsify.js` | 6 注入 / 6 抓到(1 分 6 秒) | | `_sp_deploy.sh` 实跑 | 五步全过,线上 200,属主 www:www 664 52081 | 数据完整性:17 个受控文件 hash 两端完全一致(汇总 `4479092b79d856a5ff9b09633cfce965`), HEAD 同为 `9ca33a0`,无 stash / tag,唯一 ignore 项是 `node_modules/`。 ## 反向发现 Windows 侧 `_tooling/` 从来没装 `node_modules`(playwright 在 `simple_password/node_modules`), 所以 Windows 侧**连判据都跑不了**(`MODULE_NOT_FOUND`)。WSL 才是功能完整的一侧。 ## Windows 副本处置 回收站 API 走不通(PowerShell 是 ConstrainedLanguage,`Add-Type`/COM 全被拦), 改为移动到 `D:\Yongquan\workbuddytmp\trash\simple_password-20261031-230805` 作软删除, 等价可还原。移走前记录快照,移走后再校验 md5 汇总一致、`git fsck` 无损坏。
Author
Owner

收尾

结论

WSL 开发闭环已完整走通,Windows 副本已移走。

闭环证据(全部实跑,非推断)

环节 验证
改代码 WSL 工作区可写可删
提判据 78 + 114 + 19 + 15 = 226 条全过
反证 22/22 + 6/6 全抓到
commit/push 9ca33a0 由 WSL 推送,push --dry-run 正常
部署 _sp_deploy.sh 五步全过,线上 HTTP 200,www:www 664 52081

修了什么

文件 改动 两端 md5
_sp_visual.js 浏览器候选加 isWin;TARGET/SHOT 改 __dirname 推算 2edd3789
_sp_clip.js 同上,ROOT 改推算 5c862a43
_sp_visual_falsify.js SRC 改推算 已同步
_sp_deploy.sh SRC_DIR 改 BASH_SOURCE 推算;u:theme→u:btops bc0144e4

Windows 副本

  • 移走前快照:HEAD 9ca33a0、17 文件 hash 汇总 c6559376、2135 文件、0 改动
  • 移走后复核:hash 汇总一致、git fsck 无损坏
  • 位置:D:\Yongquan\workbuddytmp\trash\simple_password-20261031-230805
  • 还原:mv '<上述路径>' D:\Yongquan\code\simple_password

两个仍未处理的欠账(不属本单)

  1. D:\Yongquan\workbuddy\开源开发\.workbuddy\memory\ 下仍有 MEMORY.md / pitfalls.md /
    2026-10-29.md 等记忆,按 RULES 第一条属"别处的记忆",应迁入本记忆库。
  2. memory/tasks/ 下 3 个任务目录缺 README:2026-10-30-键鼠失效排查、
    2026-10-31-Win11回退Win10、开源开发/2026-10-30。
## 收尾 ### 结论 WSL 开发闭环**已完整走通**,Windows 副本已移走。 ### 闭环证据(全部实跑,非推断) | 环节 | 验证 | |---|---| | 改代码 | WSL 工作区可写可删 | | 提判据 | 78 + 114 + 19 + 15 = 226 条全过 | | 反证 | 22/22 + 6/6 全抓到 | | commit/push | 9ca33a0 由 WSL 推送,push --dry-run 正常 | | 部署 | `_sp_deploy.sh` 五步全过,线上 HTTP 200,`www:www 664 52081` | ### 修了什么 | 文件 | 改动 | 两端 md5 | |---|---|---| | `_sp_visual.js` | 浏览器候选加 `isWin`;`TARGET`/`SHOT` 改 `__dirname` 推算 | `2edd3789` | | `_sp_clip.js` | 同上,`ROOT` 改推算 | `5c862a43` | | `_sp_visual_falsify.js` | `SRC` 改推算 | 已同步 | | `_sp_deploy.sh` | `SRC_DIR` 改 `BASH_SOURCE` 推算;`u:theme`→`u:btops` | `bc0144e4` | ### Windows 副本 - 移走前快照:HEAD `9ca33a0`、17 文件 hash 汇总 `c6559376`、2135 文件、0 改动 - 移走后复核:hash 汇总一致、`git fsck` 无损坏 - 位置:`D:\Yongquan\workbuddytmp\trash\simple_password-20261031-230805` - 还原:`mv '<上述路径>' D:\Yongquan\code\simple_password` ### 两个仍未处理的欠账(不属本单) 1. `D:\Yongquan\workbuddy\开源开发\.workbuddy\memory\` 下仍有 MEMORY.md / pitfalls.md / 2026-10-29.md 等记忆,按 RULES 第一条属"别处的记忆",应迁入本记忆库。 2. `memory/tasks/` 下 3 个任务目录缺 README:`2026-10-30-键鼠失效排查`、 `2026-10-31-Win11回退Win10`、`开源开发/2026-10-30`。
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: laoyang/simple_password#3