MCPcopy Create free account
hub / github.com/AI45Lab/Code / resolve_session_store

Function resolve_session_store

core/src/agent_api/session_config.rs:183–210  ·  view source on GitHub ↗
(
    code_config: &CodeConfig,
    opts: &SessionOptions,
)

Source from the content-addressed store, hash-verified

181}
182
183pub(super) fn resolve_session_store(
184 code_config: &CodeConfig,
185 opts: &SessionOptions,
186) -> Option<Arc<dyn crate::store::SessionStore>> {
187 if opts.session_store.is_some() {
188 return opts.session_store.clone();
189 }
190
191 let dir = code_config.sessions_dir.as_ref()?;
192 match tokio::runtime::Handle::try_current() {
193 Ok(handle) => {
194 let dir = dir.clone();
195 match tokio::task::block_in_place(|| {
196 handle.block_on(crate::store::FileSessionStore::new(dir))
197 }) {
198 Ok(store) => Some(Arc::new(store) as Arc<dyn crate::store::SessionStore>),
199 Err(e) => {
200 tracing::warn!("Failed to create session store from sessions_dir: {}", e);
201 None
202 }
203 }
204 }
205 Err(_) => {
206 tracing::warn!("No async runtime for sessions_dir store - persistence disabled");
207 None
208 }
209 }
210}

Callers 1

build_agent_sessionFunction · 0.85

Calls 2

block_onMethod · 0.80
cloneMethod · 0.45

Tested by

no test coverage detected