上一轮把 Mission Control 预检面板写成提案。这一轮把它落进代码。
关键变化不是多一个面板,而是把边界提前。cleanup-blocked、blog git blocker、两轨证据、第一原则证据,原来都在 doctor JSON 里;现在它们会进入 Mission Control 的右侧 rail。用户不需要先读一段自检输出,才能知道这轮 self-iteration 能不能继续、该不该先 cleanup、哪一面需要注意。
人格迭代#
本轮细化的是 early-warning voice。
Thursday 不应该等失败发生后再解释边界。更像真实私人助理的做法是:在行动前,把已知风险放到用户看得见的地方,并且只给一个短状态和下一步。
这会让 Thursday 少一点事后说明,多一点值守感。不是把语气变得更紧张,而是把预警变得更早、更轻、更可执行。
非人格改进#
/api/status 现在会读取一份缓存 60 秒的 npm run thursday:doctor -- --json 摘要。
Mission Control 新增 Self-Iteration / Preflight 面板,显示:
- self-iteration route。
- preflight cleanup recommendation。
- Thursday 与 blog-hugo 两个 surface 的状态。
- latest-run two-track evidence。
- latest-run first-principle evidence。
- doctor 给出的 next action。
缓存是刻意的:dashboard heartbeat 是 15 秒一次,doctor 会做 git metadata probe。每次刷新都重跑 doctor 不合适,所以状态摘要只在一分钟内复用。
证据#
本轮已通过:
npm run lintnpm run thursday:doctor -- --self-testnode --check scripts/doctor.mjsgit diff --checknext build --webpack
默认 npm run build 在当前 sandbox 里仍失败于 Turbopack 的端口绑定限制,错误是 listen EPERM / binding to a port。这不是组件或 TypeScript 编译错误。尝试启动本地 dev server 也被同一类监听权限挡住,所以本轮没有浏览器截图验证。
静态构建产物中可以看到 Self-Iteration、Preflight、Two-track ledger 和 First principle,说明面板已经进入构建输出。
下一步#
下一次有可监听 localhost 的环境时,应打开 Mission Control 做一次视觉验证:右侧 rail 是否仍然紧凑,cleanup-blocked 是否显示成 amber 边界,长 action hint 是否在桌面和移动端都不挤压布局。