mirror of
https://github.com/openai/codex.git
synced 2026-11-04 00:24:43 +00:00
[core] debounce current-time reminders by elapsed time (#29659)
## Summary - rename `reminder_interval_model_requests` to `reminder_interval_seconds` - read the configured time provider before every model request and inject a reminder only after the configured number of seconds has elapsed - preserve immediate first delivery and forced delivery after compaction changes the context window ## Tests - `just test -p codex-core current_time_reminder`
This commit is contained in:
1 parent
02c326f646
commit
9fe689783d
9 files changed
+60
-38
No files matched your search
@@ -620,11 +620,11 @@ current_time_reminder = true
|
||||
r#"
|
||||
[features.current_time_reminder]
|
||||
enabled = true
|
||||
reminder_interval_model_requests = 4
|
||||
reminder_interval_seconds = 4
|
||||
clock_source = "external"
|
||||
"#,
|
||||
CurrentTimeReminderConfig {
|
||||
reminder_interval_model_requests: 4,
|
||||
reminder_interval_seconds: 4,
|
||||
clock_source: CurrentTimeSource::External,
|
||||
},
|
||||
),
|
||||
@@ -642,7 +642,7 @@ async fn load_config_rejects_zero_current_time_reminder_interval() -> std::io::R
|
||||
r#"
|
||||
[features.current_time_reminder]
|
||||
enabled = true
|
||||
reminder_interval_model_requests = 0
|
||||
reminder_interval_seconds = 0
|
||||
"#,
|
||||
)
|
||||
.await
|
||||
@@ -651,7 +651,7 @@ reminder_interval_model_requests = 0
|
||||
assert_eq!(error.kind(), std::io::ErrorKind::InvalidInput);
|
||||
assert_eq!(
|
||||
error.to_string(),
|
||||
"features.current_time_reminder.reminder_interval_model_requests must be positive"
|
||||
"features.current_time_reminder.reminder_interval_seconds must be positive"
|
||||
);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
@@ -1115,14 +1115,14 @@ pub struct RolloutBudgetConfig {
|
||||
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize)]
|
||||
pub struct CurrentTimeReminderConfig {
|
||||
pub reminder_interval_model_requests: u64,
|
||||
pub reminder_interval_seconds: u64,
|
||||
pub clock_source: CurrentTimeSource,
|
||||
}
|
||||
|
||||
impl Default for CurrentTimeReminderConfig {
|
||||
fn default() -> Self {
|
||||
Self {
|
||||
reminder_interval_model_requests: 1,
|
||||
reminder_interval_seconds: 1,
|
||||
clock_source: CurrentTimeSource::System,
|
||||
}
|
||||
}
|
||||
@@ -2657,18 +2657,18 @@ fn resolve_current_time_reminder_config(
|
||||
|
||||
let base = current_time_reminder_toml_config(config_toml.features.as_ref());
|
||||
let default = CurrentTimeReminderConfig::default();
|
||||
let reminder_interval_model_requests = base
|
||||
.and_then(|config| config.reminder_interval_model_requests)
|
||||
.unwrap_or(default.reminder_interval_model_requests);
|
||||
if reminder_interval_model_requests == 0 {
|
||||
let reminder_interval_seconds = base
|
||||
.and_then(|config| config.reminder_interval_seconds)
|
||||
.unwrap_or(default.reminder_interval_seconds);
|
||||
if reminder_interval_seconds == 0 {
|
||||
return Err(std::io::Error::new(
|
||||
std::io::ErrorKind::InvalidInput,
|
||||
"features.current_time_reminder.reminder_interval_model_requests must be positive",
|
||||
"features.current_time_reminder.reminder_interval_seconds must be positive",
|
||||
));
|
||||
}
|
||||
|
||||
Ok(Some(CurrentTimeReminderConfig {
|
||||
reminder_interval_model_requests,
|
||||
reminder_interval_seconds,
|
||||
clock_source: base
|
||||
.and_then(|config| config.clock_source)
|
||||
.unwrap_or(default.clock_source),
|
||||
|
||||
Reference in new issue
Block a user