Codex App shows raw ** for assistant-generated bold text at CJK punctuation boundaries

Open
#37,531 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
55/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
markdown
Domain
localization

Research direction

No file or test is named. Reproduce the exact CJK Markdown example after streaming, then trace the output-generation and final-rendering layers mentioned in the report. Done means the assistant-generated bold text renders correctly in the Codex App without exposing raw ** delimiters.

Written by the indexing model from the issue text.

Description

app bug
What version of the Codex App are you using?

26.730.61639 (6234)

What platform is your computer?

macOS 26.5.1 (Build 25F80), Apple Silicon / arm64

What issue are you seeing?

Codex sometimes generates bold Markdown that is invalid at CJK punctuation
boundaries, causing the final response to display the literal ** delimiters.

Observed assistant output:

**别再点 Install,忽略它,等苹果补包。**不是你的操作问题,也没必要现在折腾 Clash 或重装系统。

After streaming finishes, the Codex App displays the ** characters literally
instead of rendering the intended text in bold.

This behavior is explainable under CommonMark: the closing ** is preceded by
Unicode punctuation () and immediately followed by a CJK character (),
so it is not considered a valid right-flanking closing delimiter.

The parser may therefore be standards-compliant, but this remains a user-facing
Codex issue because the assistant generates the Markdown and the Codex App
renders it in the same surface.

What steps can reproduce the bug?
  1. Ask Codex to answer in Chinese with an emphasized sentence followed
    immediately by additional Chinese text.

  2. Have the assistant produce this exact Markdown:

    **加粗内容。**后续中文内容
    
  3. Wait until streaming has completed.

  4. Observe that the raw ** delimiters remain visible.

What is the expected behavior?

Codex-generated responses should use boundary-safe Markdown and should not expose
formatting delimiters to the user.

For example, Codex could generate either:

**加粗内容**。后续中文内容

or:

**加粗内容。** 后续中文内容

Possible fixes could be applied at the output-generation or final-rendering
layer. The important user-facing requirement is that assistant-generated
Markdown renders correctly for CJK prose.

Additional information
  • This is not just a transient streaming state; the raw delimiters remain after
    the response is complete.
  • Other bold spans such as **Not Now**, render correctly because their
    delimiter boundaries are valid.
  • I searched existing openai/codex issues using CJK, Chinese, Markdown,
    emphasis, bold, and asterisk-related queries and did not find a matching
    report.
Dominant language
Rust
Stars
125k
Forks
19.5k
Avg merge
1m
Merged PRs (30d)
1k

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from openai/codex

All issues in openai/codex

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.