Support image uploads via iMessage #45

Merged
ryan merged 1 commits from imessage-image-upload into main 2026-09-12 14:11:02 -04:00
Owner

Summary

  • Extract media_url from SendBlue webhook payload
  • Download the image and analyze it via analyze_user_image (same vision pipeline used by the web chat)
  • Inject the description as [Image analysis: ...] into the agent message, combined with any caption text
  • Image-only messages (no caption) are now accepted instead of rejected as missing content

Test plan

  • Send an iMessage with just an image — should get a response describing it
  • Send an iMessage with an image + caption — description and caption both reach the agent
  • Send a plain text iMessage — unchanged behavior
  • Send a message with neither content nor media_url — still returns 400

🤖 Generated with Claude Code

## Summary - Extract `media_url` from SendBlue webhook payload - Download the image and analyze it via `analyze_user_image` (same vision pipeline used by the web chat) - Inject the description as `[Image analysis: ...]` into the agent message, combined with any caption text - Image-only messages (no caption) are now accepted instead of rejected as missing content ## Test plan - [ ] Send an iMessage with just an image — should get a response describing it - [ ] Send an iMessage with an image + caption — description and caption both reach the agent - [ ] Send a plain text iMessage — unchanged behavior - [ ] Send a message with neither content nor media_url — still returns 400 🤖 Generated with [Claude Code](https://claude.com/claude-code)
ryan added 1 commit 2026-09-12 14:08:36 -04:00
When SendBlue delivers a message with a media_url, download the image
and pass it through analyze_user_image so the agent receives a text
description alongside any caption. Image-only messages (no caption) are
now accepted; previously they were rejected as missing content.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
ryan merged commit 0212058677 into main 2026-09-12 14:11:02 -04:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: ryan/simbarag#45