CLI: weekly rate-limit status-line item disappears after /resume
What version of Codex CLI is running?
codex-cli 0.146.0
What subscription do you have?
ChatGPT Plus
Which model were you using?
gpt-5.6-sol
What platform is your computer?
Darwin 25.6.0 arm64 arm (macOS 26.6)
What terminal emulator and version are you using (if applicable)?
cmux 0.64.20 (100) with Ghostty 1.3.2-HEAD-+bb30526
Codex doctor report
The full report contains local absolute paths and rollout identifiers, so this is the relevant redacted subset:
{
"schemaVersion": 1,
"overallStatus": "warning",
"codexVersion": "0.146.0",
"auth": {
"status": "ok",
"mode": "chatgpt"
},
"config": {
"status": "ok",
"model": "gpt-5.6-sol"
},
"installation": {
"status": "ok",
"method": "standalone",
"platform": "macos-aarch64"
},
"network": {
"providerReachability": "ok",
"websocketReachability": "ok"
},
"terminal": {
"status": "ok",
"name": "Ghostty",
"version": "1.3.2-HEAD-+bb30526"
},
"updates": {
"status": "ok",
"latestVersion": "0.146.0"
}
}
The unrelated warning is a local rollout-file/state-DB parity warning.
What issue are you seeing?
The weekly-limit item is visible in the TUI footer for a newly started session, but disappears immediately after using /resume to switch to a saved session.
The configured status line is:
[tui]
status_line = [
"git-branch",
"model-with-reasoning",
"context-used",
"five-hour-limit",
"weekly-limit",
]
After resume, the non-rate-limit fields remain visible, for example:
cm2-104 · gpt-5.6-sol xhigh · Context 21% used
The expected weekly NN% left segment is missing.
What steps can reproduce the bug?
- Sign in with ChatGPT authentication.
- Configure
tui.status_linewithweekly-limitas shown above. - Start a new Codex CLI session and confirm that
weekly NN% leftappears in the footer. - Run
/resume. - Select a different saved session.
- Observe the footer after the saved transcript is loaded.
What is the expected behavior?
The account-scoped weekly rate-limit item should remain visible, or be fetched again immediately, after the resumed session replaces the current session.
Additional information
Code inspection on current main suggests the rate-limit snapshot is scoped to the current ChatWidget:
- Startup explicitly performs a non-blocking account rate-limit prefetch in
app.rs. - A successful
/resumereplaces the widget insession_lifecycle.rs, but that success path does not trigger another account rate-limit refresh.
This suggests the replacement widget starts without the snapshot that populated weekly-limit. A possible fix is to trigger the same non-blocking prefetch after the replacement widget is attached, or keep account-scoped rate-limit state outside the per-session widget.