mirror of
https://github.com/openai/codex.git
synced 2026-10-20 17:38:45 +00:00
Add experimental prediction forks that inherit parent context (#51884)
## Why Prediction forks need to preserve the parent's effective context and request settings to maximize prompt-cache reuse. ## What changed - Add `experimentalPredictionMode` to `thread/fork` for ephemeral forks of loaded, persisted parents. Reject configuration overrides, `path`, `lastTurnId`, and `beforeTurnId` in this mode. - Inherit the parent's effective configuration, tools, environments, collaboration settings, disabled plugins, and persisted history. - Enable `features.reasoning_effort_override` on the fork while preserving the parent's request-effort baseline, including when overrides were disabled on the parent. - Report the fork's effective model, service tier, and reasoning effort in the response. ## Testing Add coverage for matching parent and fork requests and prompt-cache keys across legacy and paginated history, invalid fork parameters, and reasoning-effort inheritance. Add a context snapshot for identical parent and fork continuations. GitOrigin-RevId: 46b41f2ac331562b441dadff1a0a9f926c94880d
This commit is contained in:
@@ -544,6 +544,15 @@ impl From<ThreadTurnsListResponse> for TurnsPage {
|
||||
pub struct ThreadForkParams {
|
||||
pub thread_id: String,
|
||||
|
||||
/// Start from the loaded parent's effective config, tools, environments, and
|
||||
/// persisted history to maximize prompt-cache reuse. Requires a loaded,
|
||||
/// persisted parent and `ephemeral: true`. Enables `features.reasoning_effort_override`
|
||||
/// on the fork. Cannot be combined with configuration overrides, `path`, `lastTurnId`,
|
||||
/// or `beforeTurnId`.
|
||||
#[experimental("thread/fork.experimentalPredictionMode")]
|
||||
#[serde(default, skip_serializing_if = "std::ops::Not::not")]
|
||||
pub experimental_prediction_mode: bool,
|
||||
|
||||
/// Optional last turn id to fork through, inclusive.
|
||||
///
|
||||
/// When specified, turns after `last_turn_id` are omitted from the fork.
|
||||
|
||||
Reference in New Issue
Block a user