Attachments
How attachments work
Section titled “How attachments work”When you attach a file in chat, Pinchy uses a two-phase upload system to keep things fast and reliable.
Phase 1 — Upload to staging
Section titled “Phase 1 — Upload to staging”As soon as you pick a file, the composer POSTs it to Pinchy over standard multipart form data. The server accepts it immediately and stores it in a temporary staging area. You'll see a chip appear in the composer confirming the file is ready.
The file stays staged — but not yet part of any conversation — until you actually send the message.
Phase 2 — Promote on send
Section titled “Phase 2 — Promote on send”When you hit Send, Pinchy promotes the staged file to a durable location and includes it in the message delivered to the agent. From that point, the file is attached to the conversation and the agent can read it.
Staged vs. attached
Section titled “Staged vs. attached”| State | What it means | | ------------ | ------------------------------------------------------------------------ | | Staged | Uploaded and waiting. Not yet part of a conversation. Expires after 24h. | | Attached | Promoted when the message was sent. Durable — part of the conversation. |
If you upload a file but never send the message, Pinchy's hourly cleanup sweep will remove it after 24 hours. No action needed on your part — it just disappears from the composer.
Supported file types
Section titled “Supported file types”Pinchy accepts PDFs, images (JPEG, PNG, GIF, WebP, HEIC, HEIF), and text-data files (CSV, plain text, Markdown, JSON, YAML). Files outside the accepted types are rejected at upload with a clear error.
PDFs are passed to the agent as readable documents. Images are passed as visual input — useful for agents configured with a vision-capable model. Text-data files (CSV, TXT, MD, JSON, YAML) are saved to the agent's workspace as re-readable files, so the agent can open them on demand rather than receiving the contents inline. DOCX and source-code files take a different path: their extracted text is inlined directly into the message. See File uploads for the full lifecycle.
Attachments from email
Section titled “Attachments from email”Chat uploads aren't the only way files reach an agent's workspace. An agent with email Read access can call email_get_attachment to download an attachment from a connected mailbox — it lands in the same uploads/ folder as chat attachments, with a sanitized filename, and is readable afterward with the same tools (PDF reading, image analysis, and so on). See Connect Email (Gmail) and Connect Email (Microsoft) for how to connect a mailbox and grant this access.
The "Protocol outdated" toast
Section titled “The "Protocol outdated" toast”If you see a persistent toast saying the protocol is outdated, your browser tab is running an older version of Pinchy that uses a legacy attachment path the server no longer accepts. This happens when you leave a tab open across a Pinchy upgrade.
Fix: Reload the page. The tab will pick up the current version and the toast will go away.