|
1 | 1 | # Changelog |
2 | 2 |
|
| 3 | +## 0.5.18 — 2026-07-21 |
| 4 | + |
| 5 | +### Model-visible image attachments across every surface |
| 6 | + |
| 7 | +Operators can now show images to the model: paste (Ctrl/Cmd+V), drag-drop, |
| 8 | +or pick images in the portal composer — desktop and mobile — attach from the |
| 9 | +TUI with Ctrl+V (OS clipboard) or Ctrl+A (file path), or send attachment refs |
| 10 | +through the Web API, SDK, and MCP server. Images persist as session binary |
| 11 | +artifacts (upload-first, reference-after); vision-capable models receive them |
| 12 | +as true multimodal blob attachments with per-model capability gating. New |
| 13 | +sessions use orchestration `1.0.65`. |
| 14 | + |
| 15 | +### SDK |
| 16 | + |
| 17 | +- `sendMessage`/`send` accept `attachments: [{filename}]` refs, validated at |
| 18 | + the API edge against the session's artifact store (png/jpeg/gif/webp, 4 MB |
| 19 | + per image, 4 images / 8 MB per message) and carried on the durable queue as |
| 20 | + resolved refs — bytes never enter orchestration history. |
| 21 | +- Orchestration `1.0.65` threads attachment refs through drain, merge, and |
| 22 | + continue-as-new (`1.0.64` frozen); the runTurn activity fetches bytes from |
| 23 | + the artifact store, gates on the live model catalog's vision capability |
| 24 | + (`SessionManager.getModelVisionInfo`), and forwards blob attachments to the |
| 25 | + Copilot session. Drops are explicit: prompt omission notes plus |
| 26 | + `runtime.attachment_dropped` events. |
| 27 | +- Attachment refs ride the `user.message` event for transcript rendering. |
| 28 | + |
| 29 | +### Portal |
| 30 | + |
| 31 | +- Composer image intake: clipboard paste, drag-drop (with drop highlight), |
| 32 | + and a paperclip picker (`accept=image/*` offers camera/photo library on |
| 33 | + phones); staged images render as thumbnail chips with size and remove. |
| 34 | +- Transcript user messages render authenticated thumbnail strips; the Files |
| 35 | + pane previews raster image artifacts inline. |
| 36 | +- Stale-status guard now trusts the server's monotonic `statusVersion`, |
| 37 | + fixing sessions wedged on "Working.." after turn completion. |
| 38 | +- Artifact/attachment validation errors return actionable 4xx codes |
| 39 | + (`ARTIFACT_CONTENT_TYPE_MISMATCH`, `ARTIFACT_TOO_LARGE`, |
| 40 | + `INVALID_ATTACHMENT`) instead of generic 500s. |
| 41 | +- Ingress body limit raised to 8 MB for image uploads (deploy manifest). |
| 42 | + |
| 43 | +### TUI |
| 44 | + |
| 45 | +- Ctrl+V pastes an image from the OS clipboard (pngpaste/osascript on macOS, |
| 46 | + wl-paste/xclip on Linux, PowerShell on Windows) and stages it on the next |
| 47 | + message; Ctrl+A path uploads auto-stage raster images the same way. |
| 48 | + |
| 49 | +### MCP |
| 50 | + |
| 51 | +- `send_message` and `send_and_wait` accept `attachments` (web mode); |
| 52 | + `get_capabilities` reports `prompt.imageAttachments`. |
| 53 | + |
| 54 | +### Worker |
| 55 | + |
| 56 | +- Turn timeout is deployment-configurable. |
| 57 | + |
| 58 | +### Docs |
| 59 | + |
| 60 | +- `docs/proposals/image-attachments-in-chat.md` rewritten to match the |
| 61 | + shipped architecture; new draft proposal |
| 62 | + `docs/proposals/durable-signals-and-webhooks.md` (`wait_for_signal`). |
| 63 | + |
3 | 64 | ## 0.5.17 — 2026-07-20 |
4 | 65 |
|
5 | 66 | ### Reliable finite delegation and cleaner shared UI rendering |
|
0 commit comments