新增图片画布编辑器

新增 /editor 图片画布入口与 Lovart 风格画布交互

新增图片画布工程和资源持久化的 SpacetimeDB 表、绑定与 api-server BFF

接入图片生成和修改的 VectorEngine gpt-image-2 后端通道

完善素材库文件夹、重命名、上传删除、图层和元数据交互

补充图片画布技术方案、领域词、执行跟踪和浏览器 smoke 截图
This commit is contained in:
2026-06-13 16:22:18 +08:00
parent f8a80cd795
commit 747473024d
53 changed files with 6694 additions and 29 deletions
+12 -6
View File
@@ -21,6 +21,12 @@ describe('appPageRoutes', () => {
);
});
it('resolves the image editor route', () => {
expect(resolveSelectionStageFromPath('/editor')).toBe('image-editor');
expect(resolveSelectionStageFromPath('/EDITOR/')).toBe('image-editor');
expect(resolvePathForSelectionStage('image-editor')).toBe('/editor');
});
it('resolves jump-hop creation, gallery and runtime routes', () => {
expect(resolveSelectionStageFromPath('/creation/jump-hop')).toBe(
'jump-hop-workspace',
@@ -58,9 +64,9 @@ describe('appPageRoutes', () => {
expect(resolveSelectionStageFromPath('/creation/puzzle-clear')).toBe(
'puzzle-clear-workspace',
);
expect(resolveSelectionStageFromPath('/creation/puzzle-clear/generating')).toBe(
'puzzle-clear-generating',
);
expect(
resolveSelectionStageFromPath('/creation/puzzle-clear/generating'),
).toBe('puzzle-clear-generating');
expect(resolveSelectionStageFromPath('/creation/puzzle-clear/result')).toBe(
'puzzle-clear-result',
);
@@ -85,9 +91,9 @@ describe('appPageRoutes', () => {
expect(resolveSelectionStageFromPath('/creation/wooden-fish')).toBe(
'wooden-fish-workspace',
);
expect(resolveSelectionStageFromPath('/creation/wooden-fish/generating')).toBe(
'wooden-fish-generating',
);
expect(
resolveSelectionStageFromPath('/creation/wooden-fish/generating'),
).toBe('wooden-fish-generating');
expect(resolveSelectionStageFromPath('/creation/wooden-fish/result')).toBe(
'wooden-fish-result',
);
+1
View File
@@ -11,6 +11,7 @@ export const PUBLIC_WORK_QUERY_PARAM = 'work';
const STAGE_ROUTE_ENTRIES = [
['platform', '/'],
['image-editor', '/editor'],
['profile-feedback', '/profile/feedback'],
['work-detail', '/works/detail'],
['detail', '/worlds/detail'],