MCPcopy Create free account
hub / github.com/ChrisFeldmeier/OpenCodeRust / create_session

Function create_session

crates/opencode-server/src/routes.rs:388–415  ·  view source on GitHub ↗
(
    State(state): State<Arc<ServerState>>,
    Extension(open_code_dir): Extension<OpenCodeDirectory>,
    Query(query): Query<CreateSessionQuery>,
    Json(req): Json<CreateSessionRequest>,
)

Source from the content-addressed store, hash-verified

386}
387
388async fn create_session(
389 State(state): State<Arc<ServerState>>,
390 Extension(open_code_dir): Extension<OpenCodeDirectory>,
391 Query(query): Query<CreateSessionQuery>,
392 Json(req): Json<CreateSessionRequest>,
393) -> Result<Json<SessionInfo>> {
394 let directory = query
395 .directory
396 .filter(|d| !d.is_empty())
397 .or_else(|| open_code_dir.0.clone())
398 .unwrap_or_else(|| {
399 std::env::current_dir()
400 .map(|p| p.to_string_lossy().to_string())
401 .unwrap_or_else(|_| ".".to_string())
402 });
403 let session = if let Some(parent_id) = &req.parent_id {
404 state
405 .sessions
406 .lock()
407 .await
408 .create_child(parent_id)
409 .ok_or_else(|| ApiError::SessionNotFound(parent_id.clone()))?
410 } else {
411 state.sessions.lock().await.create("default", directory)
412 };
413 persist_sessions_if_enabled(&state).await;
414 Ok(Json(session_to_info(&session)))
415}
416
417async fn get_session(
418 State(state): State<Arc<ServerState>>,

Callers

nothing calls this directly

Calls 7

session_to_infoFunction · 0.85
is_emptyMethod · 0.80
create_childMethod · 0.80
filterMethod · 0.45
cloneMethod · 0.45
createMethod · 0.45

Tested by

no test coverage detected