fix(discord): preserve progress preview final edits

This commit is contained in:
Vincent Koc
2026-06-22 18:17:42 +02:00
parent e1ecfa5200
commit 86ea382121
@@ -72,6 +72,9 @@ export function createDiscordDraftPreviewController(params: {
let hasStreamedMessage = false; let hasStreamedMessage = false;
let finalizedViaPreviewMessage = false; let finalizedViaPreviewMessage = false;
let finalReplyDelivered = false; let finalReplyDelivered = false;
// Final delivery cancels the compositor gate before Discord decides whether
// to edit the progress preview, so keep the pre-final eligibility bit.
let progressDraftStartedBeforeFinal = false;
const previewToolProgressEnabled = const previewToolProgressEnabled =
Boolean(draftStream) && resolveChannelStreamingPreviewToolProgress(params.discordConfig); Boolean(draftStream) && resolveChannelStreamingPreviewToolProgress(params.discordConfig);
const suppressDefaultToolProgressMessages = const suppressDefaultToolProgressMessages =
@@ -132,12 +135,13 @@ export function createDiscordDraftPreviewController(params: {
return discordStreamMode === "progress"; return discordStreamMode === "progress";
}, },
get hasProgressDraftStarted() { get hasProgressDraftStarted() {
return progressDraft.hasStarted; return progressDraft.hasStarted || progressDraftStartedBeforeFinal;
}, },
get finalizedViaPreviewMessage() { get finalizedViaPreviewMessage() {
return finalizedViaPreviewMessage; return finalizedViaPreviewMessage;
}, },
markFinalReplyStarted() { markFinalReplyStarted() {
progressDraftStartedBeforeFinal ||= progressDraft.hasStarted;
progressDraft.markFinalReplyStarted(); progressDraft.markFinalReplyStarted();
}, },
markFinalReplyDelivered() { markFinalReplyDelivered() {