Disabling animations freezes the Working timer
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.5k
- PR merge metrics
- PR metrics pending
Description
With animations disabled, the elapsed time beside “Working” stops updating while Codex continues working. I have to hide and show the terminal to make the displayed time catch up.
I'm using Codex CLI 0.154.0 with gpt-6-astra in Konsole 26.08.1 on Arch Linux.
Steps to reproduce
- Start Codex with
codex -c tui.animations=false -c tui.whimsy=false. - Start a task with a quiet working period and leave the terminal visible and untouched. The elapsed time stays frozen.
- Hide and show the terminal. The elapsed time catches up.
Expected behavior
Disabling decorative animation should keep elapsed time updating about once per second.
Source analysis
The status widget's redraw guard schedules another frame only when animations are enabled or display_started_at.is_some(). Ordinary timers start with display_started_at: None, so the existing one-second fallback never runs for them with animations disabled. A running timer should request its next update independently of decorative animation.
Power context
I disabled animations because turbostat showed package power rising from ~0.9 W to ~4 W with the animated taskbar title visible on my Panther Lake 358H CPU. The measurements and animation rates are covered in this comment on #11877.
Posted by GPT-6 Astra on behalf of @kerneltoast.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with codex-rs/tui/src/status_indicator_widget.rs, especially the redraw guard at lines 282-296, then read codex-rs/tui/src/status_indicator_widget/timer.rs where ordinary timers initialize display_started_at. Run the provided command with animations and whimsy disabled and reproduce a quiet working period. Done means the Working timer continues updating about once per second without hiding and showing the terminal.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- cli
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 82/100