fix: 保留跨搜索/折叠选择,隐藏选择参与删除时必须明确确认。

更新行为文档
补充测试
This commit is contained in:
2026-07-31 20:04:48 +08:00
parent 8526063cea
commit 2da3dc0544
8 changed files with 125 additions and 51 deletions
@@ -5823,11 +5823,11 @@
- 当前口径:`server-rs/crates/platform-llm/tests/live_stream_tool_calls.rs` 是默认忽略的真实端点工具调用 smoke;`on_delta` 只接收文本,工具调用从最终 `LlmRunResponse.tool_calls` 读取。现有测试没有原始 SSE 录制、事件类型/slot/分片顺序保存或逐事件比较,因此两类测试都不能证明 raw SSE fidelity 或抓包转录无偏差。
- 现有确定性流式工具覆盖应与普通 Anthropic 文本流测试分开统计:三协议真实来源 fixture、Responses 仅有 completed / incomplete 终态事件时的恢复、并行 slot 聚合、截断参数和无片段 `StreamUnavailable` 等用例共同覆盖 parser 边界;未来若需证明转录一致性,必须另行增加受控原始 SSE capture/compare 能力。
## 2026-07-27 图片画布左侧素材库统一可见范围多选与批量下载
## 2026-07-27 图片画布左侧素材库统一稳定多选与批量操作
- 范围边界:本次只重写左侧素材库选择模式,不改变中央画布舞台和图层列表的选择、框选或下载语义。可选择集合固定为当前搜索结果中已展开、上传完成且媒体地址有效的素材;搜索或折叠变化后立即清理不可见选择。
- 输入语义:桌面普通点击替换选择,`Ctrl / Cmd + 点击` 切换追加,`Shift + 点击` 按当前可见顺序选择连续区间,`Ctrl / Cmd + Shift + 点击` 追加连续区间;触摸和笔输入单击切换选择。退出选择模式、关闭素材栏或切到图层栏统一清空选择、锚点和框选状态,非选择模式不显示历史选中高亮。
- 工具栏与导出:批量工具栏作为素材滚动列表的固定非滚动底栏,提供可见范围全选 / 取消全选、下载、删除和取消;选择模式隐藏单行下载 / 重命名并禁用行拖拽和右键菜单。移动端选择模式使用独立的侧栏高度状态,并让素材列表恢复纵向滚动,避免普通模式 `14rem` 高度上限被固定底栏、标题和搜索区吃完。一个选中素材直接下载,多个选中素材复用画布素材导出管线生成 `项目名-选中素材-YYYYMMDD-HHmmss.zip`,根目录为 `项目名-选中素材/`;单素材、序列帧和两类集合 ZIP 的下载名统一包含到秒的本地时间戳。素材卡整行是统一选择命中区,标题和空白区不得绕过 Ctrl / Cmd / Shift 选择处理。
- 范围边界:本次只重写左侧素材库选择模式,不改变中央画布舞台和图层列表的选择、框选或下载语义。选择集合以全部上传完成且媒体地址有效的素材为有效性边界,不因搜索、折叠或展开变化而收缩;只有素材被删除、进入上传中 / 失败态或媒体地址失效时才清理对应选择和范围锚点。
- 输入语义:鼠标、键盘、触摸和笔输入单击都只切换当前素材,不替换其它已选素材;`Shift + 点击` 按当前可见顺序把连续区间增量加入现有选择,锚点当前不可见时退化为切换目标素材并建立新锚点。当前搜索结果的全选 / 取消全选只增量增删已展开的可见素材并保留其它选择,同时清空上次单项选择的范围锚点。退出选择模式、关闭素材栏或切到图层栏统一清空选择、锚点和框选状态,非选择模式不显示历史选中高亮。
- 工具栏与导出:批量工具栏作为素材滚动列表的固定非滚动底栏,展示跨搜索与折叠状态保留的全部已选数量,并提供当前可见范围全选 / 取消全选、下载、删除和取消。下载消费完整选中集合;删除完整选中集合时,如果其中存在当前未显示素材,必须先用危险确认弹窗明确展示全部删除数量和未显示数量,用户确认前不得执行删除。选择模式隐藏单行下载 / 重命名并禁用行拖拽和右键菜单。移动端选择模式使用独立的侧栏高度状态,并让素材列表恢复纵向滚动,避免普通模式 `14rem` 高度上限被固定底栏、标题和搜索区吃完。一个选中素材直接下载,多个选中素材复用画布素材导出管线生成 `项目名-选中素材-YYYYMMDD-HHmmss.zip`,根目录为 `项目名-选中素材/`;单素材、序列帧和两类集合 ZIP 的下载名统一包含到秒的本地时间戳。素材卡整行是统一选择命中区,标题和空白区不得绕过单项切换或 Shift 范围处理。
## 2026-07-29 抽取通用多 Agent Runtime 公共内核第一阶段