/** * **件上按了保存之后**(2026-08-29,spec §5.4)。 * * 两件事按序: * ① 重推件 —— 数据变了,算出来的那些(红带缺几格 / 分布条 / 去向)得重新求值; * ② **叫醒任务** —— auto 步的配方这才有机会按最新的草稿把该铺的行铺出来。 * 人挑了芯片类型、按了保存,参数格就在这一下之后出现。 * * 从前只有两条回传路由调 `wake`;保存不是回传,于是「保存即铺格」永远等不到那一拍。 * **叫不醒不抬手**:保存本身是成功的,不该因为叫不醒把 200 变成 500 —— * 下一次推进器扫到它照样会跑。 */ import type { TaskId } from '@contracts'; export async function afterSave( deps: { readonly views: { repush(taskId: TaskId): Promise }; readonly task: { wake(taskId: TaskId): Promise }; }, taskId: TaskId, rows: number, ): Promise { if (rows <= 0) return; await deps.views.repush(taskId); await deps.task.wake(taskId).catch(() => false); }