统一画布快速编辑白名单与入口行为 (#140)
- 使用白名单控制快速编辑功能的显示 - 同步浮动工具栏、右键菜单、打开入口和提交门禁 - 禁用角色动作序列帧(整体)、音频和单个图标(explain: backend reject)的快速编辑 - 把快速编辑api改为只接受resource Id | asset Id,删除 image_src 参数, 以保证校验 其中包含生产数据迁移。迁移用于清理历史普通图片错误持久化的 assetKind="image",覆盖 asset → project-resource → showcase → canvas 四个作用域,并包含 operator 鉴权、分批 dry-run、批次 SHA-256 绑定 apply、active 结构化画 > 布迁移摘要同步及最终零残留复核。 --------- Co-authored-by: kdletters <kdletters@qq.com> Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/140 Co-authored-by: 王德宇 <kvtodev@outlook.com> Co-committed-by: 王德宇 <kvtodev@outlook.com>
This commit was merged in pull request #140.
This commit is contained in:
@@ -10,6 +10,7 @@ import {
|
||||
buildCharacterAnimationSubmissionPlan,
|
||||
buildIconSpritesheetGenerationSubmissionPlan,
|
||||
buildImageGenerationSubmissionPlan,
|
||||
resolveRegisteredEditorReferenceId,
|
||||
} from './ImageCanvasGenerationSubmissionModel';
|
||||
|
||||
function createLayer(overrides: Partial<CanvasLayer> = {}): CanvasLayer {
|
||||
@@ -31,6 +32,33 @@ function createLayer(overrides: Partial<CanvasLayer> = {}): CanvasLayer {
|
||||
}
|
||||
|
||||
describe('ImageCanvasGenerationSubmissionModel', () => {
|
||||
it('resolves registered image-edit sources by resource ID first', () => {
|
||||
expect(
|
||||
resolveRegisteredEditorReferenceId({
|
||||
resourceId: ' resource-source ',
|
||||
sourceAssetId: 'asset-source',
|
||||
}),
|
||||
).toBe('resource-source');
|
||||
});
|
||||
|
||||
it('falls back to a registered asset ID for image edits', () => {
|
||||
expect(
|
||||
resolveRegisteredEditorReferenceId({
|
||||
resourceId: 'local-resource-source',
|
||||
sourceAssetId: ' asset-source ',
|
||||
}),
|
||||
).toBe('asset-source');
|
||||
});
|
||||
|
||||
it('rejects unregistered image-edit sources', () => {
|
||||
expect(() =>
|
||||
resolveRegisteredEditorReferenceId({
|
||||
resourceId: 'generation-dialog:source',
|
||||
sourceAssetId: 'upload-source',
|
||||
}),
|
||||
).toThrow('原图尚未登记为项目资源或素材');
|
||||
});
|
||||
|
||||
it('builds normal image generation submission plans', () => {
|
||||
const plan = buildImageGenerationSubmissionPlan({
|
||||
dialog: {
|
||||
|
||||
Reference in New Issue
Block a user