fix(providers): carry incomplete UTF-8 across OpenRouter stream chunks - #236
Merged
Merged
Conversation
…oss chunks chat_stream decoded each network chunk independently with std::str::from_utf8(&bytes)?, which errors and ends the stream whenever a multi-byte UTF-8 codepoint (emoji, CJK, accented Latin, em-dash) straddles a chunk boundary. Carry incomplete trailing bytes forward in a pending buffer and decode only the longest valid UTF-8 prefix per chunk, flushing any leftover tail lossily at stream end.
PR intake checks found warnings (non-blocking)Fast safe checks found advisory issues. CI lint/test/build gates still enforce merge quality.
Action items:
Run logs: https://github.com/RantAI-dev/RantAIClaw/actions/runs/29653860460 Detected blocking line issues (sample):
Detected advisory line issues (sample):
|
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.
Part of the
/improveadvisor batch (planplans/004-*.md, 2026-07-18).Follow-up: same-class bug in compatible.rs is fixed by the #23 PR.
Verification: scoped tests + fmt + clippy-delta clean per-branch; integrated locally with the other branches (
integration/all) — compiles and full lib tests green except two pre-existing non-hermetic tests unrelated to this change.Rollback: revert this PR.