Skip to content

[BUG] Inconsistent handling of reasoning tags (<think>, <thinking>, <reasoning>, <thought>) #8785

@jwadow

Description

@jwadow

Problem (one or two sentences)

Roo Code processes reasoning tags inconsistently. The <think> tag renders correctly as a collapsible grey reasoning block, <thinking> has its tags stripped but text remains visible, and <reasoning>/<thought> are not recognized at all. This inconsistency breaks proper reasoning display.

Context (who is affected and when)

Affects users running models through different OpenAI-compatible endpoints, where the reasoning tag name may vary (<think>, <thinking>, <reasoning>, <thought>). Roo Code’s rigid handling reduces compatibility and flexibility with providers that output alternative reasoning tag formats.

This issue is related to a previously closed discussion: #7615

The collaborator incorrectly attributed the behavior to the "OpenAI reasoning chunk format" rather than tag handling in "content". I left a detailed follow-up comment explaining that Roo Code currently processes only <think> blocks, while <thinking>, <reasoning>, and <thought> are ignored or stripped. The issue has remained unresolved for over a month.
Expected resolution: unify tag handling so that all four tag variants render identically to in the grey collapsible reasoning block.

<think> works correctly
Image

<thinking> tags removed, text visible
Image

<reasoning> not formatted
Image

<thought> not formatted
Image

Reproduction steps

  1. Use any provider that outputs reasoning wrapped in tags: <think>, <thinking>, <reasoning>, or <thought>.
  2. Observe Roo Code's display of each case.
  3. <think> renders correctly as a grey collapsible reasoning block.
  4. <thinking> has its tags stripped and content shown as normal text.
  5. <reasoning> and <thought> are not formatted or recognized at all.

Expected result

All four reasoning tag variants (, , , ) should be treated consistently and rendered as the same collapsible grey reasoning block.

Actual result

Only is formatted correctly. The other three tags are either stripped or ignored entirely.

Variations tried (optional)

Tested multiple models, providers, and output formats. Behavior consistent across all. No difference depending on provider.

App Version

3.28.18

API Provider (optional)

None

Model Used (optional)

No response

Roo Code Task Links (optional)

No response

Relevant logs or errors (optional)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Issue/PR - TriageNew issue. Needs quick review to confirm validity and assign labels.bugSomething isn't working

    Type

    No type

    Projects

    Status

    Triage

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions