mirror of
https://github.com/openai/codex.git
synced 2026-04-24 22:54:54 +00:00
Rename force collaboration flag
This commit is contained in:
@@ -1407,10 +1407,11 @@ impl Session {
|
||||
&self,
|
||||
previous_collaboration_mode: &CollaborationMode,
|
||||
next_collaboration_mode: Option<&CollaborationMode>,
|
||||
force_collaboration_instructions: bool,
|
||||
force_inject_collaboration_instructions: bool,
|
||||
) -> Option<ResponseItem> {
|
||||
if let Some(next_mode) = next_collaboration_mode {
|
||||
if !force_collaboration_instructions && previous_collaboration_mode == next_mode {
|
||||
if !force_inject_collaboration_instructions && previous_collaboration_mode == next_mode
|
||||
{
|
||||
return None;
|
||||
}
|
||||
// If the next mode has empty developer instructions, this returns None and we emit no
|
||||
@@ -1427,7 +1428,7 @@ impl Session {
|
||||
current_context: &TurnContext,
|
||||
previous_collaboration_mode: &CollaborationMode,
|
||||
next_collaboration_mode: Option<&CollaborationMode>,
|
||||
force_collaboration_instructions: bool,
|
||||
force_inject_collaboration_instructions: bool,
|
||||
) -> Vec<ResponseItem> {
|
||||
let mut update_items = Vec::new();
|
||||
if let Some(env_item) =
|
||||
@@ -1443,7 +1444,7 @@ impl Session {
|
||||
if let Some(collaboration_mode_item) = self.build_collaboration_mode_update_item(
|
||||
previous_collaboration_mode,
|
||||
next_collaboration_mode,
|
||||
force_collaboration_instructions,
|
||||
force_inject_collaboration_instructions,
|
||||
) {
|
||||
update_items.push(collaboration_mode_item);
|
||||
}
|
||||
@@ -2739,10 +2740,10 @@ mod handlers {
|
||||
}
|
||||
|
||||
let current_context = sess.new_default_turn_with_sub_id(sub_id).await;
|
||||
let force_collaboration_instructions = {
|
||||
let force_inject_collaboration_instructions = {
|
||||
let mut state = sess.state.lock().await;
|
||||
let force = state.force_collaboration_instructions;
|
||||
state.force_collaboration_instructions = false;
|
||||
let force = state.force_inject_collaboration_instructions;
|
||||
state.force_inject_collaboration_instructions = false;
|
||||
force
|
||||
};
|
||||
let update_items = sess.build_settings_update_items(
|
||||
@@ -2750,7 +2751,7 @@ mod handlers {
|
||||
¤t_context,
|
||||
&previous_collaboration_mode,
|
||||
next_collaboration_mode.as_ref(),
|
||||
force_collaboration_instructions,
|
||||
force_inject_collaboration_instructions,
|
||||
);
|
||||
if !update_items.is_empty() {
|
||||
sess.record_conversation_items(¤t_context, &update_items)
|
||||
@@ -2826,10 +2827,10 @@ mod handlers {
|
||||
// Attempt to inject input into current task
|
||||
if let Err(items) = sess.inject_input(items).await {
|
||||
sess.seed_initial_context_if_needed(¤t_context).await;
|
||||
let force_collaboration_instructions = {
|
||||
let force_inject_collaboration_instructions = {
|
||||
let mut state = sess.state.lock().await;
|
||||
let force = state.force_collaboration_instructions;
|
||||
state.force_collaboration_instructions = false;
|
||||
let force = state.force_inject_collaboration_instructions;
|
||||
state.force_inject_collaboration_instructions = false;
|
||||
force
|
||||
};
|
||||
let update_items = sess.build_settings_update_items(
|
||||
@@ -2837,7 +2838,7 @@ mod handlers {
|
||||
¤t_context,
|
||||
&previous_collaboration_mode,
|
||||
next_collaboration_mode.as_ref(),
|
||||
force_collaboration_instructions,
|
||||
force_inject_collaboration_instructions,
|
||||
);
|
||||
if !update_items.is_empty() {
|
||||
sess.record_conversation_items(¤t_context, &update_items)
|
||||
@@ -3167,7 +3168,7 @@ mod handlers {
|
||||
state.session_configuration.collaboration_mode = collaboration_mode;
|
||||
applied = true;
|
||||
}
|
||||
state.force_collaboration_instructions = !applied;
|
||||
state.force_inject_collaboration_instructions = !applied;
|
||||
}
|
||||
sess.recompute_token_usage(turn_context.as_ref()).await;
|
||||
|
||||
@@ -5169,13 +5170,13 @@ mod tests {
|
||||
let rollback_event = wait_for_thread_rolled_back(&rx).await;
|
||||
assert_eq!(rollback_event.num_turns, 1);
|
||||
|
||||
let force_collaboration_instructions = {
|
||||
let force_inject_collaboration_instructions = {
|
||||
let mut state = sess.state.lock().await;
|
||||
let force = state.force_collaboration_instructions;
|
||||
state.force_collaboration_instructions = false;
|
||||
let force = state.force_inject_collaboration_instructions;
|
||||
state.force_inject_collaboration_instructions = false;
|
||||
force
|
||||
};
|
||||
assert!(force_collaboration_instructions);
|
||||
assert!(force_inject_collaboration_instructions);
|
||||
|
||||
let current_context = sess.new_default_turn_with_sub_id("sub-2".to_string()).await;
|
||||
let previous_collaboration_mode = {
|
||||
@@ -5187,7 +5188,7 @@ mod tests {
|
||||
¤t_context,
|
||||
&previous_collaboration_mode,
|
||||
Some(&previous_collaboration_mode),
|
||||
force_collaboration_instructions,
|
||||
force_inject_collaboration_instructions,
|
||||
);
|
||||
let expected_item: ResponseItem =
|
||||
DeveloperInstructions::from_collaboration_mode(&previous_collaboration_mode)
|
||||
@@ -5252,10 +5253,10 @@ mod tests {
|
||||
let rollback_event = wait_for_thread_rolled_back(&rx).await;
|
||||
pretty_assertions::assert_eq!(rollback_event.num_turns, 1);
|
||||
|
||||
let (collaboration_mode, force_collaboration_instructions) = {
|
||||
let (collaboration_mode, force_inject_collaboration_instructions) = {
|
||||
let mut state = sess.state.lock().await;
|
||||
let force = state.force_collaboration_instructions;
|
||||
state.force_collaboration_instructions = false;
|
||||
let force = state.force_inject_collaboration_instructions;
|
||||
state.force_inject_collaboration_instructions = false;
|
||||
(
|
||||
state.session_configuration.collaboration_mode.clone(),
|
||||
force,
|
||||
@@ -5263,7 +5264,7 @@ mod tests {
|
||||
};
|
||||
|
||||
pretty_assertions::assert_eq!(collaboration_mode, code_mode);
|
||||
assert!(force_collaboration_instructions);
|
||||
assert!(force_inject_collaboration_instructions);
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
|
||||
@@ -17,7 +17,12 @@ pub(crate) struct SessionState {
|
||||
pub(crate) session_configuration: SessionConfiguration,
|
||||
pub(crate) history: ContextManager,
|
||||
pub(crate) turn_context_history: Vec<Option<TurnContextItem>>,
|
||||
pub(crate) force_collaboration_instructions: bool,
|
||||
/// Force a developer-instruction update for collaboration mode on the next turn.
|
||||
///
|
||||
/// This is set when rollback/backtrack lacks a reliable turn context for the latest user turn,
|
||||
/// so core should re-emit the collaboration developer instructions even if the mode is
|
||||
/// unchanged.
|
||||
pub(crate) force_inject_collaboration_instructions: bool,
|
||||
pub(crate) latest_rate_limits: Option<RateLimitSnapshot>,
|
||||
pub(crate) server_reasoning_included: bool,
|
||||
pub(crate) dependency_env: HashMap<String, String>,
|
||||
@@ -37,7 +42,7 @@ impl SessionState {
|
||||
session_configuration,
|
||||
history,
|
||||
turn_context_history: Vec::new(),
|
||||
force_collaboration_instructions: false,
|
||||
force_inject_collaboration_instructions: false,
|
||||
latest_rate_limits: None,
|
||||
server_reasoning_included: false,
|
||||
dependency_env: HashMap::new(),
|
||||
|
||||
Reference in New Issue
Block a user