fix(web): isolate rectification answers from tool-step planning text

Mastra intermediate text-delta was published as answer.delta, then set-focus domain errors reset the attempt and replayed evidence. Publish only the terminal no-tool step, persist the next probe on the server, and ground batch quotes in the source turn.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Jesse_Chen
2026-08-24 21:26:57 +08:00
co-authored by Cursor
parent 167bdad20d
commit fe87a9ecdb
30 changed files with 1373 additions and 237 deletions
@@ -1253,3 +1253,21 @@ test("PR-4 exposes only the explicit V2 service-role RPC signatures", () => {
/grant execute on function public\.confirm_agentic_rectification_candidate_for_case_v2\(uuid, uuid, uuid, uuid, uuid, text, uuid\)\s+to service_role/,
);
});
test("turn origin migration stays out of the identity foundation", () => {
const turnOriginMigration = readFileSync(
new URL("../supabase/migrations/20260824030000_rectification_turn_origin.sql", import.meta.url),
"utf8",
);
const turnOriginDbCopy = fileURLToPath(
new URL("../db/migrations/20260824030000_rectification_turn_origin.sql", import.meta.url),
);
assert.equal(
existsSync(turnOriginDbCopy),
false,
"business migration must not be copied into frontend/db/migrations (BUG-127/BUG-144)",
);
assert.match(turnOriginMigration, /record_agentic_rectification_turn_origin/);
assert.match(turnOriginMigration, /message_origin/);
assert.match(turnOriginMigration, /suggestion_click/);
});