mirror of
https://github.com/NanmiCoder/cc-haha
synced 2026-07-31 16:33:34 +08:00
1.9 KiB
1.9 KiB
v0.5.16
图片生成插件稳定性修复 + API 请求体积安全网。
修复
- image-gen 返回标准 MCP image block(#67)。image-gen 插件不再返回自定义
image_urlblock(会被 MCP schema 校验拒绝),改为标准textblock 内嵌 markdown语法;客户端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 全绿 ✅