422a71d321
新增 features/resource-canvas/resourceCanvasAssetTransferModel:面板网格模型、选中集合解析、默认导出文件名、上传白名单(纯函数) 新增 features/resource-canvas/ResourceCanvasPanelView:独立浮层面板承载预览网格/上传/下载/全选/清空,选中状态直接读写画布同一份 selectedResourceIds,不造第二套选择 下载改为显式保存链路:前端 @tauri-apps/plugin-dialog save() 取目标路径,再调新命令 save_local_project_asset_file 复制素材文件,避免依赖不可靠的 <a download> Rust 新增 project/asset_export.rs 与命令 save_local_project_asset_file:校验项目根与相对路径、源必须是真实普通文件(拒绝符号链接与目录)、目标路径非空且父目录存在、分块流式复制不进整文件内存,返回目标路径与字节数 Rust 单测覆盖成功复制(内容一致 + byteLen + 源不变)、缺失源拒绝、目录源拒绝、空目标与父目录缺失拒绝、目标为目录拒绝 上传复用现役 upload_local_asset(落 assets/uploads 并登记 manifest 条目)后回读 manifest 刷新,只接受图片/音频/视频 capabilities/main.json 增加 dialog:allow-save;资源画布 chrome 样式补资源面板一套;index.tsx 只做导入/一处按钮/一处渲染/状态透传
28 lines
939 B
JSON
28 lines
939 B
JSON
{
|
|
"$schema": "../gen/schemas/desktop-schema.json",
|
|
"identifier": "main",
|
|
"description": "AI 游戏创作主窗口允许读取系统剪贴板图片,用于粘贴素材附件;允许弹出原生打开/保存对话框用于素材上传与导出。",
|
|
"windows": ["client"],
|
|
"permissions": [
|
|
"clipboard-manager:allow-read-image",
|
|
"clipboard-manager:allow-read-text",
|
|
"core:image:allow-rgba",
|
|
"core:image:allow-size",
|
|
"core:resources:allow-close",
|
|
{
|
|
"identifier": "http:default",
|
|
"allow": [
|
|
{ "url": "https://dev.genarrative.world/api/*" },
|
|
{ "url": "https://www.genarrative.world/api/*" },
|
|
{ "url": "https://agc-dev.oss-rg-china-mainland.aliyuncs.com/*" },
|
|
{ "url": "https://*/api/*" },
|
|
{ "url": "http://localhost:*/*" },
|
|
{ "url": "http://127.0.0.1:*/*" }
|
|
]
|
|
},
|
|
"opener:default",
|
|
"dialog:allow-open",
|
|
"dialog:allow-save"
|
|
]
|
|
}
|