1
0
Fork 0
Code Issues Pull requests Projects Releases 2 Packages Wiki Activity Actions Pages

Detach graph viewer from MCP transport

This commit is contained in:
Andraxion 2026-07-24 22:07:33 -04:00
parent 5e77cd2adb
commit f6b9816ffd
10 changed files with 369 additions and 22 deletions

View file

@ -23,7 +23,7 @@ approved contract and measured cross-project evidence; it is not an unimplemente
- Result envelope: `schemas/result.schema.json`, version 1.
- Changeset schema: `schemas/changeset.schema.json`, version 1.
- Index schema: version 1, disposable and reproducible.
- Core, CLI, and MCP server: version 0.8.0.
- Core, CLI, and MCP server: version 0.8.1.
Schema files describe the generic interchange contract. Runtime validation remains responsible for
path confinement, source hashing, relationship resolution, dependency cycles, project limits, stale
@ -125,14 +125,17 @@ sections. An undirected shortest-hop calculation places nodes on distance rings
role palette progressively, capped at fifty percent. This presentation does not reinterpret,
replace, or add project relationships.
One MCP process owns at most one listener. Repeated invocations reuse it and may replace its
validated snapshot only after a fresh index check. The HTTP worker is non-daemon so standard-input
transaction completion does not strand an open browser. The page renews a 180-second lease every
15 seconds and when it becomes visible; a link never opened receives a 120-second startup grace.
Explicit process termination closes the listener immediately. An abandoned page stops renewing and
the listener closes after the bounded lease. Project-specific integrations receive the same tool
because it operates on the supplied `ProjectService` and `ProjectIndex`, not the generic source
loader.
Each invocation launches the validated snapshot in a detached local worker. The worker is outside
the short-lived MCP transport process, so transport teardown cannot close an active browser. It
tracks the longer-lived MCP client host and closes when that owner process exits. A repeated
invocation in the same MCP process replaces its tracked worker after a fresh index check.
The page renews a 180-second lease every 15 seconds and when it becomes visible; a link never opened
receives a 120-second startup grace. An abandoned page stops renewing and the detached worker closes
after the bounded lease. Explicit service shutdown closes the worker tracked by that service
immediately. Project-specific integrations receive the same tool because the parent validates and
serializes only the supplied `ProjectService` and `ProjectIndex` snapshot; the detached worker does
not discover projects or load canonical sources.
## Project adapter boundary