cc-haha/release-notes/v0.5.16.md
你的姓名 cec6eb88cd release: v0.5.16 (#68)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-06-17 06:01:27 +08:00

24 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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从静态 `<img>` 升级为可交互画廊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 全绿 ✅