import pytest from gateway.config import GatewayConfig, Platform, PlatformConfig from gateway.platforms.base import MessageEvent from gateway.run import GatewayRunner from gateway.session import SessionSource def _make_runner(config: GatewayConfig) -> GatewayRunner: runner = object.__new__(GatewayRunner) runner.config = config runner.adapters = {} runner._model = "openai/gpt-4.1-mini" runner._base_url = None return runner @pytest.mark.asyncio async def test_preprocess_includes_slack_author_mention_for_shared_thread(): """Shared Slack threads expose the current author's verifiable user ID next to the display name so 'mention me again' requests can bind the mention to the CURRENT speaker (#17916).""" runner = _make_runner( GatewayConfig( platforms={ Platform.SLACK: PlatformConfig(enabled=True, token="fake"), }, ) ) source = SessionSource( platform=Platform.SLACK, chat_id="C123", chat_name="team-channel", chat_type="group", user_id="U123", user_name="Alice", thread_id="171.000", ) event = MessageEvent(text="mention me again", source=source) result = await runner._prepare_inbound_message_text( event=event, source=source, history=[], ) assert result == "[Alice | Slack user <@U123>] mention me again"