Skip to content

feat: schedule messages with browser auth - #153

Open
dwaxe wants to merge 2 commits into
stablyai:mainfrom
dwaxe:dwaxe/browser-native-scheduling-upstream
Open

dwaxe wants to merge 2 commits into
stablyai:mainfrom
dwaxe:dwaxe/browser-native-scheduling-upstream

Conversation

@dwaxe

@dwaxe dwaxe commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Summary

  • keep standard tokens on the public chat.scheduleMessage API
  • schedule browser sessions through Slack-native drafts.create with date_scheduled
  • list and cancel native schedules through drafts.list and drafts.delete
  • verify Enterprise Grid organization and user identity before routing native draft calls
  • surface native-draft truncation and reject payloads Slack Desktop cannot preserve

Context

agent-slack already has the two required pieces from #102 and #119, but browser-session tokens cannot use chat.scheduleMessage. This connects the auth-aware paths while preserving Q... IDs for standard tokens and returning Dr... IDs for browser auth.

The native-draft behavior follows prior art from:

Browser traffic continues to use the shared Slack API client; #142 remains independent transport hardening.

Native scheduled drafts accept only non-empty top-level rich_text blocks, reject --no-unfurl, and report has_more when the non-pageable 100-draft response may be incomplete.

Validated with 410 tests, typecheck, format, lint, and the Node-targeted build.

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