mirror of
https://github.com/NicolasBohn/NexQuant.git
synced 2026-07-27 23:47:46 +00:00
fix(loop): prevent step_idx advance on unhandled exceptions + fix consecutive assistant messages
Two bugs that together caused an infinite SKIP loop after LoopResumeError: 1. loop.py _run_step: set step_forward=False in the `else: raise` branch so that when LoopResumeError propagates from _propose (LLMUnavailableError), step_idx stays at 0. Previously it advanced to 1, leaving loops permanently stuck with missing direct_exp_gen result on next resume. 2. base.py _create_chat_completion_auto_continue: when finish_reason=="length" triggers a continuation retry, merge into the previous assistant message instead of appending a second consecutive one. llama-server returns 400 on two consecutive assistant messages, which caused LLMUnavailableError -> LoopResumeError cascade. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -270,6 +270,11 @@ class LoopBase:
|
||||
msg = "We have reset the loop instance, stop all the routines and resume."
|
||||
raise self.LoopResumeError(msg) from e
|
||||
else:
|
||||
# Do NOT advance step_idx for unhandled exceptions (e.g. LoopResumeError
|
||||
# propagating from _propose). Keeping step_idx at the current step lets
|
||||
# kickoff_loop retry step 0 on the next resume instead of permanently
|
||||
# corrupting the loop with a missing direct_exp_gen result.
|
||||
step_forward = False
|
||||
raise # re-raise unhandled exceptions
|
||||
finally:
|
||||
# No matter the execution succeed or not, we have to finish the following steps
|
||||
|
||||
Reference in New Issue
Block a user