Todo/update_plan display treats separator as Markdown heading
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
- 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
```
- 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.