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:
@@ -14,7 +14,7 @@ import { loadRuntimeFeatureFlags } from "@/lib/feature-flags";
|
||||
import { isProductEnabled } from "@/lib/product-access";
|
||||
import { resolveSessionLanguageModel } from "@/lib/model-catalog";
|
||||
import { createAdminSupabaseClient } from "@/lib/supabase/admin";
|
||||
import { createServerSupabaseClient } from "@/lib/supabase/server";
|
||||
import { defaultMessageOrigin, isRectificationMessageOrigin } from "@/lib/rectification-agentic/v9/message-origin";
|
||||
|
||||
export const runtime = "nodejs";
|
||||
export const maxDuration = 120;
|
||||
@@ -31,6 +31,15 @@ const agentRequestSchema = z.object({
|
||||
probeId: z.string().trim().min(1).max(200).nullable().optional(),
|
||||
optionId: z.enum(["A", "B", "C", "D"]).optional(),
|
||||
expectedRevision: z.number().int().min(0).max(10_000).optional(),
|
||||
origin: z.enum([
|
||||
"typed",
|
||||
"suggestion_click",
|
||||
"choice_click",
|
||||
"voice_input",
|
||||
"retry_replay",
|
||||
"system_recovery",
|
||||
]).optional(),
|
||||
clientActionId: z.string().uuid().optional(),
|
||||
}).strict();
|
||||
|
||||
function actionToBudget(action: "opening" | "message" | "read_only"): RectificationAgentAction {
|
||||
@@ -346,6 +355,10 @@ export async function POST(request: Request) {
|
||||
requestId,
|
||||
action: actionToBudget(action),
|
||||
message: action === "message" ? parsed.data.message ?? "" : null,
|
||||
messageOrigin: isRectificationMessageOrigin(parsed.data.origin)
|
||||
? parsed.data.origin
|
||||
: defaultMessageOrigin(action),
|
||||
clientActionId: parsed.data.clientActionId ?? requestId,
|
||||
modelName: selectedModel.id,
|
||||
skillName: RECTIFICATION_SKILL_NAME,
|
||||
skillVersion: skillVersion || RECTIFICATION_SKILL_VERSION,
|
||||
|
||||
Reference in New Issue
Block a user