96aafecadd
The reachability claim that single-process multi-profile leakage is desktop- only is incomplete. gateway/run.py:_profile_runtime_scope shows a SECOND such runtime: the multiplexed gateway (gateway.multiplex_profiles) serves every profile from one process, scoping each inbound turn with the same set_hermes_home_override ContextVar the desktop uses (and the /p/<profile>/ URL prefix). The M1 (import-time path globals) and M2 (thread/executor context) leaks are reachable there identically. - tests/gateway/test_multiplex_credential_isolation.py: add a class driving the skills-dir + cache-dir resolvers and a propagated worker thread under the real _profile_runtime_scope, asserting each resolves the active profile. Sits beside the existing credential-isolation proofs for the same topology. - Correct the inline comments in model_tools/run_agent/async_delegation/ rich_sent_store to name both runtimes (desktop tui_gateway AND the multiplexed gateway) instead of implying desktop is the only surface. (ACP runs one agent per subprocess and the kanban dispatcher Popens 'hermes -p <profile>' children, so neither is an in-process multi-profile surface; desktop + multiplexed gateway are the two confirmed ones.)