小浣熊帮着完成了更新任务
dsh FreeBSD fork 同步升级 v0.2.1-alpha.1 完成报告
根因 / 结论
FreeBSD 移植版已从 dsh-v0.2.0-rc.2 基线同步到官方最新 dsh-v0.2.1-alpha.1 (release 说明里的 5badb15 = 上游 tag commit 5badb15009)。
做了什么
1. 冲突面大幅缩小
- 预演合并只出现 2 个 UU(package.json、README.md),比上次 rc.2→rc.1 的 7 个少一半多
- pnpm-workspace.yaml、
node-pty、freebsd/脚本等核心配置零冲突(上游未改,fork 改动全部自动保留) - 上游领先 266 commits,我方独有 62 commits,线性判定确认线性(不 rebase)
2. 两个冲突的处置
| 文件 | 处置 |
|---|---|
| package.json | 保留我方 --max-old-space-size=4096 双 lib 上限,吸收上游 --config-loader native;修正一处丢失逗号导致 JSON 解析失败 |
| README.md | 双条目共存:我方 23(loader/internal FreeBSD guard)+ 上游 24(entry.ts module identity) |
3.audit-merge.sh 14 项 fork 关键改动幸存审计全部 OK ,RC=0,无 [LOST]。
4. 一个真根因修复(i18n)
- 构建全绿但
verify-translation-pairing红 - 定位:上游
c7f66d13a6把2026-07-06-sandbox归档 到.agents/notes/archived/feature/,fork 独有的 FreeBSD note 里 en/zh 链接目标都不存在了 - 按兄弟文档
windows-acl的写法,把链接改为../../archived/feature/2026-07-06-sandbox.md,重录配对 hash - 最终
862 pair(s) checked across all in-scope documentation, all consistent,RC=0
编译测试(按您要求在 192.168.0.88 执行)
在 0.88(64GB,无需 cpuset)跑sync-build-verify.sh,结果全绿:
| 步骤 | 退出码 |
|---|---|
| pnpm-install | 0 |
| clean | 0 |
| native-system | 0 |
| test-oracle | 0 |
| build-lib#1 | 0(首次即过,未触发 OOM 重跑) |
| build-web | 0 |
| native-addon / flock-lib | 0 |
| native-tests | 0 |
| verify-sandbox | PASS=10 FAIL=0 |
| translation-pairing | 修复后 0(862 pairs all consistent) |
| vitest-scoped | 0(205 tests / 9 files passed) |
1.5(8GB,共享生产机)未参与编译,仅做合并、审计、打 tag、推送,完全避开了 OOM 风险。
冒烟验证(0.88)
- HTTP
NO_TOKEN_HTTP=401(服务正常,无 token 预期 401) SANDBOX_UNAVAILABLE计数 = 0- 服务进程 PID 58521 于构建完成后启动,日志末尾为成功启动输出
三远端推送(按您的确认执行)
基线 tag fork-after-upstream-v0.2.1-alpha.1 打在 merge commit 36ec2a4157 上(^1 = fork 侧 8bf6c9250f,^2 = 上游 5badb15009),符合 fork 铁律。
| 远端 | master | 基线 tag |
|---|---|---|
| github | c9f8ee17ea ✓ |
36ec2a4157 ✓ |
| gitea(1.5 内网) | c9f8ee17ea ✓ |
36ec2a4157 ✓ |
| gitcode(origin) | c9f8ee17ea ✓ |
36ec2a4157 ✓ |
0.88 已 fetch 该 tag 并对齐同一 HEAD。
已知遗留(不阻塞)
- 上游在 v0.2.1-alpha.1 里重构了 web 入口,main.ts 已不再显式 import 我们的 polyfill-crypto.ts。但这不影响 FreeBSD :我们的信任边界是 loopback-only(SSH tunnel 或本机 127.0.0.1),本就在 secure context,原生
crypto.randomUUID可用。文件保留,后续上游若删掉该文件再评估。 - knip.json 上游已删且 CI 不再引用,
whichbinary 提示不再触发,接受。