fix(chat): reconcile reply recovery with continuous agent conversations
This commit is contained in:
@@ -6,12 +6,16 @@ import { isTeacherReplyEnvelope, parseTeacherReply } from '../../shared/teacher-
|
||||
import { TeacherError } from './config-client';
|
||||
|
||||
/** Repair only received, completed protocol replies; never resume a model request. */
|
||||
function repairCompletedReply(request: TeacherRequest): void {
|
||||
export function repairCompletedReply(request: TeacherRequest): void {
|
||||
const raw = request.unparsedResponse;
|
||||
if (request.status !== 'completed' || typeof raw !== 'string'
|
||||
|| !(request.discussionError || request.replyParseError || request.replyIncomplete)
|
||||
|| !isTeacherReplyEnvelope(raw)) return;
|
||||
const parsed = parseTeacherReply(raw);
|
||||
if (request.replyQuickRepliesRejected) {
|
||||
parsed.quickReplies = [];
|
||||
parsed.parseError ??= request.replyParseError;
|
||||
}
|
||||
if (parsed.incomplete) {
|
||||
// Keep the previous text and diagnostics as evidence, but do not present a
|
||||
// legacy half-sentence as a complete reply.
|
||||
|
||||
Reference in New Issue
Block a user