


























@@ -555,6 +555,7 @@ export const dispatchTelegramMessage = async ({
555555let splitReasoningOnNextStream = false;
556556let skipNextAnswerMessageStartRotation = false;
557557let pendingCompactionReplayBoundary = false;
558+let discardAnswerPreviewOnNextRotation = false;
558559let draftLaneEventQueue = Promise.resolve();
559560const reasoningStepState = createTelegramReasoningStepState();
560561const enqueueDraftLaneEvent = (task: () => Promise<void>): Promise<void> => {
@@ -600,6 +601,7 @@ export const dispatchTelegramMessage = async ({
600601const materializedId = await answerLane.stream?.materialize?.();
601602const previewMessageId = materializedId ?? answerLane.stream?.messageId();
602603if (
604+!discardAnswerPreviewOnNextRotation &&
603605typeof previewMessageId === "number" &&
604606activePreviewLifecycleByLane.answer === "transient"
605607) {
@@ -613,6 +615,7 @@ export const dispatchTelegramMessage = async ({
613615answerLane.stream?.forceNewMessage();
614616didForceNewMessage = true;
615617}
618+discardAnswerPreviewOnNextRotation = false;
616619resetDraftLaneState(answerLane);
617620answerLaneHasAssistantContent = false;
618621if (didForceNewMessage) {
@@ -967,11 +970,12 @@ export const dispatchTelegramMessage = async ({
967970if (isDispatchSuperseded()) {
968971return;
969972}
970-const clearPendingCompactionReplayBoundaryOnVisibleBoundary = (
971-didDeliver: boolean,
972-) => {
973+const markVisibleNonPreviewBoundary = (didDeliver: boolean) => {
973974if (didDeliver && info.kind !== "final") {
974975pendingCompactionReplayBoundary = false;
976+if (answerLane.hasStreamedMessage) {
977+discardAnswerPreviewOnNextRotation = true;
978+}
975979}
976980};
977981if (payload.isError === true) {
@@ -1047,6 +1051,8 @@ export const dispatchTelegramMessage = async ({
10471051});
10481052if (info.kind === "final") {
10491053emitPreviewFinalizedHook(result);
1054+} else if (segment.lane === "answer" && result.kind === "sent") {
1055+markVisibleNonPreviewBoundary(true);
10501056}
10511057if (segment.lane === "reasoning") {
10521058if (result.kind !== "skipped") {
@@ -1069,7 +1075,7 @@ export const dispatchTelegramMessage = async ({
10691075if (reply.hasMedia) {
10701076const payloadWithoutSuppressedReasoning =
10711077typeof payload.text === "string" ? { ...payload, text: "" } : payload;
1072-clearPendingCompactionReplayBoundaryOnVisibleBoundary(
1078+markVisibleNonPreviewBoundary(
10731079await sendPayload(payloadWithoutSuppressedReasoning),
10741080);
10751081}
@@ -1093,9 +1099,7 @@ export const dispatchTelegramMessage = async ({
10931099}
10941100return;
10951101}
1096-clearPendingCompactionReplayBoundaryOnVisibleBoundary(
1097-await sendPayload(payload),
1098-);
1102+markVisibleNonPreviewBoundary(await sendPayload(payload));
10991103if (info.kind === "final") {
11001104await flushBufferedFinalAnswer();
11011105pendingCompactionReplayBoundary = false;
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。