Problem
The slack-channel-monitor skill silently drops trigger messages in four real scenarios. All four were observed on a production deployment polling 33 channels once per minute.
Actual Behavior
Deploy the skill and check slack_poller_debug.log, or run the poller manually:
python skills/slack-channel-monitor/scripts/main.py --debug
- Search index lag:
search.messages results are bounded by last_poll, but Slack's search index lags the live stream by ~1-2 min. A trigger message becomes searchable only after last_poll moved past it — dropped forever.
- @mention triggers unsearchable:
search.messages does not index the leading @ of a mention, and a quoted phrase ("openhands") does not match an @openhands mention either. With the default trigger phrase, the search path matches nothing.
- Thread context lost: search results carry no
thread_ts, so a trigger posted as a thread reply looks like a root message and starts a fresh conversation instead of continuing the tracked one.
- Wrong bot identity with user token:
auth.test on a user token returns the human owner, so their own messages are misclassified as bot output and skipped.
Expected Behavior
Trigger messages in a monitored channel reliably start/continue a conversation — whether posted at root level, inside a thread, detected 1-2 min after posting, or when running with a user token.
Acceptance Criteria
Notes
This exact patch has been running in production for ~3 weeks. A PR fixing all four issues is incoming.
Problem
The
slack-channel-monitorskill silently drops trigger messages in four real scenarios. All four were observed on a production deployment polling 33 channels once per minute.Actual Behavior
Deploy the skill and check
slack_poller_debug.log, or run the poller manually:search.messagesresults are bounded bylast_poll, but Slack's search index lags the live stream by ~1-2 min. A trigger message becomes searchable only afterlast_pollmoved past it — dropped forever.search.messagesdoes not index the leading@of a mention, and a quoted phrase ("openhands") does not match an@openhandsmention either. With the default trigger phrase, the search path matches nothing.thread_ts, so a trigger posted as a thread reply looks like a root message and starts a fresh conversation instead of continuing the tracked one.auth.teston a user token returns the human owner, so their own messages are misclassified as bot output and skipped.Expected Behavior
Trigger messages in a monitored channel reliably start/continue a conversation — whether posted at root level, inside a thread, detected 1-2 min after posting, or when running with a user token.
Acceptance Criteria
@mentiontrigger is found by the search path (trigger term searched without the leading@).conversations.replies).SLACK_USER_TOKENconfigured, the bot identity is resolved fromSLACK_BOT_TOKENand the human owner's messages are not skipped.python -m py_compile skills/slack-channel-monitor/scripts/main.pypasses.Notes
This exact patch has been running in production for ~3 weeks. A PR fixing all four issues is incoming.