571a4e0c70
#108319 made the release thread carry the caller's context and enter the owner's profile scope only when no scope was present. But the LRU-cap eviction runs inside the REQUESTING turn (run_turn_runner: _enforce_agent_cache_cap / _release_evicted_agent), and the LRU agent it evicts may belong to another profile — so with profile A's scope active, profile B's end-of-session memory commit ran under A's scope and A's home: B's transcript extracted into A's provider namespace with A's credentials. Before #108319 the same commit ran under the launch profile; the fix moved the leak, it did not close it. _run_release_in_profile_scope now resolves the owner from the session key first — a named profile's home, else the DEFAULT profile at the root Hermes dir (agent:main: keys), which is not the launch profile when the gateway runs under `hermes -p x` — and enters that profile's scope whenever the current one is not already the owner's (compared via hermes_home_key). Same-profile in-turn evictions and the unscoped housekeeping sweep behave as before. A failed owner lookup is logged at WARNING instead of silently swallowed, since it reassigns the commit to the default profile. Three invariant tests: A's turn evicting B's agent commits under B; a secondary's turn evicting a default-profile agent commits under the default home; the same with the gateway launched under a named profile still commits under the root. All red on main.