Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 9 additions & 23 deletions gateway/platforms/slack.py
Original file line number Diff line number Diff line change
Expand Up @@ -977,38 +977,24 @@ def _has_active_session_for_thread(
return False

try:
# Build a SessionSource for this thread
from gateway.session import SessionSource
from gateway.session import SessionSource, build_session_key
from gateway.config import Platform

source = SessionSource(
platform=Platform.SLACK,
chat_id=channel_id,
chat_type="group",
user_id=user_id,
thread_id=thread_ts,
)

# Generate the session key using the same logic as SessionStore
# This mirrors the logic in build_session_key for group sessions
key_parts = ["agent:main", "slack", "group", channel_id, thread_ts]

# Include user_id if group_sessions_per_user is enabled
# We check the session store config if available
group_sessions_per_user = getattr(
session_store, "config", {}

store_config = getattr(session_store, "config", None)
session_key = build_session_key(
source,
group_sessions_per_user=getattr(store_config, "group_sessions_per_user", True),
thread_sessions_per_user=getattr(store_config, "thread_sessions_per_user", False),
)
if hasattr(group_sessions_per_user, "group_sessions_per_user"):
group_sessions_per_user = group_sessions_per_user.group_sessions_per_user
else:
group_sessions_per_user = True # Default

if group_sessions_per_user and user_id:
key_parts.append(str(user_id))

session_key = ":".join(key_parts)

# Check if the session exists in the store

session_store._ensure_loaded()
return session_key in session_store._entries
except Exception:
Expand Down
Loading