粘贴 / 选文件回退、像素预算与框素材降级
输入语义。执行区的「输入场景」可选 desktop-paste、mobile-no-permission、file-picker、clipboard-denied。桌面 Ctrl/Cmd+V 且剪贴板含图片时状态为 pasted;手机无剪贴板权限、权限被拒、剪贴板无图片时状态为 awaiting-file,建议动作是「选文件」,allowFileSelect=true、fileInputVisible=true 始终成立。真实 File/Blob 本轮不能解码,返回 DECODER_UNAVAILABLE 并保留输入。
提前阻止。把模型的 image 改为 {"id":"big","width":4000,"height":4000,"bytes":1000,"hasAlpha":false,"format":"jpeg"}、padding 改为 512、frame.kind 改为 none、scale 改为 2。4000×4000 恰在 16MP 输入边界内,1x 设计画布为 5024×5024,2x 需 10048×10048 = 100.96MP,超过 64MP 导出上限:checkExportBudget 返回 EXPORT_PIXEL_LIMIT,suggestedScale=1,阶段停在 budget,不分配画布、不出现空白结果。
框素材失败。把 frame.assetStatus 改为 failed、loading 或 missing:resolveFrame 返回 applied=false, degraded=true, exportable=true, fallback:"frameless",图层列表不含 frame 层,仍给出完整无框导出计划。设备框素材需要授权来源,未获授权同样降级为无框,本站不内置来源不明的素材。
切换背景。选择「深色纯色」只会替换 background;image、crop、padding、radius、frame、preset、format、scale 全部保留(workspaceReducer 与 switchBackground 的真实断言)。