mirror of
https://github.com/openai/codex.git
synced 2026-09-20 12:47:38 +00:00
codex: fix multi-agent version CI failures
This commit is contained in:
@@ -248,6 +248,7 @@ impl TurnContext {
|
||||
compact_prompt: self.compact_prompt.clone(),
|
||||
user_instructions: self.user_instructions.clone(),
|
||||
collaboration_mode,
|
||||
multi_agent_version: self.multi_agent_version,
|
||||
personality: self.personality,
|
||||
approval_policy: self.approval_policy.clone(),
|
||||
permission_profile: self.permission_profile.clone(),
|
||||
|
||||
@@ -2459,7 +2459,9 @@ impl InitialHistory {
|
||||
InitialHistory::Resumed(resumed) => {
|
||||
multi_agent_version_from_items(&resumed.history, Some(resumed.conversation_id))
|
||||
}
|
||||
InitialHistory::Forked(items) => multi_agent_version_from_items(items, None),
|
||||
InitialHistory::Forked(items) => {
|
||||
multi_agent_version_from_items(items, /*thread_id*/ None)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -21,6 +21,7 @@ use std::collections::hash_map::Entry;
|
||||
use std::path::PathBuf;
|
||||
use std::sync::Arc;
|
||||
use tokio::sync::Mutex;
|
||||
use tokio::sync::Semaphore;
|
||||
|
||||
use crate::AppendThreadItemsParams;
|
||||
use crate::ArchiveThreadParams;
|
||||
@@ -59,7 +60,7 @@ use codex_protocol::protocol::MultiAgentVersion;
|
||||
pub struct LocalThreadStore {
|
||||
pub(super) config: LocalThreadStoreConfig,
|
||||
live_recorders: Arc<Mutex<HashMap<ThreadId, RolloutRecorder>>>,
|
||||
multi_agent_version_seed_lock: Arc<Mutex<()>>,
|
||||
multi_agent_version_seed_lock: Arc<Semaphore>,
|
||||
state_db: Option<StateDbHandle>,
|
||||
}
|
||||
|
||||
@@ -99,7 +100,7 @@ impl LocalThreadStore {
|
||||
Self {
|
||||
config,
|
||||
live_recorders: Arc::new(Mutex::new(HashMap::new())),
|
||||
multi_agent_version_seed_lock: Arc::new(Mutex::new(())),
|
||||
multi_agent_version_seed_lock: Arc::new(Semaphore::new(/*permits*/ 1)),
|
||||
state_db,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,7 +16,13 @@ pub(super) async fn set_multi_agent_version_if_unset(
|
||||
store: &LocalThreadStore,
|
||||
params: SetMultiAgentVersionIfUnsetParams,
|
||||
) -> ThreadStoreResult<MultiAgentVersion> {
|
||||
let _guard = store.multi_agent_version_seed_lock.lock().await;
|
||||
let _permit = store
|
||||
.multi_agent_version_seed_lock
|
||||
.acquire()
|
||||
.await
|
||||
.map_err(|err| ThreadStoreError::Internal {
|
||||
message: format!("failed to lock thread multi-agent version seed: {err}"),
|
||||
})?;
|
||||
let has_live_writer = live_writer::rollout_path(store, params.thread_id)
|
||||
.await
|
||||
.is_ok();
|
||||
|
||||
Reference in New Issue
Block a user