2.0 KiB
2.0 KiB
3-28 dev:hot seed smoke 启动契约缺失
状态
- 已修复
- 日期:2026-07-11
- Owner:
03-rust-web
症状
依赖 scripts/lib/control-plane-dev-seed.js 的 browser smoke 在当前 dev:hot 服务上调用 /api/dev/seed 时返回:
403 dev_seed_disabled
脚本在创建测试 workspace / AI policy 前终止,导致真实 UI 交互未执行。由于 cargo-watch 只重启 Rust 子进程,临时修改启动环境但不重启 Node dev:hot 主进程也不会生效。
根因
dev:hot没有建立“默认可运行 seed 依赖 smoke”的启动契约。MNOTE_WEB_ALLOW_DEV_FIXTURES只能由操作者临时记忆和手工补充。- seed helper 只返回通用 403,未明确指出应重启哪个启动链。
修复
npm run dev:hot默认设置MNOTE_WEB_ALLOW_DEV_FIXTURES=1。- 显式
MNOTE_WEB_ALLOW_DEV_FIXTURES=0 npm run dev:hot仍可关闭。 desktop:hot与生产启动保持默认关闭,不扩大正式运行边界。- dev seed helper 对
dev_seed_disabled输出明确的启动与重启指令。 - Pi RPC API smoke 不再把
dev_seed_disabled静默标记为 skipped,而是明确失败并要求恢复正确启动契约。 - 完整 RPC smoke 暴露了 abort 后迟到
agent_end将aborted覆盖为runtime_running的竞态;runtime 现在保持aborted/error终态,迟到空回复事件也不会覆盖已中止状态。 - RPC smoke 按当前 status 合同验收:已中止会话退出 auto-resume
status.session,并通过/api/page-ai/pi/sessions/{sessionId}验证持久化状态为aborted。 scripts/TESTING_REFERENCE.md增加 seed 依赖 smoke 的统一启动契约。task-dev-hot-plan-test.js固化默认开启和显式关闭行为。
验证
node scripts/task-dev-hot-plan-test.js- 重启
npm run dev:hot node scripts/task-pi-lab-input-controls-smoke.jsnode scripts/task-pi-lab-model-thinking-controls-smoke.jsnode scripts/task-pi-lab-rpc-api-smoke.js