mirror of
https://github.com/safishamsi/graphify.git
synced 2026-07-13 10:57:13 +00:00
9e7fbcbd6e
Add an optional project_path to every MCP tool so one server process can answer against many projects. Omitted -> the server's default graph (fully backward-compatible); an absolute project_path -> that project's <GRAPHIFY_OUT>/graph.json, routed per call. Implementation (all in _build_server): - _ctx_cache + _load_ctx(): per-graph context cache with mtime+size hot-reload, unified across the default graph and every project graph. Unlike _load_graph it raises instead of sys.exit on a bad file. - _resolve_graph_path()/_select_graph(): map project_path to a graph.json and rebind G/communities/active_graph_path per call. No hot-path lock: select+handler run in one synchronous span of the call_tool coroutine. - Tolerant startup: serve with no default graph (pure multi-project mode) instead of exiting; a bad project_path is a tool error, not a crash. - project_path injected as an optional (non-required) field on all tools. Tests: 3 new HTTP-transport tests (optional-on-every-tool, routing, bad-path-no-crash). Full serve suite green (91 passed).