Skip to content

fix(bridge): signed Claude/Kiro thinking still scrolls raw CoT through the desktop thinking band #4303

Description

@RobinBially

Area

Streaming

What are you trying to accomplish?

Get the same reasoning-display parity for anthropic/kiro signed extended thinking that PR #4301 established for raw reasoning: visible-mode thinking should not present itself to Codex as if it were an OpenAI-authored reasoning summary.

What prevents this today?

PR #4301 moved raw reasoning (reasoning_raw_delta: openai-chat reasoning_content, Kiro tags) onto the Responses content channel, because the Codex desktop thinking band renders the summary channel and routed providers have no real summary — the band scrolled raw CoT instead.

The signed path was deliberately left out to keep that PR scoped. src/bridge.ts still routes visible-mode thinking_delta (Anthropic extended thinking with thinking_signature, Kiro signed blocks) through response.reasoning_summary_text.delta with a final summary: [{type: "summary_text", text}] item. The text there is Anthropic's raw extended-thinking output, not a summary, so the same band behaviour the PR fixes still applies to Claude/Kiro routes in visible mode. The signature/env round-trip makes this larger than a channel rename: the final item must keep encrypted_content round-tripping for replay, and hidden mode already has its own envelope contract.

What should OpenCodex do?

Visible-mode signed thinking streams response.reasoning_text.delta and closes with content: [{type: "reasoning_text", text}] plus an empty summary — the same native shape as gpt-oss and as #4301 — while the signature envelope and hideThinkingSummary behaviour stay unchanged.

Example usage or interface

Before (routed Claude, visible mode):

event: response.reasoning_summary_text.delta
data: {"type":"response.reasoning_summary_text.delta","summary_index":0,"delta":"<raw extended thinking>"}

After:

event: response.reasoning_text.delta
data: {"type":"response.reasoning_text.delta","content_index":0,"delta":"<raw extended thinking>"}

Alternatives or workarounds

Keep the current summary-channel wiring for signed thinking (status quo), or store only the signature and drop the visible text. Both are worse: the first keeps the flicker, the second loses an opt-in trace the CLI can show behind show_raw_agent_reasoning.

Additional context

Checks

  • I searched existing issues and documentation.
  • This request describes a concrete OpenCodex workflow rather than merely naming a desired technology.
  • I removed secrets and personal data.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requeststreamingSSE, WebSocket, terminal stream frames

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions