Describe Issue Intake Images
Actually look at what the reporter attached, and say what is in it.
ISS-570. tools/rooster_worker/worker.py is a synchronous poll loop that talks to this API over httpx and holds no database connection of its own -- app.core.model_client's credential resolution needs one (vault first, per CLAUDE.md's "AI model registry"), so the vision call has to happen HERE, in the API process, not in the worker. Same gate as the sibling GET /images above: this is a Rooster-agent-only route, not a UI surface.
describe_screenshot_attachments (app/modules/issues/intake_service.py) does the actual work: fetch the screenshots, call Surface. BUG_INTAKE_VISION through the registry, return the description or None. Never raises past a missing conversation -- a failed vision pass is not a 500, it is {"description": None}, so the worker's own contract ("a screenshot we could not read must leave Rooster saying so, never inventing") holds all the way through this route.
Request
- Base URL: https://api.pigeonly.com (the document declares no server; this is the origin it was published from)
- URL: https://api.pigeonly.com/api/rooster/issues/intake/{conversation_id}/describe-images
- Auth: none declared
Path parameters
Response
Successful Response
Changes
No recorded changes to this operation across all 1 revision of this API.