图集切片模式改为必须显式声明并补齐决策要求

平台图标图集生成入口把 sliceMode 改为必填并移除默认值,缺失、空白或未知取值在引用解析、定价与 provider 副作用之前返回 400
切分声明改按原始字符串校验,拒绝信息统一带 field 与决策要求,不再落到通用 JSON 解析错误
grid 必须同时提供 gridX/gridY,connected-components 不接受网格尺寸,矛盾请求失败关闭
sliceCount 只约束连通域切分,公开契约的请求与响应上限统一为 256
画板 Agent 工具装配与画板前端提交计划显式声明连通域切分
AGC MCP 工具说明去掉默认值并补决策要求,桥接层新增可测试的切分声明校验
AGC 原生工具 canvas.asset_generate 暴露 sliceMode/gridX/gridY/sliceCount 并要求图集显式声明
图集生成结果回显 sliceMode/gridX/gridY 与 slicePaths,严格图集在本地提交前校验平台回显与请求一致
标准美术包显式声明 connected-components 加 sliceCount=4,并在四张 canonical 切片用途映射前校验数量
测试构建对提权 Windows 主机上系统临时目录的所有者偏差做一次性所有者初始化重试
同步主规范、OpenAPI、AGC Skill、外部编辑器 Skill、里程碑与实施计划以及共享决策记录
This commit is contained in:
kdletters
2026-09-17 17:46:56 +08:00
parent d85622069d
commit 3d9a60c55f
35 changed files with 798 additions and 81 deletions
@@ -2,6 +2,18 @@
> 用途:记录已经确认、会影响后续开发的长期技术/产品/协作决策。短期讨论不要写在这里。
> 当前口径:历史条目的旧路径、旧版本和已退役对象只用于追溯,不构成现行实现依据;如与当前代码或 `docs/README.md` 冲突,以当前代码和最新专题文档为准。
## 2026-09-17 图集切分模式改为显式声明
- 决策:`sliceMode` 在图标图集生成入口成为必填字段且不保留任何默认值。省略、`null` 或空字符串必须在引用解析、定价、入队和 provider / OSS 副作用之前返回 `400`(`field=sliceMode`);`grid` 必须同时提供 `gridX`/`gridY`,`connected-components` 不得携带网格尺寸,二者矛盾同样在副作用前失败关闭。
- 决策要求:只有用户或需求明确要求等分网格、固定槽位或指定行列数时才使用 `grid`,且行列数必须来自该需求;自由排布、数量不定或只要求一张图集时显式传 `connected-components`,需要约束素材张数时用 `sliceCount`,不得用网格参数表达张数,也不得用固定 `2×2` 表达“四类素材”。
- 影响面:平台两个图集生成入口(`/api/editor/...` 与 `/api/external/v1/editor/...`)、OpenAPI、画板 Agent 工具、画板前端提交计划、AGC 客户端 MCP 工具说明与桥接校验、AGC 原生工具 schema 与观察器、AGC Skill 与外部编辑器 Skill。
- 迁移影响:省略 `sliceMode` 的旧调用方(含已发布但未更新的 AGC 客户端和第三方外部 API 调用方)会在图集生成上收到 `400`;本次同时把仓库内自有调用方改为显式声明,不为旧客户端保留兜底分支。
- 错误可执行性:缺失、空白、未知取值都以 `400` + `field=sliceMode` 返回允许取值和决策分支,`grid` 缺维度提示 `sliceCount` 才是张数约束;`sliceCount` 的公开契约上限与切片上限统一为 `256`(识别数量与目标不一致返回 `422` 并回报实际数量)。
- 反馈闭环:图集生成结果回显生效的 `sliceMode`/`gridX`/`gridY` 与 `slicePaths`;严格图集提交前必须证明平台回显的模式(`grid` 时含行列数)与请求显式声明一致,缺失或不一致一律失败关闭。
- 标准美术包:客户端显式声明 `sliceMode=connected-components` + `sliceCount=4`,本地按用途位置写四张 canonical 切片前再次校验数量正好为四,数量不符时失败关闭,禁止截断或补位。
- 测试环境:在提权 shell 的 Windows 主机上,`%TEMP%` 下新建目录的默认所有者是 `BUILTIN\Administrators` 而不是当前 TokenUser,AGC 的所有者校验会拒绝测试自己创建的项目根;测试构建对该情形(仅限 `%TEMP%` 内、且失败原因为所有者不匹配)先按“本调用创建的对象”初始化所有者后重试,临时目录之外的越权所有者继续失败关闭。
- 权威合同:[画板图标素材生成入口设计](../../【编辑器】画板图标素材生成入口设计-2026-06-15.md)。
## 2026-09-16 抠图模式与背景色契约
- External v1 抠图和 AGC `agc_remove_background` 支持 `complex`(语义分割识别前景)与 `flat`(纯色背景抠图);明确纯色背景优先 flat,模式缺省仍为 complex,主站前端保持现有行为。