新增图集连通域与可配置网格切分
Project CI / AI game creator shell Rust shard 1/4 (push) Failing after 4m37s
Project CI / AI game creator shell Rust shard 2/4 (push) Failing after 4m36s
Project CI / AI game creator shell Rust smoke (push) Successful in 1m31s
Project CI / Backend tests (push) Failing after 10s
Project CI / AI game creator shell Rust shard 4/4 (push) Failing after 4m2s
Project CI / AI game creator shell Rust shard 3/4 (push) Failing after 4m45s
Project CI / Repository checks (push) Failing after 11s
Project CI / AI game creator shell web tests (push) Failing after 1m18s
Project CI / AI game creator shell Rust crates (push) Successful in 2m36s
Project CI / Native shell tests (push) Failing after 2m34s
Project CI / Frontend tests (push) Successful in 4m52s

增加 connected-components 与 grid 切分模式

支持 gridX/gridY 并同步 API、MCP、Skill、AGC 客户端

移除固定 2x2 图集切分契约与文档
This commit is contained in:
kdletters
2026-09-15 20:06:36 +08:00
parent 29e84a77d1
commit dd24690b02
28 changed files with 475 additions and 106 deletions
@@ -1147,13 +1147,14 @@ describe('editorProjectClient', () => {
referenceId: 'editor-resource-icon-spec',
referenceImageSrcs: references,
iconDescriptions: ['返回按钮'],
sliceMode: 'connected-components',
});
expect(requestJsonMock).toHaveBeenCalledWith(
'/api/editor/icon-spritesheets/generations',
expect.objectContaining({
body: expect.stringContaining(
'"model":"gemini-3.1-flash-image-preview"',
body: expect.stringMatching(
/(?=.*"model":"gemini-3\.1-flash-image-preview")(?=.*"sliceMode":"connected-components")/,
),
}),
'生成图标素材失败',
@@ -380,6 +380,9 @@ export type EditorIconSpritesheetGenerationInput = {
referenceId: string;
referenceImageSrcs?: string[];
iconDescriptions: string[];
sliceMode?: 'connected-components' | 'grid';
gridX?: number;
gridY?: number;
model?: string;
screenColor?: string;
segModel?: string;
@@ -516,6 +519,9 @@ export type EditorIconSpritesheetGenerationResult = {
spritesheetWidth: number;
spritesheetHeight: number;
iconImageSrcs: EditorIconSpritesheetIconResult[];
sliceMode?: 'connected-components' | 'grid';
gridX?: number;
gridY?: number;
sliceWarning?: EditorIconSpritesheetSliceWarning | null;
prompt: string;
actualPrompt?: string | null;
@@ -1311,6 +1317,9 @@ export async function generateEditorIconSpritesheet(
? { referenceImageSrcs: input.referenceImageSrcs }
: {}),
iconDescriptions,
...(input.sliceMode ? { sliceMode: input.sliceMode } : {}),
...(input.gridX !== undefined ? { gridX: input.gridX } : {}),
...(input.gridY !== undefined ? { gridY: input.gridY } : {}),
model,
...(input.screenColor ? { screenColor: input.screenColor } : {}),
...(input.segModel ? { segModel: input.segModel } : {}),