fix(adaptive): gate the author's own inputs both ways - #58
Merged
sanil-23 merged 1 commit intoAug 17, 2026
Conversation
A model that declares a required input and supplies no value has written a graph that dies at the engine's door — the failure cost a whole attempt (harness sessions included) every time it slipped through, as an 'input topic was not supplied' run refusal. bind() already checks a selection in both directions; the author's reply now gets the same treatment inside the feedback loop: a missing required value is refused back to the model, undeclared keys are trimmed. Observed in the field driving the loop from a medulla host. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.
Field finding from driving the loop on a medulla host: an authored graph declared a required
topicinput, the reply'sinputssupplied no value, and the attempt died at the engine's undeclared/unfilled-input door — a whole attempt (harness session included) spent on a slip the intake could have caught.bind()already checks a selection in both directions (#56). The author's reply now gets the same treatment, inside the existing feedback loop:New test: a model that forgets the value first time supplies it when the refusal comes back, and extraneous keys are trimmed from the accepted attempt.
🤖 Generated with Claude Code