a8a2faab64
#108319 moved hooks.outbound[].secret_env from os.environ to get_secret, which fails closed outside a profile scope while multiplexing is on. The launch profile's hooks: block is registered from start(), before any turn scope exists, so the first secret_env target raised UnscopedSecretError, register_from_config propagated it, and _register_config_hooks swallowed it at DEBUG — every launch-profile outbound webhook (signed or not) was silently dropped on a multiplexed gateway. Secondaries were unaffected: they register inside their own scope. The launch profile now gets the same treatment: _register_launch_profile_config_hooks enters _profile_runtime_scope(get_process_hermes_home()) when multiplexing is active, then registers. Not the environ fallback — a scopeless multi-profile read has no authority over the launch env; the spawn site is where the scope belongs. The swallow logs at WARNING: a dropped hook block is not debug noise. Two invariant tests: multiplex on, no scope, secret in the launch .env -> both targets register, the signed one with the launch secret (0 register on main); a registration failure surfaces at WARNING.