[codex] Add Codex pace headroom hint#1789
Conversation
|
Codex review: needs real behavior proof before merge. Reviewed July 3, 2026, 4:22 PM ET / 20:22 UTC. Summary Reproducibility: not applicable. this is a feature PR, not a bug with a failing current-main reproduction path. Source and diff inspection show current main lacks the headroom hint and the branch adds it through pace text rendering. Review metrics: 3 noteworthy metrics.
Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Proof guidance:
Mantis proof suggestion Risk before merge
Maintainer options:
Next step before merge
Security Review findings
Review detailsBest possible solution: Land the focused Codex-only Do we have a high-confidence way to reproduce the issue? Not applicable: this is a feature PR, not a bug with a failing current-main reproduction path. Source and diff inspection show current main lacks the headroom hint and the branch adds it through pace text rendering. Is this the best way to solve the issue? Unclear until maintainer sign-off: the latest implementation is narrower than the original proposal and addresses the earlier scope concern, but the user-facing headroom label still needs exact-head proof and acceptance. Full review comments:
Overall correctness: patch is correct AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 692da32ecbbb. Label changesLabel changes:
Label justifications:
Evidence reviewedWhat I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
|
Maintainer review against current The pace implementation is internally coherent, and the focused suites are green (
Recommendation: keep the historical lookback setting and pace headroom work together, split the Ollama diagnostic, then request the copy/threshold decision with refreshed screenshots. No merge from this review. |
|
Maintainer preparation is complete on exact head d6a732c.
The three-state comparison below is a redacted synthetic UsageMenuCardView fixture rendered from the exact branch. It is not real-account data; it proves copy, threshold, and layout for ahead/on-track/behind states.
The debug bundle requested macOS app-data access while attempting live-account rendering. I did not grant that persistent permission, so I am not claiming live-account bar proof. Recommendation: keep the conservative model and current Try 1.5x! copy for one release. If the tone feels too emphatic, change only the label to 1.5x headroom; the calculation and threshold no longer need a product decision. Leaving this draft unmerged for that copy/tone choice. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d6a732cb6f
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| .foregroundStyle(.tertiary) | ||
| } | ||
| Spacer(minLength: 12) | ||
| Stepper(value: self.$settings.historicalPaceMinimumWeeks, in: 2...8, step: 1) { |
There was a problem hiding this comment.
Don't offer an unreachable 8-week minimum
When the user sets this to 8 after roughly the first day of the current weekly window, historical pace effectively never activates: the history store retains only 56 days of samples, while isCompleteWeek requires coverage in the first 24h of each completed week, so the 8th prior complete week loses its start-boundary samples before it can be counted. With minimumCompleteWeeks == 8, evaluation falls back to linear despite the UI accepting the value; either retain enough boundary history or cap this control at 7.
Useful? React with 👍 / 👎.
# Conflicts: # Sources/CodexBar/PreferencesAdvancedPane.swift
Co-authored-by: astuteprogrammer <astuteprogrammer@gmail.com>
|
Reworked and refreshed on exact head Changes:
Proof:
|


Owner decision — product-tone hold
Decision requested: Should the menu proactively tell a user
Try 1.5x!when the conservative headroom model says their remaining quota can support it, and should the minimum historical-week threshold be user-configurable in Advanced settings?Tradeoff: The wording turns safe headroom into an immediate, useful action and the setting exposes a real confidence threshold. The copy can feel prescriptive or celebratory in a utility menu, while the setting adds another expert-facing control.
Recommendation: Land as written with the conservative gate and current copy for one release. Keep this PR unmerged only for the owner's tone/settings acceptance and exact-head CI; if the tone is declined, change the copy to
1.5x headroomwithout changing the model.Summary
Try 1.5x!when Codex usage has more than 15% reserve and remaining quota supports at least 1.5x the projected remaining burn.Behavior and tradeoff
The hint appears only when the quota is projected to last until reset, reserve exceeds 15%, and the safe remaining-burn multiplier is at least 1.5. Linear and workday pace use remaining capacity versus usage projected across the remaining window; historical pace uses remaining capacity versus the remaining expected historical curve.
The current
Try 1.5x!wording is intentionally prominent and actionable, but it is a product-tone choice. Recommendation: keep the conservative gate and use the current copy for one release; if it feels too celebratory in the menu, change only the copy to1.5x headroomwithout changing the model.Maintainer preparation
Validation
make checkmake test(43 shards)CODEXBAR_SIGNING=adhoc ./Scripts/package_app.sh debugThe debug bundle requested macOS app-data access during live-account rendering. That permission was not granted; packaged UI proof is limited to the setting and synthetic redacted card states.