tests/gateway/test_discord_slash_commands.py::test_registers_native_thread_slash_command tests/gateway/test_discord_slash_commands.py::test_registers_native_restart_slash_command tests/gateway/test_discord_slash_commands.py::test_auto_registers_missing_gateway_commands tests/gateway/test_discord_slash_commands.py::test_auto_registered_command_dispatches_correctly tests/gateway/test_discord_slash_commands.py::test_auto_registered_command_with_args tests/gateway/test_discord_slash_commands.py::test_auto_registers_plugin_commands_for_discord tests/gateway/test_discord_slash_commands.py::test_auto_registered_plugin_command_without_args_hint tests/gateway/test_discord_slash_commands.py::test_plugin_command_name_conflict_skipped tests/gateway/test_discord_slash_commands.py::test_slash_command_registration_stays_under_discord_limit tests/gateway/test_discord_slash_commands.py::test_handle_thread_create_slash_reports_success tests/gateway/test_discord_slash_commands.py::test_handle_thread_create_slash_dispatches_session_when_message_provided tests/gateway/test_discord_slash_commands.py::test_handle_thread_create_slash_no_dispatch_without_message tests/gateway/test_discord_slash_commands.py::test_handle_thread_create_slash_falls_back_to_seed_message tests/gateway/test_discord_slash_commands.py::test_handle_thread_create_slash_reports_failure tests/gateway/test_discord_slash_commands.py::test_dispatch_thread_session_builds_thread_event tests/gateway/test_discord_slash_commands.py::test_build_slash_event_preserves_thread_context tests/gateway/test_discord_slash_commands.py::test_build_slash_event_uses_group_context_for_channels tests/gateway/test_discord_slash_commands.py::test_auto_create_thread_uses_message_content_as_name tests/gateway/test_discord_slash_commands.py::test_auto_create_thread_strips_mention_syntax_from_name tests/gateway/test_discord_slash_commands.py::test_auto_create_thread_falls_back_to_hermes_when_only_mentions tests/gateway/test_discord_slash_commands.py::test_auto_create_thread_truncates_long_names tests/gateway/test_discord_slash_commands.py::test_auto_create_thread_falls_back_to_seed_message tests/gateway/test_discord_slash_commands.py::test_auto_create_thread_returns_none_when_direct_and_fallback_fail tests/gateway/test_discord_slash_commands.py::test_auto_thread_creates_thread_and_redirects tests/gateway/test_discord_slash_commands.py::test_auto_thread_enabled_by_default_slash_commands tests/gateway/test_discord_slash_commands.py::test_auto_thread_can_be_disabled tests/gateway/test_discord_slash_commands.py::test_auto_thread_skips_threads_and_dms tests/gateway/test_discord_slash_commands.py::test_discord_auto_thread_config_bridge tests/gateway/test_discord_slash_commands.py::test_register_skill_command_is_flat_not_nested tests/gateway/test_discord_slash_commands.py::test_register_skill_command_empty_skills_no_command tests/gateway/test_discord_slash_commands.py::test_register_skill_command_callback_dispatches_by_name tests/gateway/test_discord_slash_commands.py::test_register_skill_command_handles_unknown_skill_gracefully tests/gateway/test_discord_slash_commands.py::test_register_skill_command_payload_fits_discord_8kb_limit tests/gateway/test_discord_slash_commands.py::test_register_skill_command_autocomplete_filters_by_name_and_description