fix: preserve off-mode semantics in auto reply threading (#14976) (thanks @Diaspar4u)

This commit is contained in:
Peter Steinberger
2026-02-13 05:20:47 +01:00
parent 3d89f0f14a
commit 79a38858ae
5 changed files with 44 additions and 9 deletions

View File

@@ -62,10 +62,15 @@ export function applyReplyThreading(params: {
}): ReplyPayload[] {
const { payloads, replyToMode, replyToChannel, currentMessageId } = params;
const applyReplyToMode = createReplyToModeFilterForChannel(replyToMode, replyToChannel);
const implicitReplyToId = currentMessageId?.trim() || undefined;
return payloads
.map((payload) =>
applyReplyTagsToPayload({ ...payload, replyToCurrent: true }, currentMessageId),
)
.map((payload) => {
const autoThreaded =
payload.replyToId || payload.replyToCurrent === false || !implicitReplyToId
? payload
: { ...payload, replyToId: implicitReplyToId };
return applyReplyTagsToPayload(autoThreaded, currentMessageId);
})
.filter(isRenderablePayload)
.map(applyReplyToMode);
}