diff --git a/aiserver.py b/aiserver.py index 2db72cae..a7f6f21b 100644 --- a/aiserver.py +++ b/aiserver.py @@ -8412,9 +8412,9 @@ def UI_2_redo(data): @logger.catch def UI_2_retry(data): - if len(koboldai_vars.actions.get_current_options_no_edits()) == 0: - UI_2_back(None) koboldai_vars.actions.clear_unused_options() + if len(koboldai_vars.actions.get_current_options_no_edits()) == 0: + ignore = koboldai_vars.actions.pop(keep=False) koboldai_vars.lua_koboldbridge.feedback = None koboldai_vars.recentrng = koboldai_vars.recentrngm = None actionsubmit("", actionmode=koboldai_vars.actionmode) diff --git a/koboldai_settings.py b/koboldai_settings.py index 1cc69beb..1001b3d3 100644 --- a/koboldai_settings.py +++ b/koboldai_settings.py @@ -1577,12 +1577,13 @@ class KoboldStoryRegister(object): process_variable_changes(self.socketio, "story", 'actions', {"id": action_step, 'action': self.actions[action_step]}, None) self.set_game_saved() - def delete_action(self, action_id): + def delete_action(self, action_id, keep=True): if action_id in self.actions: old_options = copy.deepcopy(self.actions[action_id]["Options"]) old_text = self.actions[action_id]["Selected Text"] old_length = self.actions[action_id]["Selected Text Length"] - self.actions[action_id]["Options"].append({"text": self.actions[action_id]["Selected Text"], "Pinned": False, "Previous Selection": True, "Edited": False}) + if keep: + self.actions[action_id]["Options"].append({"text": self.actions[action_id]["Selected Text"], "Pinned": False, "Previous Selection": True, "Edited": False}) self.actions[action_id]["Selected Text"] = "" if "wi_highlighted_text" in self.actions[action_id]: del self.actions[action_id]["wi_highlighted_text"] @@ -1593,10 +1594,10 @@ class KoboldStoryRegister(object): logger.debug("Calcing AI Text from Action Delete") ignore = self.koboldai_vars.calc_ai_text() - def pop(self): + def pop(self, keep=True): if self.action_count >= 0: text = self.actions[self.action_count]['Selected Text'] - self.delete_action(self.action_count) + self.delete_action(self.action_count, keep=keep) logger.debug("Calcing AI Text from Action Pop") return text else: