Repository navigation
Slack chart replies via Slack's current upload API; a failed command stops its typing indicator - #36
Merged
Merged
Conversation
…ror line goes out A command that raised after starting its typing indicator never stopped it, so "typing…" kept showing for up to 20 seconds and could come back after the error reply. Each request now keeps the indicators it starts; process_request stops them before reporting the failure (and in any case when the request ends). The test fixture now fails any test that leaves an indicator running. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JVEkZofdPjQ4jtXFKipeUX
…oad API Slack retired files.upload, so Slack replies had been sent as text. Charts in Slack replies are now uploaded into the channel the way Slack takes files today: files.getUploadURLExternal for an upload URL, the bytes POSTed there, then files.completeUploadExternal to share the file in the channel with the report as its message. If a step fails (a missing scope, not in the channel, Slack down) the reply goes out as text and the log says why; after a read timeout on the last step nothing more is sent, since the chart may have arrived. Scheduled reports still reach Slack through the incoming webhook, which takes text only. Telegram's sendPhoto is unchanged, moved into telegram_photo(). The README asks for the chat:write, files:write and files:read scopes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JVEkZofdPjQ4jtXFKipeUX
robdevops
enabled auto-merge
October 14, 2026 06:16
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Slack charts
Slack retired
files.upload, so Slack replies had been sent as text. Charts in Slack replies are now uploaded into the channel with Slack's current flow:files.getUploadURLExternalreturns an upload URL.files.completeUploadExternalshares the file in the channel, with the report as its message.telegram_photo().chat:write,files:writeandfiles:readscopes, and notes that scopes added to an installed app need Reinstall to Workspace.Tested against simulated Slack responses only: Slack can't be reached from the dev sandbox.
Typing indicator
A command that raised after starting its typing indicator never stopped it, so "typing…" stayed up for up to 20 seconds and could come back after the error reply.
process_requestnow stops the indicators its request started before reporting the failure. The test fixture fails any test that leaves an indicator running.Tests
260 pass (
.venv/bin/python -m unittest discover -s tests).🤖 Generated with Claude Code
https://claude.ai/code/session_01JVEkZofdPjQ4jtXFKipeUX
Generated by Claude Code