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

Merged
kdletters merged 3 commits from codex/slice-mode-explicit-decision-20260917 into master 2026-09-17 18:10:35 +08:00
Member

背景

切图新增基于连通域的切分后,LLM 仍倾向显式传 sliceMode=grid:参数只存在于部分 LLM 可见面、带默认值、没有任何决策规则,生成结果也不回显生效模式。

变更

  • 平台:/api/editor/icon-spritesheets/generations/api/external/v1/editor/icon-spritesheets/generationssliceMode 改为必填并移除默认值;缺失、空白或未知取值在引用解析、定价与任何 provider / OSS 副作用之前返回 400,错误统一带 field 与决策要求。
  • 契约:grid 必须同时提供 gridX/gridYconnected-components 不接受网格尺寸;sliceCount 只约束连通域切分,请求与响应的公开上限统一为 256;OpenAPI 去掉默认值并补必填与失败语义。
  • AGC:MCP 工具说明去掉默认值并补决策要求,桥接层新增可测试的切分声明校验;原生工具 canvas.asset_generate 暴露 sliceMode/gridX/gridY/sliceCount 并要求图集显式声明;生成结果回显 sliceMode/gridX/gridYslicePaths;严格图集在本地提交前校验平台回显与请求声明一致。
  • 标准美术包:显式声明 connected-componentssliceCount=4,并在四张 canonical 切片用途映射前校验数量,禁止截断或错位。
  • 前端与画板:画板 Agent 工具装配与画板提交计划显式声明连通域切分;前端类型要求显式 sliceMode 并在本地校验声明自洽。
  • 文档与 Skill:主规范、OpenAPI、AGC Skill、外部编辑器 Skill、里程碑与实施计划、共享决策记录同步更新。
  • 测试环境:测试构建对提权 Windows 主机上系统临时目录的所有者偏差做一次性所有者初始化重试,临时目录之外的越权所有者继续失败关闭。

兼容性影响

省略 sliceMode 的旧调用方(含已发布但未更新的 AGC 客户端与第三方外部 API 调用方)会在图集生成上收到 400;这是本次"不允许默认值"的预期结果,仓库内自有调用方已全部改为显式声明。

验证

  • 平台:slice_mode_must_be_declared_* 与 OpenAPI 契约测试通过;全量 cargo test -p api-server 1043 通过 / 11 失败(wallet_refund_outbox 临时文件 拒绝访问,已在改动前基线复现,属本机环境)。
  • AGC:slice 30、spritesheet 21、direct_tools_mcp 23、agent_native_tools 16、canvas_generation_tests 83、提示词上限与桥接门禁各 1 条、cargo check --tests 全部通过。
  • 前端:182 条定向测试与 typecheck 通过。
  • 门禁:cargo fmt --check(两个 workspace)、check:encodingcheck:doc-indexgit diff --check 通过。
  • 未验证:真实 Provider 与浏览器试玩、确定性 e2e 车道;整机全量 AGC 单进程运行在本机受提权 shell 的所有者与时序问题影响,不作为门禁信号。
