Part of #408. Depends on the HTTP transport.
Why
Per-call work is already stateless — each tools/call spawns a CLI with its own scoped env ({...process.env, ...resolveEnvPlaceholders(provider.env)}, bin/unified-mcp-server.mjs:415) — so sharing one process across sessions should be safe. "Should be" is not evidence.
The specific hazard: the slot-mode credential bootstrap mutates global process.env (:1001, :1025). It is guarded by if (SLOT ...) and so never runs in unified mode, but that guard is now load-bearing for cross-session credential isolation rather than merely tidy. It deserves a test that fails if someone removes it.
Acceptance
Part of #408. Depends on the HTTP transport.
Why
Per-call work is already stateless — each
tools/callspawns a CLI with its own scoped env ({...process.env, ...resolveEnvPlaceholders(provider.env)}, bin/unified-mcp-server.mjs:415) — so sharing one process across sessions should be safe. "Should be" is not evidence.The specific hazard: the slot-mode credential bootstrap mutates global
process.env(:1001,:1025). It is guarded byif (SLOT ...)and so never runs in unified mode, but that guard is now load-bearing for cross-session credential isolation rather than merely tidy. It deserves a test that fails if someone removes it.Acceptance
tools/callacross different providers, no crossed responsesprocess.envmutation happens in unified/HTTP mode