Skip to content

Remove the passive Slack listener; outbound only - #6

Merged
odfalik merged 1 commit into
mainfrom
feat/remove-passive-listener
Aug 1, 2026
Merged

odfalik merged 1 commit into
mainfrom
feat/remove-passive-listener

Conversation

@odfalik

@odfalik odfalik commented Aug 1, 2026

Copy link
Copy Markdown
Collaborator

Golem no longer needs to listen — QM handles inbound Slack, with per-person scopes and its own turn detection. The listener here spawned a full claude -p for every unowned message in a watched channel, which was expensive and answered people who weren't talking to us.

Removed

Socket Mode connection, leader election + lock file, the JSONL event bus and its tailer, cold replies, channel notifications, and the claude/channel capability. SLACK_APP_TOKEN is no longer read.

Kept

All eight outbound tools — reply, read_history, get_thread, fetch_file, add_reaction, remove_reaction, list_channels, debug — plus per-conversation thread tracking. 1234 → 887 lines.

Verified

Against the venv actually in use (mcp 1.28.1), not a fresh resolve: module imports cleanly, all eight tools present, no listener symbols remain, auth_test still succeeds as @golem.

Unrelated issue worth flagging

A fresh dependency resolve picks mcp 2.0.0, where the lowlevel Server has no list_tools and the module fails to import outright. This pre-dates the branch — pristine main fails identically — but mcp>=1.26.0 in pyproject probably wants an upper bound.

The listener spawned a full `claude -p` for every unowned message in a watched
channel. That is expensive, answers people who were not talking to us, and is
superseded by QM, which handles inbound Slack with per-person scopes and its own
turn detection.

Removed: Socket Mode connection, leader election and its lock file, the JSONL
event bus, the event-bus tailer, cold replies, and channel notifications --
along with the claude/channel capability, since nothing pushes any more.
SLACK_APP_TOKEN is no longer read at all.

Kept: every outbound tool (reply, read_history, get_thread, fetch_file,
add_reaction, remove_reaction, list_channels, debug) and per-conversation thread
tracking. 1234 -> 887 lines.

Verified against the venv actually in use (mcp 1.28.1): module imports, all eight
tools present, no listener symbols, and auth_test still succeeds as @golem.

Note: a fresh resolve picks mcp 2.0.0, where the lowlevel Server API has no
list_tools and the module fails to import. That pre-dates this branch -- pristine
main fails identically -- but pyproject's `mcp>=1.26.0` should probably be capped.
@odfalik
odfalik merged commit 69c5370 into main Aug 1, 2026
1 of 4 checks passed
@odfalik
odfalik deleted the feat/remove-passive-listener branch August 1, 2026 23:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant