Skip to content

Own Slack webhook, delivery and file handling in AgentChat - #26

Open
ghost wants to merge 1 commit into
mainfrom
codex/slack-provider-services
Open

ghost wants to merge 1 commit into
mainfrom
codex/slack-provider-services

Conversation

@ghost

@ghost ghost commented Oct 17, 2026 •

Copy link
Copy Markdown

Applications that own their inbox and persistence still had to implement Slack signatures, delivery receipts, file recovery, Canvas parsing and Markdown conversion themselves. Add reusable SlackWebhook, SlackDelivery and SlackFileReader services alongside SlackHost, so Moyai can delegate that protocol work to AgentChat.

  • Rust owns validation, bounded reads, formatting and outcome classification. Python adapters expose injectable host HTTP, credentials and authorization callbacks; application sessions, grants and durable claims stay with the host.
  • Writes make one attempt. A lost acknowledgment remains uncertain; reconciliation reads bounded thread history and matches both metadata type and ID without reposting. Cancellation and application authorization failures propagate.
  • File reads share metadata and stream verification with the existing download APIs, check authority across the read, preserve diagnostics across retries, and clean up temporary files on cancellation. Canvas HTML becomes bounded inert preview text while callers retain the original bytes. The public Rust FileTransport::download method remains source compatible.
  • Markdown conversion shares fence/link-aware splitting and preserves the current Moyai formatting behavior. Existing RichReply text remains literal unless callers explicitly request conversion.

Validation: 666 Python tests; full Ruff and public type checks; Python package smoke; Rust workspace tests, formatting, Clippy, no-default-feature and Slack example checks; Node release build, typechecks, 10 package tests, package-install smoke and 4 example tests. Focused reader tests were repeated after the final compatibility and authorization fixes. Local toolchains were Python 3.13, Rust 1.95 and Node 24 on macOS arm64; the minimum Rust/Python and cross-platform wheel matrix run in CI.

The paired Moyai PR #551 pins this exact SDK commit and removes 496 net production lines of duplicated Slack implementation. Its 279 focused integration tests pass against the installed Git SDK wheel, including the original parent-context regression, real file/Canvas retention, access revocation and uncertain sends. Merge this SDK change first.

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.

0 participants