MCPcopy Create free account
hub / github.com/ScriptedAlchemy/tracedecay / update_proxy_handshake_from_initialize

Function update_proxy_handshake_from_initialize

src/daemon.rs:975–1007  ·  view source on GitHub ↗
(
    base_handshake: &DaemonHandshake,
    handshake: &mut DaemonHandshake,
    line: &str,
)

Source from the content-addressed store, hash-verified

973
974#[cfg(unix)]
975async fn update_proxy_handshake_from_initialize(
976 base_handshake: &DaemonHandshake,
977 handshake: &mut DaemonHandshake,
978 line: &str,
979) {
980 let Ok(request) = serde_json::from_str::<JsonRpcRequest>(line.trim()) else {
981 return;
982 };
983 if request.method != "initialize" {
984 return;
985 }
986 *handshake = base_handshake.clone();
987 if !base_handshake.allow_initialize_root_routing {
988 return;
989 }
990 let Some(registry) =
991 crate::global_db::GlobalDb::open_at(&base_handshake.client_identity.global_db_path).await
992 else {
993 return;
994 };
995 let Some(project_path) = crate::mcp::server::resolve_initialize_roots_project_path(
996 request.params.as_ref(),
997 Some(&registry),
998 )
999 .await
1000 else {
1001 return;
1002 };
1003 if base_handshake.project_path.as_deref() != Some(project_path.as_path()) {
1004 handshake.scope_prefix = None;
1005 }
1006 handshake.project_path = Some(project_path);
1007}
1008
1009#[cfg(unix)]
1010async fn proxy_request_line_to_daemon(