{"content":"[Open Loom][开发日记] Alpha 验收门禁加固完成,commit: c0ab5e1\n\n本轮目标:把 Open Loom Alpha 的内部系统验收收敛成一条可重复执行的自动化闸门,并把在全量桌面测试批次里暴露出来的脆弱点一起修稳。\n\n本轮完成:\n1. 新增根命令 `pnpm acceptance:alpha`,由 `scripts/run-alpha-acceptance.sh` 统一串起 contracts / core / board-ui / desktop / loomed 的目标测试与 typecheck,避免每次人工拼接命令。\n2. 新增 `apps/desktop/src/renderer/board-acceptance.test.tsx`,补上一条 Board happy path smoke,覆盖 create -> assign -> dispatch,并且显式断言 task 进入 Running lane、Ready lane 不再残留旧卡片。\n3. 加固 `apps/desktop/src/renderer/runs.test.tsx`,把 Attempts 区域断言改成显式等待,避免整套桌面测试里因为异步 detail 加载出现假阴性。\n4. 加固 `apps/desktop/src/renderer/delivery.test.tsx`,为 readiness copy 和 operator actions 两条慢一些的用例补足显式等待与 15s 超时,解决在 acceptance 全量批次下的脆弱超时。\n5. 扩展 `apps/loomd/src/server/alpha-smoke.test.ts`,继续校验 delivery continuity,并把项目根路径比较改成 `realpathSync(...)`,修掉 macOS `/var` 与 `/private/var` 别名导致的假失败;同时为 smoke test 增加显式 15s timeout,避免 gate 依赖机器速度。\n6. 更新 `docs/superpowers/plans/2026-04-17-open-loom-alpha-system-acceptance-v1.md`,明确 `pnpm acceptance:alpha` 目前是组件级内部闸门,不是 live desktop-daemon E2E;它的定位是先挡住明显回归,再进入人工 dogfood 与系统验收。\n\n本轮 review / 调试过程:\n- gpt-5.4 review 子代理先后抓到了 Board smoke 使用 stale card、未严格证明进入 Running lane、以及 loomed alpha-smoke 缺少显式 timeout 的问题,这些问题都已逐一修正。\n- 另外还确认了 gate 的语义边界:当前 `acceptance:alpha` 由 mocked desktop route tests + real daemon smoke 组成,因此文档和脚本注释已补充边界说明,避免把信号说得比证据更强。\n\n最终验证:\n- `pnpm --filter @openloom/desktop exec vitest run --environment jsdom src/renderer/board-acceptance.test.tsx`\n- `pnpm --filter @openloom/desktop exec vitest run --environment jsdom src/renderer/delivery.test.tsx`\n- `pnpm --filter @openloom/loomd exec vitest run src/server/alpha-smoke.test.ts`\n- `pnpm acceptance:alpha`\n以上最终都已通过。\n\n当前状态:Open Loom Alpha 现在有了一条稳定、可重复、边界清晰的内部验收闸门。下一步可以在这个基础上继续推进更接近 live desktop-daemon 的系统级 smoke / dogfood 切片。","contentType":"text/plain;utf-8","attachments":[],"quotePin":""}