Decision change during human in loop - #139
Open
ArnabChatterjee20k wants to merge 5 commits into
Open
Conversation
Greptile SummaryThe PR adds reply-thread context to intent classification so follow-up decisions can account for earlier Claudear responses while excluding user-authored parent messages from routing prompts.
Confidence Score: 5/5The PR appears safe to merge because no blocking failure remains within the follow-up review scope. No blocking failure remains. Important Files Changed
Reviews (6): Last reviewed commit: "fix(engine): exclude untrusted user turn..." | Re-trigger Greptile |
ArnabChatterjee20k
force-pushed
the
decision-change-during-human-in-loop
branch
from
August 11, 2026 07:31
bf14639 to
651d1fb
Compare
…unction Callable wherever a Config and tracker are available, so intent classification can reach the reply-chain transcript before an IssueProcessor exists. The method now delegates to it.
QA-vs-fix routing judged each message in isolation, so a follow-up in an
ongoing Discord thread ("yes create a pr now") kept classifying as a
question and stayed pinned to the read-only QA lane with no way to
escalate.
classify_intent now takes the prior conversation; both backends frame it
as context and classify the latest message. The watcher's poll-time loop
and the action pipeline assemble the reply chain and pass it in.
Reply-chain text is arbitrary Discord content and now steers QA-vs-fix routing. A crafted parent message could inject local-model chat control tokens to forge an assistant turn and force fix/PR handling. Strip any <|...|> sequence before embedding and frame the transcript as untrusted context the model must not take instructions from.
Sanitizing control tokens still left natural-language injection: a parent message telling the model to classify the next message as a fix was embedded verbatim and could escalate a read-only question into automated fix/PR handling. Split the reply-chain transcript by trust. Classification now assembles a ClaudearOnly transcript (our own answers, which we authored), while answer grounding keeps the full transcript. The walk still traverses user turns so upstream Claudear answers stay reachable, but their text never reaches the routing prompt.
ArnabChatterjee20k
force-pushed
the
decision-change-during-human-in-loop
branch
from
August 16, 2026 10:12
651d1fb to
db76ec1
Compare
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 does this PR do?
(Provide a description of what this PR does.)
Test Plan
(Write your test plan here. If you changed any code, please provide us with clear instructions on how you verified your changes work.)
Related PRs and Issues
(If this PR is related to any other PR or resolves any issue or related to any issue link all related PR and issues here.)
Have you read the Contributing Guidelines on issues?
(Write your answer here.)