mirror of
https://github.com/openai/codex.git
synced 2026-10-29 00:06:55 +00:00
## Summary - rename the rollout-budget exhaustion error from `RolloutBudgetExceeded` to `SessionBudgetExceeded` - expose the matching app-server v2 wire value as `sessionBudgetExceeded` - regenerate JSON/TypeScript schema fixtures and update the app-server docs and focused tests This is a naming-only follow-up to #29715 based on [Pavel's review suggestion](https://github.com/openai/codex/pull/29715#discussion_r3463183480). Runtime behavior is unchanged. ## Tests - `just test -p codex-core rollout_budget` - `just test -p codex-app-server-protocol` - `just fmt` - `just write-app-server-schema`
38 lines
1.2 KiB
Rust
38 lines
1.2 KiB
Rust
use super::session::Session;
|
|
use super::turn_context::TurnContext;
|
|
use crate::context::ContextualUserFragment;
|
|
use codex_protocol::error::CodexErr;
|
|
use codex_protocol::error::Result as CodexResult;
|
|
use codex_protocol::protocol::TokenUsage;
|
|
|
|
pub(super) async fn maybe_record_reminder(
|
|
sess: &Session,
|
|
turn_context: &TurnContext,
|
|
window_id: &str,
|
|
) {
|
|
let budget = sess.services.agent_control.rollout_budget();
|
|
let Some(reminder) = budget.pending_reminder(sess.thread_id(), window_id) else {
|
|
return;
|
|
};
|
|
let response_item = ContextualUserFragment::into(crate::context::RolloutBudgetContext {
|
|
remaining_tokens: reminder.remaining_tokens,
|
|
});
|
|
sess.record_conversation_items(turn_context, std::slice::from_ref(&response_item))
|
|
.await;
|
|
budget.mark_reminder_delivered(sess.thread_id(), window_id, reminder);
|
|
}
|
|
|
|
impl Session {
|
|
pub(crate) fn record_rollout_budget_usage(&self, usage: &TokenUsage) -> CodexResult<()> {
|
|
if self
|
|
.services
|
|
.agent_control
|
|
.rollout_budget()
|
|
.record_usage(usage)
|
|
{
|
|
return Err(CodexErr::SessionBudgetExceeded);
|
|
}
|
|
Ok(())
|
|
}
|
|
}
|