Limit reset time format not consistent
Open 💬 2 comments Opened Jun 16, 2026 by Richienb
What version of Codex CLI is running?
0.140.0
What subscription do you have?
Plus
Which model were you using?
_No response_
What platform is your computer?
_No response_
What terminal emulator and version are you using (if applicable)?
_No response_
Codex doctor report
What issue are you seeing?
When I run /status, for the 5-hour and weekly limits, the time they will reset is displayed as 24-hour time:
│ 5h limit: [░░░░░░░░░░░░░░░░░░░░] 0% left (resets 16:10) │
│ Weekly limit: [████░░░░░░░░░░░░░░░░] 20% left (resets 02:12 on 22 Jun) │
But, when I hit my usage limit, I get an error that uses 12-hour time:
■ You've hit your usage limit. Upgrade to Pro (https://chatgpt.com/explore/pro), visit https://chatgpt.com/codex/settings/usage to purchase more credits or try again at 4:10 PM.
What steps can reproduce the bug?
See above
What is the expected behavior?
Both messages should use the same error format.
It seems that the usage limit error is obtained from an API, which might be difficult to change, so that means the /status output should be changed to use 12-hour time.
Additional information
_No response_
2 Comments
I took a look at this and the mismatch appears to be local to the status rendering path.
Findings:
/statusrate-limit reset labels are formatted throughcodex-rs/tui/src/status/helpers.rs::format_reset_timestamp.dt.format("%H:%M"), which explains the 24-hour output such as16:10and02:12 on 22 Jun.codex-rs/tui/src/status/rate_limits.rsfor both normal rate-limit windows and spend-control/monthly limit reset labels.%-I:%M %pincodex-rs/protocol/src/error.rs::format_retry_timestamp, which explains the4:10 PMstyle in the error message.A minimal fix seems to be:
I also checked the expected behavior locally with focused tests around the examples from this issue:
2026-06-16 16:10->4:10 PM2026-06-22 02:12->2:12 AM on 22 JunThe relevant snapshots under
codex-rs/tui/src/status/snapshots/need to be updated as part of the final change, since several expected/statusrows currently contain 24-hour reset labels. I verified that the affected status snapshots update to the 12-hour format, including narrow/wrapped rows.Local validation in WSL/Ubuntu:
cargo fmt --check --package codex-tuipassedcargo test -p codex-tui format_reset_timestamp --libpassed: 2 tests passedcargo test -p codex-tui status_snapshot --libpassed after refreshing the affected status snapshots: 24 tests passedgit diff --checkpassedIf this direction matches the intended UI behavior, this should be a very small change: update the helper, add the two focused unit tests above, and refresh the status snapshots.
Additional current reproduction with Codex CLI 0.147.0:
My terminal locale explicitly uses 12-hour time:
Despite that, /status formats the reset time as 13:31. The formatter should respect LC_TIME rather than hard-coding either 12-hour or 24-hour output.