Skip to content

Conversation

astralord
Copy link
Contributor

@astralord astralord commented Oct 6, 2025

Hi team!

Purpose

We've noticed that that the recent PR doesn't fully fix gpt-oss + streaming + speculative-decoding issue, for example generated messages end abruptly. This happens because multiple tokens can relate to different channels (e.g. <final><analysis>None) in one decoding stage. This PR handles it.

Test Plan

Test Result

@mergify mergify bot added frontend gpt-oss Related to GPT-OSS models labels Oct 6, 2025
Copy link

mergify bot commented Oct 6, 2025

This pull request has merge conflicts that must be resolved before it can be
merged. Please rebase the PR, @astralord.

https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request effectively addresses a bug in handling multiple channels for gpt-oss with speculative decoding, particularly in streaming mode. The changes introduce a more robust mechanism by tracking the state for each token, grouping them by channel and recipient, and then constructing the delta messages. This ensures that channel switches within a single decoding step are handled correctly. The related logging improvements are also a good addition, providing more comprehensive output. I have one suggestion to improve code readability and reduce the risk of future bugs by removing a magic number.

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

@astralord astralord force-pushed the fix-gpt-oss-with-speculative-decoding-handle-multiple-channels branch 2 times, most recently from a953d9c to ede4584 Compare October 6, 2025 11:37
@mergify mergify bot removed the needs-rebase label Oct 6, 2025
@astralord astralord force-pushed the fix-gpt-oss-with-speculative-decoding-handle-multiple-channels branch from 704867c to 3c1bf55 Compare October 6, 2025 11:40
@astralord
Copy link
Contributor Author

@codex review

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

@astralord astralord force-pushed the fix-gpt-oss-with-speculative-decoding-handle-multiple-channels branch from 3c1bf55 to e1f14dd Compare October 6, 2025 11:55
@astralord
Copy link
Contributor Author

@codex review

Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

@astralord astralord force-pushed the fix-gpt-oss-with-speculative-decoding-handle-multiple-channels branch from e4f6360 to 3ad1d7b Compare October 6, 2025 12:19
@astralord
Copy link
Contributor Author

@codex review

Copy link

Codex Review: Didn't find any major issues. You're on a roll.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

@astralord
Copy link
Contributor Author

/gemini review

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request provides a much-needed fix for handling multiple channels in gpt-oss streaming with speculative decoding. The previous implementation had a flaw where it only considered the state after the last token in a chunk, which could lead to data loss or incorrect message construction if the channel or recipient changed within the chunk.

The new approach is robust and correctly handles this complex scenario. Key improvements include:

  • Tracking the state (channel, recipient, delta) for each individual token.
  • Grouping consecutive tokens with the same state for efficient processing.
  • Refactoring the logic to build a single, comprehensive DeltaMessage that can contain content, reasoning, and tool calls from a single chunk.
  • Improving the indexing logic for tool calls, correctly handling calls that span across multiple streamed chunks.
  • Enhancing logging to be more comprehensive.

The changes significantly increase the correctness and reliability of streaming for gpt-oss models. The implementation is well-structured, and the added complexity is justified by the problem it solves. I don't see any issues with the proposed changes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
frontend gpt-oss Related to GPT-OSS models
Projects
Status: To Triage
Development

Successfully merging this pull request may close these issues.

1 participant