进度条补回漏掉的那一格;删掉一条已经不存在的路
用户送来一条实测日志:中间被拒四次,卡片进度条也走得不对。两处都不是模型跑偏。 **进度条漏了一格** —— `INTAKE_PHASES` 里没有 `S3_confirm`(它是 08-01 才补回成一项的): 计划项六个、名单里五个。于是 S2 一收,前两格全过,条当场跳到「判定去向」; 而人这会儿正对着受理需求审定那张卡 —— **他手上办的那件事在条上没有格子**, 条却已经走过去了。那不是走快了一格,是它在说一件没发生的事。 补成四格(定位客户 / 归一受理 / 交你审定 / 判定去向)+ 基座统一加的放行收口; 包内自测钉死「除放行外每一项恰好属于一个阶段」「一项不进两个阶段」。 **那四次拒回是一条已经不存在的路** —— 说明书里还留着「人交回来还缺必填,就再发一张卡」。 提交闸上线后那条路没有了:缺必填根本按不下提交。模型照它办,每次都撞在 「这件事刚问过,人也答过了」上,白烧四拍。改成「这张卡一单只发一次」。 同批把提交闸补到**服务端**(收下回传之前把住):说明书向模型承诺 「卡回来时必填一定是齐的」,那句承诺只有服务端拦得住才算数。 A1 三案例复跑:9 拍 / 10 拍 / 14 拍,前两个**被拒 0**(修前是 12 拍被拒 1), 进度条五格逐格走对。五道门禁全绿(975 passed)。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JsTDjoHovERXyy6Wmw1ALp
This commit is contained in:
@@ -884,6 +884,34 @@ export function registerDeskRoutes(app: Hono<AppEnv>, container: Container): voi
|
||||
return c.json(body, 400);
|
||||
}
|
||||
try {
|
||||
/*
|
||||
* **提交闸在服务端也得成立**(2026-08-02)。
|
||||
*
|
||||
* 前端把按钮灰掉是给人看的;而**说明书里向模型承诺了**「卡交回来时必填一定是齐的,
|
||||
* 所以不许再发同一张卡」——那句承诺只有服务端拦得住才算数。
|
||||
* 拦不住的话:一次直调 API 就能把缺必填的卡交回来,模型照承诺不再追问,
|
||||
* 这一单一路走到放行门才被 L1 拦住 —— 而那时缺的是哪一格早已翻篇。
|
||||
* 与卡面那道闸同一段(`submitGate`),同一个数、同一套算法。
|
||||
*/
|
||||
/*
|
||||
* **闸要在收下回传之前把住**:收下之后再拒,那张单已经记成办结了。
|
||||
* 这一单归哪个任务只有库里知道(回传载荷里只有工单号),所以先问一句。
|
||||
*/
|
||||
const owner = rowsOf<{ task_id: string }>(
|
||||
await container.db.execute(sql`select task_id from sys.work_order where id = ${parsed.data.workOrderId} limit 1`),
|
||||
)[0];
|
||||
if (owner !== undefined) {
|
||||
const held = taskIdSchema.parse(owner.task_id);
|
||||
const order = (await container.humanTool.allWorkOrders(held)).find((o) => o.id === parsed.data.workOrderId);
|
||||
const gate = order === undefined ? undefined : await submitGate(container, held, order);
|
||||
if (gate !== undefined && !gate.ready) {
|
||||
const body: ApiError = {
|
||||
code: 'validation-failed',
|
||||
message: `${gate.why}${gate.blanks.length === 0 ? '' : ` —— ${gate.blanks.slice(0, 5).join(';')}`}`,
|
||||
};
|
||||
return c.json(body, 400);
|
||||
}
|
||||
}
|
||||
const outcome = await container.humanTool.replyWorkOrder(parsed.data, staff.id);
|
||||
/*
|
||||
* **绑台账的可编辑表:人改了什么,基座当场写回草稿层**(2026-08-01)。
|
||||
|
||||
Reference in New Issue
Block a user