🏄♂️ fix: Handle SSE Stream Edge Case #8556
Merged
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.
Summary
I refactored the draft auto-save and restore logic to use dedicated utility functions, ensured proper draft encoding/decoding, and fixed a blank page issue when an SSE stream is cancelled before a response is received.
encodeBase64
,decodeBase64
, andclearDraft
into a newdrafts.ts
utility file for modularity and reuseuseAutoSave
hook to utilize the new draft utility functions, reducing redundant code and improving reliabilitysetDraft
andgetDraft
helpers; all draft-related logic and storage centralized for claritygetDraft
to always decode stored draft values before returning them to avoid showing invalid base64 data in the input fielduseEventHandlers
where stream cancellation before any response would previously result in a blank conversation page, now preventing navigation and properly restoring any previous or empty draft stateChange Type
Testing
I manually tested the following scenarios in the LibreChat UI:
Test Configuration:
Checklist