Skip to content

Commit b9e76d7

Browse files
Update Slack bot documentation with new features
- Add table of all available bot tools - Document read_job_logs capability for viewing histograms and logs - Document thread-based conversation behavior - Explain restart resilience with automatic context recovery - Add troubleshooting entry for thread message issues Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent ef6687b commit b9e76d7

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed

docs/slack-app-setup.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,22 @@ You should see:
142142

143143
## Bot Capabilities
144144

145+
### Available Tools
146+
147+
The bot has access to the following tools:
148+
149+
| Tool | Description |
150+
|------|-------------|
151+
| `submit_transfer` | Submit a new data transfer job |
152+
| `check_status` | Check status of transfer jobs in the thread |
153+
| `list_backends` | List available/allowed rclone backends |
154+
| `cancel_job` | Cancel a running transfer job |
155+
| `get_transfer_details` | Get detailed shard-level progress |
156+
| `get_manifest_stats` | Scan a source path for file statistics |
157+
| `check_path_exists` | Verify a bucket/path is accessible |
158+
| `request_backend_access` | Request access to a new backend |
159+
| `read_job_logs` | Read job logs and analysis data |
160+
145161
### Check data size before transferring
146162

147163
Ask the bot to scan a source and report statistics:
@@ -156,6 +172,22 @@ The bot will return:
156172
- Suggested rclone flags based on file sizes
157173
- Estimated transfer times
158174

175+
### View job logs and analysis
176+
177+
For running or completed jobs, ask the bot to show logs and analysis data:
178+
179+
```
180+
@xfer-bot show me the file size histogram for job 12345
181+
@xfer-bot what rclone commands were run for this transfer?
182+
@xfer-bot show me the logs for job 12345
183+
```
184+
185+
The bot can return:
186+
- File size distribution histogram from manifest analysis
187+
- Suggested rclone flags that were determined during setup
188+
- Tail of prepare job stdout/stderr logs
189+
- Extracted rclone commands that were run
190+
159191
### Custom rclone flags
160192

161193
Specify custom flags that are appended to the intelligent defaults:
@@ -178,6 +210,15 @@ The bot automatically analyzes file sizes and selects optimal rclone flags:
178210

179211
All transfers include `--stats 600s --progress` for ETA tracking.
180212

213+
### Thread-based conversations
214+
215+
The bot tracks conversations by Slack thread. Key behaviors:
216+
217+
- **Initial contact**: Mention the bot with `@xfer-bot` to start a conversation
218+
- **Follow-ups**: Once the bot has responded in a thread, any user can ask follow-up questions without mentioning the bot
219+
- **Persistent context**: The bot associates Slurm jobs with the thread they were submitted from, so asking "what's the status?" in a thread will show jobs from that thread
220+
- **Restart resilience**: If the bot restarts, it automatically recovers thread context from Slack's API, so ongoing conversations continue working
221+
181222
## Running as a Service
182223

183224
For production, run the bot as a systemd service:
@@ -258,6 +299,11 @@ xfer-slackbot
258299
- Verify `XFER_ALLOWED_CHANNELS` includes the channel ID (or is unset for all channels)
259300
- Check logs for errors
260301

302+
### Bot doesn't respond to thread messages
303+
- The bot only responds to threads where it has previously participated
304+
- Someone must first mention the bot with `@xfer-bot` to start the conversation
305+
- After a bot restart, the bot will automatically recover context by checking Slack's thread history
306+
261307
### "not_in_channel" errors
262308
- The bot needs to be invited to channels before it can read/write messages
263309

@@ -267,3 +313,4 @@ xfer-slackbot
267313

268314
### Permission errors
269315
- Review OAuth scopes — you may need to reinstall the app after adding scopes
316+
- The `channels:history` scope is required for the bot to recover thread context after restarts

0 commit comments

Comments
 (0)