bc47fcd3f9
The /goal post-turn hook constructs a real SessionDB on an executor thread at the turn boundary. On a cold or loaded CI runner that state.db init can exceed send_and_capture's 2s poll window, so the send lands after the assertion and the test reports the bare 'Expected mock to have been called once. Called 0 times.' (#92130). Mock _run_post_turn_hooks in the e2e runner — these tests exercise gateway command dispatch, not goal hooks. Also scrub TELEGRAM_GROUP_ALLOWED_CHATS / *_GROUP_ALLOWED_USERS / QQ allowlist env vars in the hermetic conftest: a developer shell with those set flips _get_unauthorized_dm_behavior to 'ignore' and fails the pairing e2e test locally.