# v0.5.16 > 图片生成插件稳定性修复 + API 请求体积安全网。 ## 修复 - **image-gen 返回标准 MCP image block**(#67)。image-gen 插件不再返回自定义 `image_url` block(会被 MCP schema 校验拒绝),改为标准 `text` block 内嵌 markdown `![](url)` 语法;客户端 `extractImageBlocks` 已能从 text block 中提取 URL 图片并内联渲染。同时 `preview-agent.js` 适配新的返回格式。 - **API 媒体体积预算**(#68)。新增 `shrinkMediaToSizeBudget()` 安全网:当对话累积的 base64 图片总量超过 12MB 时,自动移除最旧的图片 block(替换为文本占位符),防止触碰 API ~20MB 请求体积上限。URL 图片永不被移除(不占请求体积)。 - **图片网格点击全屏**(#68)。`ToolCallBlock` 中 `extractImageBlocks` 渲染的图片网格(来自 MCP tool result)从静态 `` 升级为可交互画廊:hover 显示全屏图标,点击打开 `ImageGalleryModal`,支持左右箭头键切换和缩略图条导航,体验与 `InlineImageGallery`(本地文件路径图片)一致。 ## 范围 - `src/services/api/claude.ts`:新增 `shrinkMediaToSizeBudget()` + `getMediaBase64Size()` 辅助函数,接入 API 调用管线(`stripExcessMediaItems` 之后)。 - `src/constants/apiLimits.ts`:新增 `API_MAX_MEDIA_BYTES_BUDGET = 12MB` 常量。 - `desktop/src/components/chat/ToolCallBlock.tsx`:新增 `ImageBlockGallery` 组件,导入 `ImageGalleryModal`。 - `desktop/src-tauri/resources/preview-agent.js`:适配 image-gen 新返回格式。 - 测试:`src/services/api/shrinkMediaBudget.test.ts`(10 cases)、`desktop/src/components/chat/ImageBlockGallery.test.tsx`(7 cases)。 ## 验证 - `bun test src/services/api/shrinkMediaBudget.test.ts`:10 passed ✅ - `desktop vitest run src/components/chat/`:293 passed(含新增 7 个 ImageBlockGallery 测试)✅ - PR #67 / #68 CI 全绿 ✅