fix: fit measured output reserves - #44
Merged
Merged
Conversation
Generated with Amplifier Co-Authored-By: Amplifier <240397093+microsoft-amplifier@users.noreply.github.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.
What changed
Add an optional
fit_output(view, attempt)callback to the measured request-view path. After the existing eight legal reduction rungs still leave a native-measured request above its hard allowance, the request owner may return a newly counted output-reserve candidate. Context validates the exact counted envelope, reportsreduced_output, and preserves staged commit/rollback behavior.Why
Some provider budgets fit when the output reserve is reduced, without dropping required input. This provides that bounded negotiation while retaining existing protection and compatibility behavior.
Verification
Breaking changes
None. The callback is optional; callers without it retain the existing behavior. No defaults, core types, or required/tool protection rules changed.
The companion Loop change will be published separately after this dependency lands.