fix(core): always append user message in BuildSession#2130
Open
xb17 wants to merge 1 commit into
Open
Conversation
Chat-completion APIs (OpenAI, llama.cpp, and others) require at least one user-role message in every request. BuildSession was setting inputUsed=true when a pattern was loaded, which suppressed the user turn when the pattern embedded input into the system prompt. This produced a system-only session that caused silent hangs on strict servers like llama.cpp. Remove the inputUsed flag entirely and always append the user message.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Removes the
inputUsedflag fromBuildSessionso that the user message is always appended to the session, even when a pattern is loaded.Why it matters
Chat-completion APIs — including OpenAI, llama.cpp, and any other strict implementation — require at least one
user-role message in every request. The spec does not allow a session consisting only of asystemmessage.Current behaviour: when a pattern is selected,
BuildSessionsetsinputUsed = trueand then skips appending the user message via!inputUsed. The result is a system-only session that causes silent hangs on llama.cpp and will fail on other strict servers.Fixed behaviour:
inputUsedis removed entirely. The user message is always appended. This matches what every compliant chat-completion server expects.Change
internal/core/chatter.go— removeinputUsedvariable and simplify the append condition.Note:
TestChatter_BuildSession_SeparatesSystemSectionsfails in this environment due to a missingtest-strategyfile — this failure is pre-existing onmainand unrelated to this change.