tests/gateway/test_slack_approval_buttons.py::TestSlackExecApproval::test_sends_blocks_with_buttons tests/gateway/test_slack_approval_buttons.py::TestSlackExecApproval::test_sends_in_thread tests/gateway/test_slack_approval_buttons.py::TestSlackExecApproval::test_not_connected tests/gateway/test_slack_approval_buttons.py::TestSlackExecApproval::test_truncates_long_command tests/gateway/test_slack_approval_buttons.py::TestSlackApprovalAction::test_resolves_approval tests/gateway/test_slack_approval_buttons.py::TestSlackApprovalAction::test_prevents_double_click tests/gateway/test_slack_approval_buttons.py::TestSlackApprovalAction::test_deny_action tests/gateway/test_slack_approval_buttons.py::TestSlackApprovalAction::test_global_allowlist_blocks_unauthorized_click tests/gateway/test_slack_approval_buttons.py::TestSlackInteractiveAuth::test_delegates_to_gateway_runner_auth tests/gateway/test_slack_approval_buttons.py::TestSlackSlashConfirmAction::test_global_allowlist_allows_authorized_click tests/gateway/test_slack_approval_buttons.py::TestSlackThreadContext::test_fetches_and_formats_context tests/gateway/test_slack_approval_buttons.py::TestSlackThreadContext::test_skips_bot_messages tests/gateway/test_slack_approval_buttons.py::TestSlackThreadContext::test_empty_thread tests/gateway/test_slack_approval_buttons.py::TestSlackThreadContext::test_api_failure_returns_empty tests/gateway/test_slack_approval_buttons.py::TestSlackThreadContext::test_fetch_thread_context_includes_bot_parent tests/gateway/test_slack_approval_buttons.py::TestSlackThreadContext::test_fetch_thread_context_excludes_self_bot_replies tests/gateway/test_slack_approval_buttons.py::TestSlackThreadContext::test_fetch_thread_context_multi_workspace tests/gateway/test_slack_approval_buttons.py::TestSlackThreadContext::test_fetch_thread_context_current_ts_excluded tests/gateway/test_slack_approval_buttons.py::TestSlackThreadContext::test_fetch_thread_parent_text_from_cache tests/gateway/test_slack_approval_buttons.py::TestSessionKeyFix::test_uses_build_session_key tests/gateway/test_slack_approval_buttons.py::TestSessionKeyFix::test_no_session_returns_false tests/gateway/test_slack_approval_buttons.py::TestSessionKeyFix::test_no_session_store tests/gateway/test_slack_approval_buttons.py::TestThreadEngagement::test_send_tracks_bot_message_ts tests/gateway/test_slack_approval_buttons.py::TestThreadEngagement::test_bot_message_ts_cap tests/gateway/test_slack_approval_buttons.py::TestThreadEngagement::test_mentioned_threads_populated_on_mention tests/gateway/test_slack_approval_buttons.py::TestThreadEngagement::test_mentioned_threads_cap