Skip to content

fix(adapter-anthropic): flush trailing SSE buffer on stream close#7

Open
DizzyMii wants to merge 1 commit into
mainfrom
fix/anthropic-sse-flush
Open

fix(adapter-anthropic): flush trailing SSE buffer on stream close#7
DizzyMii wants to merge 1 commit into
mainfrom
fix/anthropic-sse-flush

Conversation

@DizzyMii
Copy link
Copy Markdown
Owner

@
The Anthropic adapters parseSSE only emitted events split on \n\n, keeping the trailing fragment in a buffer between reads. When the stream closed, that buffer was never flushed — so a final event (e.g. message_stop) not terminated by a blank line was silently dropped.

Because the terminal usage and end chunks are emitted only on message_stop, dropping it leaves the stream without a proper completion signal. The OpenAI-compat adapter already flushes its buffer on close; this brings the Anthropic adapter in line.

Verification

  • pnpm --filter @flint/adapter-anthropic typecheck
  • pnpm --filter @flint/adapter-anthropic test ✓ (26 tests, incl. a new case where the final message_stop has no trailing blank line and the end chunk must still be emitted)
  • biome lint clean on changed files
    @

parseSSE only emitted events split on a blank line, so a final event such as
message_stop that is not followed by a trailing "\n\n" was left in the
buffer and dropped, so the terminal usage/end chunks were never yielded. Flush
the remaining buffer after the read loop, matching the OpenAI-compat adapter.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant