tests/gateway/test_config.py::TestHomeChannelRoundtrip::test_to_dict_from_dict tests/gateway/test_config.py::TestPlatformConfigRoundtrip::test_to_dict_from_dict tests/gateway/test_config.py::TestPlatformConfigRoundtrip::test_disabled_no_token tests/gateway/test_config.py::TestPlatformConfigRoundtrip::test_from_dict_coerces_quoted_false_enabled tests/gateway/test_config.py::TestPlatformConfigRoundtrip::test_gateway_restart_notification_defaults_true tests/gateway/test_config.py::TestPlatformConfigRoundtrip::test_gateway_restart_notification_roundtrip_false tests/gateway/test_config.py::TestPlatformConfigRoundtrip::test_gateway_restart_notification_coerces_quoted_false tests/gateway/test_config.py::TestGetConnectedPlatforms::test_returns_enabled_with_token tests/gateway/test_config.py::TestGetConnectedPlatforms::test_empty_platforms tests/gateway/test_config.py::TestGetConnectedPlatforms::test_dingtalk_recognised_via_extras tests/gateway/test_config.py::TestGetConnectedPlatforms::test_dingtalk_recognised_via_env_vars tests/gateway/test_config.py::TestGetConnectedPlatforms::test_dingtalk_missing_creds_not_connected tests/gateway/test_config.py::TestGetConnectedPlatforms::test_dingtalk_disabled_not_connected tests/gateway/test_config.py::TestSessionResetPolicy::test_roundtrip tests/gateway/test_config.py::TestSessionResetPolicy::test_defaults tests/gateway/test_config.py::TestSessionResetPolicy::test_from_dict_treats_null_values_as_defaults tests/gateway/test_config.py::TestSessionResetPolicy::test_from_dict_coerces_quoted_false_notify tests/gateway/test_config.py::TestStreamingConfig::test_defaults_to_auto_transport tests/gateway/test_config.py::TestStreamingConfig::test_from_dict_coerces_quoted_false_enabled tests/gateway/test_config.py::TestStreamingConfig::test_from_dict_malformed_numeric_values_fall_back_to_defaults tests/gateway/test_config.py::TestGatewayConfigRoundtrip::test_full_roundtrip tests/gateway/test_config.py::TestGatewayConfigRoundtrip::test_max_concurrent_sessions_from_dict_normalizes_disabled_values tests/gateway/test_config.py::TestGatewayConfigRoundtrip::test_max_concurrent_sessions_from_dict_accepts_positive_integer tests/gateway/test_config.py::TestGatewayConfigRoundtrip::test_max_concurrent_sessions_from_dict_ignores_invalid_values tests/gateway/test_config.py::TestGatewayConfigRoundtrip::test_max_concurrent_sessions_from_dict_accepts_nested_fallback tests/gateway/test_config.py::TestGatewayConfigRoundtrip::test_max_concurrent_sessions_top_level_overrides_nested tests/gateway/test_config.py::TestGatewayConfigRoundtrip::test_roundtrip_preserves_unauthorized_dm_behavior tests/gateway/test_config.py::TestGatewayConfigRoundtrip::test_from_dict_coerces_quoted_false_always_log_local tests/gateway/test_config.py::TestGatewayConfigRoundtrip::test_get_notice_delivery_defaults_to_public tests/gateway/test_config.py::TestGatewayConfigRoundtrip::test_get_notice_delivery_honors_platform_override tests/gateway/test_config.py::TestLoadGatewayConfig::test_bridges_quick_commands_from_config_yaml tests/gateway/test_config.py::TestLoadGatewayConfig::test_relay_platform_enabled_from_env_url tests/gateway/test_config.py::TestLoadGatewayConfig::test_relay_platform_absent_when_url_unset tests/gateway/test_config.py::TestLoadGatewayConfig::test_relay_platform_enabled_from_config_yaml tests/gateway/test_config.py::TestLoadGatewayConfig::test_bridges_group_sessions_per_user_from_config_yaml tests/gateway/test_config.py::TestLoadGatewayConfig::test_bridges_thread_sessions_per_user_from_config_yaml tests/gateway/test_config.py::TestLoadGatewayConfig::test_thread_sessions_per_user_defaults_to_false tests/gateway/test_config.py::TestLoadGatewayConfig::test_bridges_top_level_max_concurrent_sessions_from_config_yaml tests/gateway/test_config.py::TestLoadGatewayConfig::test_bridges_nested_max_concurrent_sessions_from_config_yaml tests/gateway/test_config.py::TestLoadGatewayConfig::test_top_level_max_concurrent_sessions_overrides_nested_config_yaml tests/gateway/test_config.py::TestLoadGatewayConfig::test_bridges_discord_thread_require_mention_from_config_yaml tests/gateway/test_config.py::TestLoadGatewayConfig::test_thread_require_mention_yaml_does_not_overwrite_env tests/gateway/test_config.py::TestLoadGatewayConfig::test_bridges_discord_allow_from_from_config_yaml tests/gateway/test_config.py::TestLoadGatewayConfig::test_bridges_discord_platform_extra_allow_from_to_env tests/gateway/test_config.py::TestLoadGatewayConfig::test_bridges_quoted_false_platform_enabled_from_config_yaml tests/gateway/test_config.py::TestLoadGatewayConfig::test_bridges_nested_gateway_platforms_from_config_yaml tests/gateway/test_config.py::TestLoadGatewayConfig::test_top_level_platforms_override_nested_gateway_platforms tests/gateway/test_config.py::TestLoadGatewayConfig::test_shared_key_loop_bridges_allow_from_from_nested_platforms tests/gateway/test_config.py::TestLoadGatewayConfig::test_shared_key_loop_bridges_allow_from_from_nested_gateway_platforms tests/gateway/test_config.py::TestLoadGatewayConfig::test_bridges_quoted_false_session_notify_from_config_yaml tests/gateway/test_config.py::TestLoadGatewayConfig::test_bridges_quoted_false_always_log_local_from_config_yaml tests/gateway/test_config.py::TestLoadGatewayConfig::test_bridges_discord_channel_prompts_from_config_yaml tests/gateway/test_config.py::TestLoadGatewayConfig::test_bridges_discord_history_backfill_settings_from_config_yaml tests/gateway/test_config.py::TestLoadGatewayConfig::test_bridges_telegram_channel_prompts_from_config_yaml tests/gateway/test_config.py::TestLoadGatewayConfig::test_bridges_slack_channel_prompts_from_config_yaml tests/gateway/test_config.py::TestLoadGatewayConfig::test_bridges_feishu_allow_bots_from_config_yaml_to_env tests/gateway/test_config.py::TestLoadGatewayConfig::test_feishu_allow_bots_env_takes_precedence_over_config_yaml tests/gateway/test_config.py::TestLoadGatewayConfig::test_invalid_quick_commands_in_config_yaml_are_ignored tests/gateway/test_config.py::TestLoadGatewayConfig::test_bridges_unauthorized_dm_behavior_from_config_yaml tests/gateway/test_config.py::TestLoadGatewayConfig::test_bridges_telegram_disable_link_previews_from_config_yaml tests/gateway/test_config.py::TestLoadGatewayConfig::test_loads_telegram_rich_messages_from_gateway_platform_extra tests/gateway/test_config.py::TestLoadGatewayConfig::test_load_config_default_enables_telegram_rich_messages tests/gateway/test_config.py::TestLoadGatewayConfig::test_bridges_telegram_extra_base_url_from_config_yaml tests/gateway/test_config.py::TestLoadGatewayConfig::test_bridges_notice_delivery_from_config_yaml tests/gateway/test_config.py::TestLoadGatewayConfig::test_bridges_telegram_proxy_url_from_config_yaml tests/gateway/test_config.py::TestLoadGatewayConfig::test_telegram_proxy_env_takes_precedence_over_config tests/gateway/test_config.py::TestHomeChannelEnvOverrides::test_existing_platform_configs_accept_home_channel_env_overrides