## 背景 切图新增基于连通域的切分后,LLM 仍倾向显式传 `sliceMode=grid`:参数只存在于部分 LLM 可见面、带默认值、没有任何决策规则,生成结果也不回显生效模式。 ## 变更 - 平台:`/api/editor/icon-spritesheets/generations` 与 `/api/external/v1/editor/icon-spritesheets/generations` 把 `sliceMode` 改为必填并移除默认值;缺失、空白或未知取值在引用解析、定价与任何 provider / OSS 副作用之前返回 `400`,错误统一带 `field` 与决策要求。 - 契约:`grid` 必须同时提供 `gridX`/`gridY`,`connected-components` 不接受网格尺寸;`sliceCount` 只约束连通域切分,请求与响应的公开上限统一为 `256`;OpenAPI 去掉默认值并补必填与失败语义。 - AGC:MCP 工具说明去掉默认值并补决策要求,桥接层新增可测试的切分声明校验;原生工具 `canvas.asset_generate` 暴露 `sliceMode/gridX/gridY/sliceCount` 并要求图集显式声明;生成结果回显 `sliceMode/gridX/gridY` 与 `slicePaths`;严格图集在本地提交前校验平台回显与请求声明一致。 - 标准美术包:显式声明 `connected-components` 加 `sliceCount=4`,并在四张 canonical 切片用途映射前校验数量,禁止截断或错位。 - 前端与画板:画板 Agent 工具装配与画板提交计划显式声明连通域切分;前端类型要求显式 `sliceMode` 并在本地校验声明自洽。 - 文档与 Skill:主规范、OpenAPI、AGC Skill、外部编辑器 Skill、里程碑与实施计划、共享决策记录同步更新。 - 测试环境:测试构建对提权 Windows 主机上系统临时目录的所有者偏差做一次性所有者初始化重试,临时目录之外的越权所有者继续失败关闭。 ## 兼容性影响 省略 `sliceMode` 的旧调用方(含已发布但未更新的 AGC 客户端与第三方外部 API 调用方)会在图集生成上收到 `400`;这是本次"不允许默认值"的预期结果,仓库内自有调用方已全部改为显式声明。 ## 验证 - 平台:`slice_mode_must_be_declared_*` 与 OpenAPI 契约测试通过;全量 `cargo test -p api-server` 1043 通过 / 11 失败(`wallet_refund_outbox` 临时文件 `拒绝访问`,已在改动前基线复现,属本机环境)。 - AGC:`slice` 30、`spritesheet` 21、`direct_tools_mcp` 23、`agent_native_tools` 16、`canvas_generation_tests` 83、提示词上限与桥接门禁各 1 条、`cargo check --tests` 全部通过。 - 前端:182 条定向测试与 `typecheck` 通过。 - 门禁:`cargo fmt --check`(两个 workspace)、`check:encoding`、`check:doc-index`、`git diff --check` 通过。 - 未验证:真实 Provider 与浏览器试玩、确定性 e2e 车道;整机全量 AGC 单进程运行在本机受提权 shell 的所有者与时序问题影响,不作为门禁信号。
kdletters added 2 commits 2026-09-17 17:51:50 +08:00
平台图标图集生成入口把 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、里程碑与实施计划以及共享决策记录
合并 origin/master 并保留图集切片显式声明
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Has been cancelled
Project CI / AI game creator shell Rust smoke (pull_request) Has been cancelled
Project CI / AI game creator shell Rust crates (pull_request) Has been cancelled
Project CI / Backend tests (pull_request) Has been cancelled
Project CI / Native shell tests (pull_request) Has been cancelled
Project CI / Frontend tests (pull_request) Has been cancelled
Project CI / Repository checks (pull_request) Has been cancelled
Project CI / AI game creator shell web tests (pull_request) Has been cancelled
4bb0db6ac8
合并 origin/master 的 8 个提交:AGC 工具提示词上限按 kind 暴露、客户端默认重试次数、推理档弹层与策划工具修复
解决 agc-skills/manifest.json 冲突:按合并后的 skill 文件重新生成清单与指纹(version 2026-08-26.19)
解决 decision-log.md 冲突:同时保留 agc_tools 提示词上限与图集切分显式声明两条决策记录
合并后复跑定向验证:slice 30 条、spritesheet 21 条、direct_tools_mcp 23 条、agent_native_tools 16 条、提示词上限与桥接门禁各 1 条、api-server 切片模式与 OpenAPI 契约各 1 条、前端 182 条与 typecheck 全部通过
kdletters added 1 commit 2026-09-17 18:10:27 +08:00
Merge branch 'master' into codex/slice-mode-explicit-decision-20260917
Project CI / AI game creator shell Rust shard 4/4 (pull_request) Successful in 7m44s
Project CI / AI game creator shell Rust shard 2/4 (pull_request) Successful in 7m53s
Project CI / AI game creator shell Rust shard 1/4 (pull_request) Failing after 7m58s
Project CI / AI game creator shell Rust shard 3/4 (pull_request) Failing after 7m59s
Project CI / Native shell tests (pull_request) Failing after 1m21s
Project CI / AI game creator shell Rust smoke (pull_request) Successful in 2m13s
Project CI / AI game creator shell Rust crates (pull_request) Successful in 2m40s
Project CI / Frontend tests (pull_request) Failing after 3m5s
Project CI / Repository checks (pull_request) Successful in 3m36s
Project CI / AI game creator shell web tests (pull_request) Failing after 3m18s
Project CI / Backend tests (pull_request) Successful in 8m28s
781d7547c4
kdletters merged commit fc14190f58 into master 2026-09-17 18:10:35 +08:00
kdletters deleted branch codex/slice-mode-explicit-decision-20260917 2026-09-17 18:10:35 +08:00
Sign in to join this conversation.