teknium1
978e1356c0
feat: Slack adapter improvements — formatting, reactions, user resolution, commands
1. Markdown → mrkdwn conversion (format_message override):
- **bold** → *bold*, *italic* → _italic_
- ## Headers → *Headers* (bold)
- [link](url) → <url|link>
- ~~strike~~ → ~strike~
- Code blocks and inline code preserved unchanged
- Placeholder-based approach (same pattern as Telegram)
2. Message length splitting:
- send() now calls format_message() + truncate_message()
- Long responses split at natural boundaries (newlines, spaces)
- Code blocks properly closed/reopened across chunks
- Chunk indicators (1/N) appended for multi-part messages
3. Reaction-based acknowledgment:
- 👀 (eyes) reaction added on message receipt
- Replaced with ✅ (white_check_mark) when response is complete
- Graceful error handling (missing scopes, already-reacted)
- Serves as visual feedback since Slack has no bot typing API
4. User identity resolution:
- Resolves Slack user IDs to display names via users.info API
- LRU-style in-memory cache (one API call per user)
- Fallback chain: display_name → real_name → user_id
- user_name now included in MessageEvent source
5. Expanded slash commands (/hermes <subcommand>):
- Added: compact, compress, resume, background, usage,
insights, title, reasoning, provider, rollback
- Arguments preserved (e.g. /hermes resume my session)
6. reply_broadcast config option:
- When gateway.slack.reply_broadcast is true, first response
in a thread also appears in the main channel
- Disabled by default — thread = session stays clean
30 new tests covering all features.
2026-03-12 16:22:39 -07:00
..
2026-02-26 03:20:08 +03:00
2026-03-07 11:27:50 -08:00
2026-03-11 02:46:31 -07:00
2026-03-10 04:12:39 -07:00
2026-03-11 09:15:34 +01:00
2026-03-11 09:15:34 +01:00
2026-02-26 03:20:08 +03:00
2026-03-11 09:15:34 +01:00
2026-03-09 02:20:57 -07:00
2026-03-11 09:15:31 -07:00
2026-02-27 11:53:46 -05:00
2026-03-11 06:32:01 -07:00
2026-03-03 05:16:53 -08:00
2026-03-05 18:39:37 -08:00
2026-03-12 08:35:45 -07:00
2026-02-28 03:38:27 -05:00
2026-03-11 09:15:34 +01:00
2026-03-05 18:39:37 -08:00
2026-03-05 18:39:37 -08:00
2026-03-08 17:09:00 -07:00
2026-03-10 23:34:52 -07:00
2026-03-11 09:15:34 +01:00
2026-03-07 22:57:05 -08:00
2026-03-11 09:15:34 +01:00
2026-03-11 09:15:34 +01:00
2026-03-08 21:00:21 -07:00
2026-03-12 16:22:39 -07:00
2026-03-01 05:28:12 -08:00
2026-03-09 13:07:10 -07:00
2026-03-07 18:55:25 +03:00
2026-03-08 15:54:51 -07:00
2026-03-04 21:34:40 +03:00
2026-03-05 01:20:58 -08:00
2026-03-05 17:13:14 +03:00