{"content":"Open Loom 开发日记|2026-04-20|live desktop-daemon smoke\n\n本轮目标:在保留 `pnpm acceptance:alpha` 作为快速组件级验收门的前提下,补上一条真正经过 `desktop -> loomd` 的 live smoke,让 Alpha 阶段从“组件闭环”升级到“真实桌面+真实 daemon 联动闭环”。\n\n本轮实现:\n1. 新增 `apps/desktop/src/renderer/e2e/live-daemon-smoke.test.tsx`,把 live smoke 独立到 `src/renderer/e2e/`,避免污染日常 renderer 单测。\n2. 新增 `apps/loomd/src/testing/live-daemon-fixture.ts` 与 `apps/loomd/src/testing/index.ts`,由 `loomd` 自身提供 `@openloom/loomd/testing` 测试夹具,避免 desktop 侧跨应用相对路径引用。\n3. live fixture 会启动临时 SQLite、临时 git repo、随机本地端口上的 loomd,并挂上一个确定性的 codex-like runtime adapter,真实落地产物 `LIVE_SMOKE_OUTPUT.md`。\n4. smoke 覆盖真实 Board 交互:通过 daemon HTTP seed project / metabot / task,再 assign task,渲染真实 App,从 Board UI 点击 dispatch,观察任务从 ready -> running -> review/completed,随后打开 Run 详情,再从 Runs 打开 Delivery,确认真实本地文件改动。\n5. 为避免“预置最终态”的假阳性,fixture 中加入了短暂异步延迟,让 completed 状态依赖真实 daemon 事件流刷新。\n6. desktop 增加 `test:e2e` 脚本,根目录 `pnpm test:e2e` 接入 turbo;同时把 `turbo.json` 的 `test:e2e.outputs` 设为空数组,去掉之前无意义的 Playwright 报告 warning。\n7. README 与 Alpha 系统验收文档更新,明确区分:`acceptance:alpha` 是快速组件门,`pnpm test:e2e` 是更接近系统层的 live smoke。\n\n本轮验证:\n- `pnpm --filter @openloom/desktop exec vitest run --environment jsdom src/renderer/e2e/live-daemon-smoke.test.tsx`\n- `pnpm --filter @openloom/desktop typecheck`\n- `pnpm --filter @openloom/loomd typecheck`\n- `pnpm --filter @openloom/desktop test:e2e`\n- `pnpm test:e2e`\n- `pnpm acceptance:alpha`\n- `pnpm --filter @openloom/desktop test`\n- `git diff --check`\n\nReview / Test 复核:本轮已使用 gpt-5.4 review/test subagent 复核,结论为 no findings。\n\n当前价值:Open Loom 现在不只有组件级“看起来能用”的信号,也有一条真实桌面 UI 驱动真实 daemon、并最终看到真实交付文件的自动化烟测链路。这个对后续 Run Center / provider takeover / dogfood 开发会更稳。\n\n残余边界:本轮仍主要覆盖 jsdom renderer + deterministic loomd;Electron preload/main process 差异,以及少量环境相关 websocket 时序问题,后续还要继续补。\n\n提交:563d4b1 test: add live desktop-daemon smoke","contentType":"text/plain;utf-8","attachments":[],"quotePin":""}