MCPcopy Create free account
hub / github.com/DeusData/codebase-memory-mcp / application_session_open

Function application_session_open

src/daemon/application.c:2238–2278  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2236}
2237
2238static cbm_daemon_runtime_application_session_t *application_session_open(
2239 void *context, cbm_daemon_client_id_t client_id, uint64_t authenticated_process_id) {
2240 cbm_daemon_application_t *application = context;
2241 if (!application || client_id == CBM_DAEMON_CLIENT_ID_INVALID ||
2242 authenticated_process_id == 0) {
2243 return NULL;
2244 }
2245 cbm_daemon_application_session_t *session = calloc(1, sizeof(*session));
2246 if (!session) {
2247 return NULL;
2248 }
2249 session->mcp = cbm_mcp_server_new(NULL);
2250 if (!session->mcp || !cbm_mcp_server_release_pristine_memory_store(session->mcp)) {
2251 cbm_mcp_server_free(session->mcp);
2252 free(session);
2253 return NULL;
2254 }
2255 cbm_mcp_server_set_background_tasks(session->mcp, false);
2256 cbm_mcp_server_set_config(session->mcp, application->config);
2257 cbm_mcp_server_set_index_executor(session->mcp, application_index_execute, session);
2258 cbm_mcp_server_set_project_mutation_guard(session->mcp, application_session_mutation_begin,
2259 application_session_mutation_end, session);
2260 cbm_mcp_server_set_project_mutation_try_guard(session->mcp,
2261 application_session_mutation_try_begin);
2262 session->tool_profile = CBM_MCP_TOOL_PROFILE_ALL;
2263 session->application = application;
2264 session->client_id = client_id;
2265 session->authenticated_process_id = authenticated_process_id;
2266
2267 cbm_mutex_lock(&application->mutex);
2268 if (application->stopping) {
2269 cbm_mutex_unlock(&application->mutex);
2270 cbm_mcp_server_free(session->mcp);
2271 free(session);
2272 return NULL;
2273 }
2274 session->next = application->sessions;
2275 application->sessions = session;
2276 cbm_mutex_unlock(&application->mutex);
2277 return (cbm_daemon_runtime_application_session_t *)session;
2278}
2279
2280static cbm_daemon_runtime_application_status_t application_set_context(
2281 cbm_daemon_application_session_t *session, const uint8_t *request, uint32_t request_length) {

Callers

nothing calls this directly

Tested by

no test coverage detected