Todo/update_plan display treats separator as Markdown heading

Open 💬 0 comments Opened Jun 6, 2026 by HIDEPON-UMG

Component

Codex app / CLI todo plan UI (update_plan rendering), Windows

Version

codex-cli 0.137.0-alpha.4

Summary

When a todo/update-plan display includes a plain-text purpose line immediately followed by a hyphen separator, the UI/Markdown rendering turns the purpose text into a large heading and the separator line disappears. This makes it hard to keep a compact Claude Code-like todo display with a visible divider between the purpose and todo items.

Steps to reproduce

  1. In a Codex thread, update the plan or render a todo block shaped like:

```text
Update Todos

◎ 目的
Fix todo display formatting
-------------------------------------------------
☑ Confirm current behavior
◉ Update docs/rules
☐ Verify
```

  1. Observe the rendered todo/status area.

Expected behavior

The text should remain compact and render as ordinary text, with the separator visible:

Update Todos

◎ 目的
Fix todo display formatting
-------------------------------------------------
☑ Confirm current behavior
◉ Update docs/rules
☐ Verify

Actual behavior

The purpose section is rendered as a large heading because the following hyphen line is interpreted as Markdown setext heading syntax, and the separator line is not shown as a divider.

Why this matters

For long-running agent tasks, users need a readable progress block that does not get promoted into oversized headings and does not lose the visual divider between the goal/purpose and todo list.

Possible fix

Escape or otherwise neutralize setext-heading interpretation in todo/status UI rendering, or render update-plan/todo content as structured text instead of passing it through Markdown rules that promote preceding lines to headings.

View original on GitHub ↗