Repository navigation
Preserve safe manager failure details and original cause - #9
Merged
Merged
Conversation
Brian Krabach (bkrabach)
marked this pull request as ready for review
September 25, 2026 12:58
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.
Manager turn failures currently discard their cause, publish a provider error even for a local context check, and end with a generic replay warning. Preserve a bounded error category, stage, safe message, retryability, input/generation identity, and explicit non-rollback/non-replay semantics. Keep the original exception as the private cause; do not publish SDK bodies, prompts, file paths, or credentials.
The base engine remains responsible for provider events. Local context failures are identified from their originating module, not merely from a missing provider name. Ordinary finite execution and cancellation behavior are unchanged.
Validation: complete loop-live suite, 81 passed, 4 skipped, using Core 2.0.1, loop-streaming 4cc86dd4 and context-simple 7b100715. New coverage reproduces a real context-simple budget failure, checks safe metadata and cause preservation, verifies input correlation, and rejects false provider/success events or replay. No paid provider calls or live voice validation.
Class review checked current catalog basic ae0954cc, streaming 4cc86dd4, events 6b2f9d54, Microsoft live 1d7be38, and the distinct bkrabach live fork cbc85d2. The fork has the same manager boundary and receives a separate backport. Other loops have no live manager wrapper; their broader legacy error/event behavior is outside this change.