feat(chat): Add file-capable Slack sendMessage#744
Conversation
Replace the channel-post-only Slack tool with sendMessage so the agent can send text, sandbox files, or both through one side-effect surface. Generated images are written to sandbox artifact paths before the tool returns, and later Slack file sends materialize those paths through the sandbox file upload helper. Remove the in-memory generated-image fallback for attachFile so file-like outputs that need to survive tool boundaries are represented by explicit handles. Update the prompt/spec contracts and add unit, component, integration, and eval coverage for the new boundaries. Refs #737 Co-Authored-By: GPT-5 Codex <codex@openai.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
A file-only sendMessage can satisfy the user's request without producing final assistant text or replyFiles. Count successful sendMessage tool results as channel-only side effects when there are no tool errors, so the turn does not get classified as an execution failure after Slack already received the message. Refs #737 Co-Authored-By: GPT-5 Codex <codex@openai.com>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 1e87c5b. Configure here.
| explicitChannelPostIntent: exactNoReplyMarker && explicitChannelPostIntent, | ||
| explicitChannelPostIntent: | ||
| (exactNoReplyMarker && explicitChannelPostIntent) || | ||
| channelMessageOnlySuccess, |
There was a problem hiding this comment.
Channel mode drops thread attachments
Medium Severity
When a turn succeeds with sendMessage and no assistant text, channelMessageOnlySuccess is treated as explicit channel-post intent. If attachFile also populated replyFiles, delivery becomes channel_only with attachFiles: none, so thread attachments are skipped even though they previously delivered in thread mode.
Reviewed by Cursor Bugbot for commit 1e87c5b. Configure here.


Slack channel posting now uses a
sendMessagetool that can send text, sandbox files, or both in one Slack side effect. File sends use Slack file upload with an optional initial comment, so file-only messages do not emit an emptychat.postMessage, and successfulsendMessagecalls satisfy the turn without duplicate thread replies.Generated image outputs are written to
/tmp/junior/artifacts/...beforeimageGeneratereturns a model-visible path.attachFileandsendMessagematerialize files from sandbox paths instead of a same-turn in-memory generated-file fallback, so process memory is only a cache across tool, delivery, resume, and later-turn boundaries.Refs #737