k88936
6ee33dc561
fix: 首页「最近项目」缩略图与退出前视角不一致,出现偏移或裁切 ( #111 )
...
Project CI / Repository checks (push) Successful in 1m4s
Project CI / Frontend tests (push) Successful in 2m9s
Project CI / Native shell tests (push) Successful in 2m38s
Project CI / Backend tests (push) Successful in 3m23s
- 封面使用真实画布尺寸及最终 viewport.x/y/scale。
- 320×240 封面改为居中 cover 裁切,不再从左上角取景。
- 正确绘制画布背景色。
in canva:


in home:


因为原本的布局持久化可能有一些bug,改动不相关,所以我回退到最开始的一版:
- 不额外监听画布尺寸变化,给最小尺寸兜底,(大了比小了好)
- 封面不要求强一致性,生成/上传时机仍然按照原来随布局持久化
优化了封面生成:
- 改用webp格式
- 尽量利用图片缓存
最终生成封面从700ms加速到150ms以内, 加上必须的上传和确认150ms 和 布局持久化的时间相差不多,不是特别离谱的手速都能保证两者一致
---------
Co-authored-by: kdletters <kdletters@qq.com >
Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/111
Co-authored-by: 王德宇 <kvtodev@outlook.com >
Co-committed-by: 王德宇 <kvtodev@outlook.com >
2026-07-29 16:09:30 +08:00
kdletters
edc99e55e4
修复跨设备画布旧快照覆盖
...
Project CI / Frontend tests (push) Failing after 43s
Project CI / Repository checks (push) Successful in 47s
Project CI / Native shell tests (push) Successful in 2m47s
Project CI / Backend tests (push) Successful in 3m13s
按用户隔离画布缓存并等待权威 revision 后开放保存
固化保存重试版本并安全处理认证重载与冲突恢复
合并迟到资源图层且隔离跨账号异步请求
强制 Web 与 External 画布写入使用 expectedRevision CAS
补充竞态回归测试并同步 OpenAPI、Skill 与技术文档
2026-07-29 13:51:49 +08:00
kdletters
2f9ad4b11c
合并图片画布结构化持久化
...
引入画布图层与生成器结构化存储、revision CAS 保存及迁移回滚流程
补齐历史画布资源修复脚本、SpacetimeDB schema、迁移和生成绑定
前端接入串行保存队列并保留 2MiB 旧布局兼容回退
优化角色动画单进程批量抽帧并同步 OpenAPI、运维与项目文档
同步 active mapper 的 V2 画布保存契约,保证 master 后端可编译
2026-07-20 21:34:05 +08:00
kdletters
b49bf9c984
结构化图片画布持久化并补充历史资源修复
...
将旧布局上限统一提升至2MiB并接入revision CAS保存
新增画布图层、生成对话框和迁移状态结构化存储
新增migration operator保护的回填、激活和回滚脚本
新增历史图片映射及音频资源恢复的定向dry-run/apply流程
补齐前端保存队列、OpenAPI、Bindings、发布归档与回归测试
2026-07-20 20:45:15 +08:00
kdletters
e9c3dc1120
退役旧创作模板业务
...
保留 SpacetimeDB 历史表、迁移白名单与旧业务源码
切换前端 active 入口并解除旧创作页面和路由编译链
移除旧后端路由、worker 与纯业务 crate 依赖
收敛 SpacetimeDB 模块为历史数据壳
同步 Nginx、Pingora、验证门禁与架构文档
2026-07-17 22:07:52 +08:00
kdletters
387a1c26e3
完成全量检查整改
...
清理已跟踪原始日志与个人本地配置
修复前后端有效门禁、测试和构建问题
补齐生产 Jenkins、SpacetimeDB 本地命令与文档约束
收紧图片编辑器状态、附件与媒体引用测试
排除已下线旧创作入口测试并清理 warning
2026-07-17 16:56:46 +08:00
kdletters
67fee3718d
修复画布背景色与任务计时显示
...
恢复生成任务列表的进行中计时显示并兼容微秒时间戳
替换画布背景色原生取色器为可拖拽色盘和色带
持久化画布背景色并在项目恢复时应用
补充背景色交互持久化和任务计时显示测试
2026-07-09 16:05:25 +08:00
kdletters
1fb5a0773e
修复画板提示与失效项目跳转
...
画板参考图选择提示改为持续显示并支持手动关闭。
显式项目访问失效时同步切回项目页状态。
补充提示关闭和项目失效回退测试。
2026-07-05 18:01:02 +08:00
kdletters
d50ecbc492
修复创作弹窗与生成器引用缓存
...
未开放工具弹窗补充平台主题背景
画布生成器缓存引用按当前账号过滤
新画布工具栏引导改用文档图片
补充弹窗、引导图和引用归属回归测试
2026-06-30 21:50:16 +08:00
kdletters
bf09b84cb3
优化画布视口拖动性能
...
小地图拖动通过 requestAnimationFrame 合帧并在结束时刷新最后一帧
平移和小地图拖动期间跳过项目自动保存与 session 缓存写入
补充视口交互性能回归测试和项目文档记录
2026-06-25 23:50:24 +08:00
kdletters
0876361557
修正画布无效项目跳转
...
显式项目读取失败时返回项目页
403 和 404 项目访问错误不再停留在画布
补充无效项目 ID 回项目页测试
2026-06-25 23:44:36 +08:00
kdletters
28e11c4718
修复项目封面本地兜底
...
新增项目封面 IndexedDB 本地缓存。
封面 Blob 生成后先写入本地缓存,上传失败仍可展示。
项目列表优先服务端封面,其次本地缓存,再回退画布图层。
补充封面兜底测试和项目记忆文档。
2026-06-25 21:59:05 +08:00
kdletters
b6c5fdeb30
修复生成完成提示与项目封面快照
...
生成完成提示展示后后台确认,避免刷新重复弹出
项目封面改为保存并读取静态快照资源
补充封面快照上传、选择和展示测试
同步外部生成与图片画布契约文档
2026-06-24 19:30:16 +08:00
kdletters
73a17193d4
升级外部生成为正式任务列表
...
将 external_generation_job 扩展为含价格、确认时间、退款流水和事件审计的正式生成任务事实源
新增外部生成任务列表与确认 BFF,并让平台入口按后端任务补弹完成或失败提示
保护画布生成队列超时、快照回写和自动保存覆盖场景
将 worker 计费退款流水写入 externalGenerationJobId,并补充冷备份后 worker/controller 恢复守护
2026-06-24 15:17:12 +08:00
kdletters
f5ede50ba9
瘦身画板媒体保存链路
...
改造画板项目保存响应为轻量 ack
统一生成上传媒体以 objectKey 持久化
补齐素材库缩略图换签与本地轻量缓存
刷新生成后泥点余额并补充回归测试
2026-06-23 17:21:55 +08:00
kdletters
47bdc73b93
串行化画板布局自动保存
...
让画板布局保存共用单飞队列避免慢 PATCH 并发
覆盖慢保存期间只发送最新待保存快照
补充发布入口 429 排查与自动保存文档
2026-06-23 15:16:50 +08:00
JenkenB
163b2fa077
Add editor generation model pricing admin UI & API
...
Introduce centralized model pricing for editor generations: add EditorGenerationPricing types and admin API client methods (GET/POST), backend default config and runtime override support, and server route/handler changes to expose admin editor-generation-pricing. Add an AdminEditorGenerationPricingPage component, styles, route entry, icon, and tests, plus a test for admin routes. Update docs and decision log to describe the pricing contract and management workflow. This enables managing per-model pricing (perGeneration / perSecond, flat or tiered) from the admin panel and exposes runtime pricing to the main site.
2026-06-22 16:57:29 +08:00
kdletters
fc49ba2a61
后端写入画布生成完成态
...
后端在图片生成完成后直接写入画布布局和生成器状态
前端提交canvasCompletion并只应用后端项目快照刷新显示
移除项目加载时根据资源行推断生成完成态的路径
更新OpenAPI、图片画布文档和共享排障记忆
2026-06-21 22:30:03 +08:00
kdletters
de9eaef28f
改为行引用保存画布参考图元数据
...
生成输入参考图只保存 refType/refId 行引用
生成器布局快照只保存参考图行指针并在加载时恢复临时源
上传参考图优先创建项目资源行并回写 resourceId
元数据弹窗改为展示参考图行引用信息
更新图片画布技术文档和项目决策记录
2026-06-21 17:27:23 +08:00
kdletters
10dcc2b403
修复图片画布素材与宣发尺寸问题
...
修复画布上传素材持久化回填和项目重进资源元数据恢复
修复图片、音频、视频图层的私有资源换签与视频裸路径回退
修复宣发素材切换模型后卡片尺寸变成1024x1024的问题
修复音视频预览、媒体导出格式、音频默认提示词和前端去背边界
修复角色动作生成在编辑器路径缺少ffprobe时的已知时长兜底
补充图片画布、资源换签、宣发尺寸、媒体导出和chromaKey回归测试
更新图片画布编辑器技术文档
2026-06-19 23:16:59 +08:00
kdletters
4821fb90df
Merge branch 'codex/editor-asset-metadata-migration' into codex/editor-asset-library
...
# Conflicts:
# docs/project-memory/shared-memory/decision-log.md
# server-rs/crates/api-server/src/editor_project.rs
# src/components/image-editor/ImageCanvasEditorModel.ts
# src/components/image-editor/ImageCanvasEditorView.test-utils.ts
# src/components/image-editor/ImageCanvasEditorView.tsx
# src/components/image-editor/useImageCanvasGenerationSubmissionWorkflow.ts
# src/services/image-editor/editorProjectClient.test.ts
2026-06-19 16:55:41 +08:00
kdletters
e644d7c99f
后端保存画布生成素材
...
生成接口接收项目与素材上下文并返回 resource/asset 快照
画布前端使用后端回包落层并避免重复创建资源和素材
补充生成元数据保存边界的测试与文档
2026-06-19 16:30:56 +08:00
kdletters
76445da9b4
迁移画布素材生成元数据
...
扩展 editor_project_resource 和 editor_asset 保存素材类别与生成输入快照
调整前端资源与素材读写链路并停止把素材元数据写入新 layout
在服务端保存 layout 时回填并清洗旧图层元数据
更新图片画布契约文档、共享决策和相关测试期望
2026-06-19 15:11:32 +08:00
JenkenB
097170836d
Add UI-design asset extraction & spritesheet support
...
Introduce a new UI design asset extraction flow: add POST /api/editor/ui-designs/assets/extractions handler that always uses gpt-image-2 with the fixed prompt "提取画面中的所有独立并整理成spritesheet"; parse Data URL references, call OpenAI image edits, return a spritesheet and sliced icon assets. Increase request body limit for image Data URLs and wire the route with bearer auth. Add platform-image slicing: slice_generated_icon_spritesheet_all_by_connected_components (with auto-naming "素材 1..N", foreground estimation and heuristics) and export it. Add Rust tests for the handler, prompt constant, and slicing behavior. Update frontend client and integration tests to call the new extractEditorUiDesignAssets API and verify spritesheet + icon layers are added to the canvas and persisted. Update multiple docs to describe the extraction UI, toolbar placement, and related audio/playback pitfalls. Minor related updates: toolbar button ordering and audio duration / signed read-url notes.
2026-06-19 10:09:19 +08:00
JenkenB
ea29887d9c
完善快速编辑参考图与生成占位
...
- 快速编辑支持最多8张额外参考图,并将原图自动作为最后一张参考图提交
- 快速编辑尺寸和模型沿用原图配置,按禁用态参数胶囊展示
- 快速编辑提交前同步改写原图引用为实际图序号
- 快速编辑生成改为创建独立画布生成占位,并支持键盘删除生成中对象
- 对齐生成类面板参考图图标、规范类固定参数和相关文档测试
2026-06-18 22:50:42 +08:00
kdletters
946308b75e
保存图片画布生成器快照
...
将生成器对话框作为画布布局项序列化和恢复
生成成功后保留生成器快照并锚定到成品图层
图片类生成结果同步写入账号素材库
补充生成器持久化测试和浏览器回归相关文档
2026-06-17 23:57:25 +08:00
kdletters
f34556d33d
拆分图片画布图片信息弹窗
...
新增图片信息弹窗组件,承接 metadata 详情渲染和 UnifiedModal 接入
修复未登录进入编辑器时项目和素材接口抢跑 401
修复重置画布视图点击事件误传导致适合视图报错
补充图片信息弹窗、鉴权门禁和重置按钮回归测试
更新前端拆分文档和 TRACKING 浏览器回归记录
2026-06-17 10:56:51 +08:00
kdletters
9f45641ccd
拆分图片画布历史与持久化协调器
...
新增画布历史 hook 承接撤销重做快照逻辑
新增项目持久化 hook 承接加载资源创建与自动保存时序
补充 hook 单测并更新图片画布拆分跟踪文档
2026-06-17 05:00:53 +08:00