[codex] add current time reminder delivery mode config (#30031)

```python
delivery_mode = "any_inference" # default
delivery_mode = "after_user_or_tool_output" # new mode
``` 

## Validation
- just test -p codex-core load_config_resolves_current_time_reminder
- just test -p codex-core
lock_contains_prompts_and_materializes_features
This commit is contained in:
rka-oai
2026-06-25 19:06:43 +00:00
committed by GitHub
parent c65cfeab14
commit e8d4a1a411
6 changed files with 45 additions and 0 deletions
+2
View File
@@ -627,11 +627,13 @@ current_time_reminder = true
enabled = true
reminder_interval_seconds = 0
clock_source = "external"
delivery_mode = "after_user_or_tool_output"
sleep_tool = true
"#,
CurrentTimeReminderConfig {
reminder_interval_seconds: 0,
clock_source: CurrentTimeSource::External,
delivery_mode: CurrentTimeReminderDeliveryMode::AfterUserOrToolOutput,
sleep_tool: true,
},
),
+6
View File
@@ -59,6 +59,7 @@ use codex_exec_server::ExecutorFileSystem;
use codex_exec_server::LOCAL_FS;
use codex_features::CodeModeConfigToml;
use codex_features::CurrentTimeReminderConfigToml;
use codex_features::CurrentTimeReminderDeliveryMode;
use codex_features::CurrentTimeSource;
use codex_features::Feature;
use codex_features::FeatureConfigSource;
@@ -1120,6 +1121,7 @@ pub struct RolloutBudgetConfig {
pub struct CurrentTimeReminderConfig {
pub reminder_interval_seconds: u64,
pub clock_source: CurrentTimeSource,
pub delivery_mode: CurrentTimeReminderDeliveryMode,
/// Whether to expose the input-interruptible `clock.sleep` tool.
pub sleep_tool: bool,
}
@@ -1129,6 +1131,7 @@ impl Default for CurrentTimeReminderConfig {
Self {
reminder_interval_seconds: 1,
clock_source: CurrentTimeSource::System,
delivery_mode: CurrentTimeReminderDeliveryMode::AnyInference,
sleep_tool: false,
}
}
@@ -2691,6 +2694,9 @@ fn resolve_current_time_reminder_config(
clock_source: base
.and_then(|config| config.clock_source)
.unwrap_or(default.clock_source),
delivery_mode: base
.and_then(|config| config.delivery_mode)
.unwrap_or(default.delivery_mode),
sleep_tool: base
.and_then(|config| config.sleep_tool)
.unwrap_or(default.sleep_tool),
+1
View File
@@ -361,6 +361,7 @@ mod tests {
enabled: Some(true),
reminder_interval_seconds: Some(1),
clock_source: Some(codex_features::CurrentTimeSource::System),
delivery_mode: Some(codex_features::CurrentTimeReminderDeliveryMode::AnyInference),
sleep_tool: Some(false),
}))
);