fix(rectification): bind evidence to current server turn
This commit is contained in:
@@ -94,6 +94,43 @@ test("confirmed requires the engine gate plus explicit grounded consent", async
|
||||
);
|
||||
});
|
||||
|
||||
test("confirm-birth-time binds consent to the server-owned current turn", async () => {
|
||||
const accounting = fakeAccounting({
|
||||
...receiptHandlers,
|
||||
confirm_agentic_rectification_birth_time: () => ({
|
||||
success: true,
|
||||
saved_time: "05:02",
|
||||
status: "confirmed",
|
||||
result_id: RESULT_ID,
|
||||
case_status: "confirmed",
|
||||
idempotent: false,
|
||||
}),
|
||||
});
|
||||
const tools = createRectificationV9Tools({
|
||||
userId: USER_ID,
|
||||
caseId: CASE_ID,
|
||||
turnId: TURN_ID,
|
||||
accounting: accounting.client as never,
|
||||
});
|
||||
const confirm = tools["rectification-confirm-birth-time"] as unknown as {
|
||||
inputSchema: { safeParse(value: unknown): { success: boolean } };
|
||||
execute(input: unknown): Promise<unknown>;
|
||||
};
|
||||
const input = {
|
||||
caseId: CASE_ID,
|
||||
resultId: RESULT_ID,
|
||||
candidateId: "05:02",
|
||||
consentQuote: "就用05:02",
|
||||
};
|
||||
assert.equal(confirm.inputSchema.safeParse(input).success, true);
|
||||
assert.equal(confirm.inputSchema.safeParse({ ...input, sourceTurnId: "77777777-7777-4777-8777-777777777777" }).success, false);
|
||||
|
||||
await confirm.execute(input);
|
||||
const call = accounting.calls.find((item) => item.fn === "confirm_agentic_rectification_birth_time");
|
||||
assert.ok(call);
|
||||
assert.equal(call.args.p_source_turn_id, TURN_ID);
|
||||
});
|
||||
|
||||
test("candidate ownership is case-scoped: the RPC always receives the case id", async () => {
|
||||
const accounting = fakeAccounting({
|
||||
accept_agentic_rectification_candidate_for_case: () => ({
|
||||
@@ -152,7 +189,6 @@ test("terminal cases reject evidence writes and candidate actions", async () =>
|
||||
await assert.rejects(
|
||||
(tools["rectification-propose-evidence"] as unknown as { execute(input: unknown): Promise<unknown> }).execute({
|
||||
caseId: CASE_ID,
|
||||
sourceTurnId: TURN_ID,
|
||||
quote: "2016年9月离开家去北京工作",
|
||||
proposedKind: "career_entry",
|
||||
subject: "self",
|
||||
|
||||
Reference in New Issue
Block a user