From cd159163c5100a012f0c34a21fe11a60378db00d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BE=B7=E5=AE=87?= Date: Fri, 31 Jul 2026 16:56:49 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=90=88=E5=B9=B6=E5=9B=9E=E5=BD=92?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复文件encoding要求 更新测试 --- docs/project-memory/shared-memory/decision-log.md | 3 +-- src/components/image-editor/ImageCanvasEditorView.test.tsx | 6 ++++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/docs/project-memory/shared-memory/decision-log.md b/docs/project-memory/shared-memory/decision-log.md index 7aaddd5c0..9bda0bcf9 100644 --- a/docs/project-memory/shared-memory/decision-log.md +++ b/docs/project-memory/shared-memory/decision-log.md @@ -5779,7 +5779,7 @@ - 范围边界:本次只重写左侧素材库选择模式,不改变中央画布舞台和图层列表的选择、框选或下载语义。可选择集合固定为当前搜索结果中已展开、上传完成且媒体地址有效的素材;搜索或折叠变化后立即清理不可见选择。 - 输入语义:桌面普通点击替换选择,`Ctrl / Cmd + 点击` 切换追加,`Shift + 点击` 按当前可见顺序选择连续区间,`Ctrl / Cmd + Shift + 点击` 追加连续区间;触摸和笔输入单击切换选择。退出选择模式、关闭素材栏或切到图层栏统一清空选择、锚点和框选状态,非选择模式不显示历史选中高亮。 - 工具栏与导出:批量工具栏作为素材滚动列表的固定非滚动底栏,提供可见范围全选 / 取消全选、下载、删除和取消;选择模式隐藏单行下载 / 重命名并禁用行拖拽和右键菜单。移动端选择模式使用独立的侧栏高度状态,并让素材列表恢复纵向滚动,避免普通模式 `14rem` 高度上限被固定底栏、标题和搜索区吃完。一个选中素材直接下载,多个选中素材复用画布素材导出管线生成 `项目名-选中素材-YYYYMMDD-HHmmss.zip`,根目录为 `项目名-选中素材/`;单素材、序列帧和两类集合 ZIP 的下载名统一包含到秒的本地时间戳。素材卡整行是统一选择命中区,标题和空白区不得绕过 Ctrl / Cmd / Shift 选择处理。 - + ## 2026-07-29 抽取通用多 Agent Runtime 公共内核第一阶段 - 背景:AI 游戏创作 Runtime 已有独立 Runner、持久任务、Provider 恢复、Goal、计划、静态/隔离协作和 finalization,但实现仍属于 Tauri package;内建 capability、Agent 目录和 Run Profile 缺少第二个产品可直接依赖的公开契约。 @@ -5806,4 +5806,3 @@ - 生产接入:AGC Agent interaction 的 stream、普通请求及原 stream-unavailable/empty/deserialize fallback 已改由 `ProviderRegistry` 执行;对外 `LlmStreamDelta`、function name/schema、错误文案、Runner IPC 和 Provider retry/handoff/finalization 持久协议不变。 - 扩展边界:新 Provider 可直接实现 core `ProviderAdapter` 并注册,不修改 core enum/match。`platform-llm` 当前 DTO 不支持的 tool role/result、toolChoice none/specific 和 reasoning minimal/x-high 在 adapter 转换层零网络失败关闭;工具调用仍以最终 response 为权威。 - 关联文档:`docs/technical/【技术方案】AI游戏创作Agent Runtime V1.1-2026-07-12.md` V1.50。 - diff --git a/src/components/image-editor/ImageCanvasEditorView.test.tsx b/src/components/image-editor/ImageCanvasEditorView.test.tsx index 9c171e9e1..61065a83b 100644 --- a/src/components/image-editor/ImageCanvasEditorView.test.tsx +++ b/src/components/image-editor/ImageCanvasEditorView.test.tsx @@ -1122,7 +1122,9 @@ describe('ImageCanvasEditorView', () => { await waitFor(() => { expect(exportedBlob).toBeTruthy(); }); - expect(downloadName).toMatch(/^导出项目-画布素材-\d{8}\.zip$/u); + expect(downloadName).toMatch( + /^导出项目-画布素材-\d{8}-\d{6}\.zip$/u, + ); const zip = await JSZip.loadAsync(exportedBlob!); expect(zip.file('导出项目-画布素材/images/001-素材 A.png')).toBeTruthy(); @@ -1360,7 +1362,7 @@ describe('ImageCanvasEditorView', () => { fireEvent.click(screen.getByRole('button', { name: '下载按钮' })); await waitFor(() => { - expect(downloadName).toBe('拼图素材.webp'); + expect(downloadName).toMatch(/^拼图素材-\d{8}-\d{6}\.webp$/u); }); expect(downloadHref).toBe('blob:layer-download'); expect(globalThis.fetch).toHaveBeenCalledWith(