codex: fix multi-agent lock clippy failures

This commit is contained in:
Ahmed Ibrahim
2026-06-01 13:13:18 -07:00
parent ab6593cf38
commit 74222e7fd1
3 changed files with 12 additions and 5 deletions
+2 -2
View File
@@ -371,17 +371,17 @@ fn latest_multi_agent_version(
std::fs::read_to_string(path)
.unwrap_or_else(|err| panic!("failed to read rollout file {}: {err}", path.display()))
.lines()
.rev()
.filter(|line| !line.trim().is_empty())
.map(|line| {
serde_json::from_str::<RolloutLine>(line)
.unwrap_or_else(|err| panic!("failed to parse rollout line `{line}`: {err}"))
})
.filter_map(|line| match line.item {
.find_map(|line| match line.item {
RolloutItem::SessionMeta(meta_line) if meta_line.meta.id == thread_id => {
Some(meta_line.meta.multi_agent_version)
}
_ => None,
})
.last()
.flatten()
}
+3 -2
View File
@@ -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_semaphore: 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_semaphore: Arc::new(Semaphore::new(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_semaphore
.acquire()
.await
.map_err(|err| ThreadStoreError::Internal {
message: format!("failed to lock thread multi-agent version: {err}"),
})?;
let has_live_writer = live_writer::rollout_path(store, params.thread_id)
.await
.is_ok();