fix(markdown): settle summary tasks before propagating errors - #548
Open
rudycelekli wants to merge 1 commit into
Open
rudycelekli wants to merge 1 commit into
rudycelekli wants to merge 1 commit into
Conversation
Signed-off-by: Rudy Celekli <47457359+rudycelekli@users.noreply.github.com>
This branch has not been deployed
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.
When
await md_to_tree(..., if_add_node_summary="yes")receives a fatal error from one summary request,asyncio.gatherraises while sibling requests remain active. In a persistent event loop, the caller has received an indexing failure but its other provider connections remain open.Track only this operation's summary tasks. On failure or cancellation, cancel and await them before re-raising the original exception. Successful summaries still run concurrently.
Validation uses the public async API, real Markdown parsing/token counting, and actual LiteLLM/OpenAI-compatible HTTP requests to a temporary loopback provider. The fatal HTTP404 cleanup regression failed before the fix; success concurrency, caller cancellation, and timeout controls pass. Removing cleanup makes the fatal-error regression fail again. The focused Markdown file passed 7 tests; the full local Python3.12/PDFium5 suite passed 589 tests with 218 skips. Optional agent frameworks were absent. The hosted supported matrix remains required.
AI assistance was used to implement and verify this change.