d45bc39667
GatewayRunner.__init__ snapshotted _ephemeral_system_prompt once from the launch profile's config and _get_system_prompt_for_channel returned that string for every source, so under multiplex a routed profile's display.personality / agent.system_prompt never injected (#89161), and /personality from any chat rewrote the one process-global attribute for everyone. Drop the snapshot: _get_system_prompt_for_channel now calls _load_ephemeral_system_prompt() (env var, then resolve_ephemeral_system_prompt_from_config(_load_gateway_runtime_config())) on each call. Its caller run_sync already runs inside _profile_runtime_scope, so the routed profile's config.yaml is what gets read; single-profile hot-edits of the personality also take effect on the next turn instead of requiring a restart. /personality only persists via persist_personality() (get_hermes_home()/config.yaml = the routed profile) and no longer touches in-memory state. Fixes #89161 Co-authored-by: worlldz <101180447+worlldz@users.noreply.github.com>