fix(recall): preserve reroll user-floor reuse

This commit is contained in:
opencode
2026-05-15 20:13:13 +00:00
parent 94f42ddb23
commit d2d01d2c24
4 changed files with 211 additions and 2 deletions

View File

@@ -467,9 +467,15 @@ export function onMessageUpdatedController(runtime, messageId, meta = null) {
}
export async function onMessageSwipedController(runtime, messageId, meta = null) {
runtime.invalidateRecallAfterHistoryMutation("已切换楼层 swipe");
const parsedFloor = Number(messageId);
const fromFloor = Number.isFinite(parsedFloor) ? parsedFloor : undefined;
const preparedRerollReuse = runtime.prepareRerollRecallReuse?.({
fromFloor,
meta,
});
if (!preparedRerollReuse) {
runtime.invalidateRecallAfterHistoryMutation("已切换楼层 swipe");
}
let result = {
success: false,
rollbackPerformed: false,
@@ -503,6 +509,9 @@ export async function onMessageSwipedController(runtime, messageId, meta = null)
{ messageId, meta },
);
}
if (!result?.success) {
runtime.clearPendingRerollRecallReuse?.("swipe-reroll-failed");
}
runtime.refreshPersistedRecallMessageUi?.();
return result;
}