mirror of
https://github.com/openai/codex.git
synced 2026-05-01 18:06:47 +00:00
Honor null thread instructions (#16964)
- Treat explicit null thread instructions as a blank-slate override while preserving omitted-field fallback behavior. - Preserve null through rollout resume/fork and keep explicit empty strings distinct. - Add app-server v2 start/fork coverage for the tri-state instruction params.
This commit is contained in:
@@ -2473,8 +2473,8 @@ impl CodexMessageProcessor {
|
||||
approval_policy: Option<codex_app_server_protocol::AskForApproval>,
|
||||
approvals_reviewer: Option<codex_app_server_protocol::ApprovalsReviewer>,
|
||||
sandbox: Option<SandboxMode>,
|
||||
base_instructions: Option<String>,
|
||||
developer_instructions: Option<String>,
|
||||
base_instructions: Option<Option<String>>,
|
||||
developer_instructions: Option<Option<String>>,
|
||||
personality: Option<Personality>,
|
||||
) -> ConfigOverrides {
|
||||
ConfigOverrides {
|
||||
@@ -4363,6 +4363,13 @@ impl CodexMessageProcessor {
|
||||
developer_instructions,
|
||||
/*personality*/ None,
|
||||
);
|
||||
if typesafe_overrides.base_instructions.is_none()
|
||||
&& let Ok(history) = RolloutRecorder::get_rollout_history(&rollout_path).await
|
||||
&& let Some(base_instructions) = history.get_base_instructions()
|
||||
{
|
||||
typesafe_overrides.base_instructions =
|
||||
Some(base_instructions.map(|base_instructions| base_instructions.text));
|
||||
}
|
||||
typesafe_overrides.ephemeral = ephemeral.then_some(true);
|
||||
// Derive a Config using the same logic as new conversation, honoring overrides if provided.
|
||||
let cloud_requirements = self.current_cloud_requirements();
|
||||
|
||||
Reference in New Issue
Block a user