Skip to content

feat(messaging): expose Slack threaded sends (#341) - #987

Merged
olegbrok merged 1 commit into
mainfrom
agent/slack-threading-tools
Aug 3, 2026
Merged

feat(messaging): expose Slack threaded sends (#341)#987
olegbrok merged 1 commit into
mainfrom
agent/slack-threading-tools

Conversation

@bradbrok

@bradbrok bradbrok commented Aug 3, 2026

Copy link
Copy Markdown
Owner

What changed

  • expose optional reply_to on the messaging MCP send() tool and forward it to /broker/send
  • document the Slack default: preserve an inbound thread using the shipped thread_root_ts / is_thread_reply header fields, while omitting reply_to explicitly posts at channel root
  • add focused coverage for both the MCP payload and the Slack text-send thread_ts path

This completes Task #341 scope items 1 and 4. Scope item 3 is intentionally untouched because #864 already shipped the inbound thread provenance header.

Why

The broker and Slack adapter already supported threaded text replies, but the MCP send() surface omitted reply_to. Agents therefore could not intentionally preserve a Slack thread through that tool, and its documentation did not explain the threading default or channel-root override.

Impact

Thread-aware agents can now reply through send() without losing Slack conversation context. Existing callers remain compatible because reply_to is optional and appended to the function signature.

Live text-path proof

No deployment was needed: release 26.08.001 already exposes the broker path.

  • channel: support-beta (C0BGJE4LRD3)
  • root ts: 1785780383.099109
  • signed POST /broker/send with reply_to=root: HTTP 200
  • reply ts: 1785780688.495989
  • independent Slack readback: reply thread_ts=1785780383.099109; root reply_count=1

This proves the deployed text path lands visibly in-thread; no api.py text-path repair was required.

Checks

  • PYTHONPATH=src PINKY_SHARED_MCP=0 ... pytest -q: 4,569 passed, 4 skipped
  • focused messaging + broker provenance/text-path tests: 35 passed
  • python -m ruff check .: passed
  • git diff --check: passed

Screenshot/clip: N/A — this is an MCP tool-surface and broker plumbing change with no visual UI.

🤖 Opened by Murzik

@olegbrok
olegbrok marked this pull request as ready for review August 3, 2026 18:50

@olegbrok olegbrok left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verified: minimal surface (param + payload key), docstring documents threading default with shipped header field names, tests cover both layers, live text-path proof in body (geordi, C0BGJE4LRD3). CI green on 93fadb7. — Barsik

@olegbrok
olegbrok merged commit bcd0740 into main Aug 3, 2026
11 checks passed
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.

2 participants