Commit History
Today
-
fix: serve inline task images separately from lightweight polling JSON
xiaolongmree2d10d -
fix: move share evidence persistence off service locks and event loop
xiaolongmrb85cbbb -
fix: isolate generation health telemetry from persistent config locks
xiaolongmr8534c52
Yesterday
-
daochu baode format ziduan qudiao xiangmu ming, daoru jianrong jiu zhi
xiaolongmr导出包的 manifest.json 会随 zip 离开本机(用户分享、网盘备份), format 字段里的项目名不该外泄。前端 LOCAL_HISTORY_FORMAT 与后端 HISTORY_FORMAT 统一换成中性的 image-history-package;导入端 (前端 detectHistoryPackage / isLocalHistoryPackage,后端 manifest 校验)同时接受旧值,已经导出的老包还能正常导回来。3adaf75 -
daoru lishi jilu shi zidong shibie wai ceng mulu
xiaolongmr用户从线上导出的 image-history-20261028-103246.zip 导入时报「包里缺少 manifest.json」。检查发现包本身完好:manifest 里 2 条任务、1 个会话、 2 张图片都在,只是所有条目被套在了 image-history-20261028-103246/ 目录下 (用解压工具重新压缩会多出这一层),而导入端按根目录读 manifest,于是判定 为「不是本系统导出的包」。 改动: - 新增 _history_prefix():根目录找不到 manifest.json 时,识别唯一的单层 目录前缀。只接受正好一层,避免误命中 images/ 内部同名的文件;多层或 多个候选一律不猜,仍走原来的报错。 - 读取 manifest 与遍历图片都改用该前缀,图片相对路径照旧做 zip slip 校验。 验证:带前缀的包直接调用导入,imported=2、images=2、会话 1 条;修正成根 目录结构的包走 HTTP 上传同样 200。相关测试 46 项通过。c4b43c4 -
图片历史记录支持一键导出与导入
xiaolongmr历史记录弹窗新增「导出」「导入」两个按钮,按账号隔离、合并导入。 后端: - ImageTaskService.export_owned_tasks / import_tasks:导出本人全部任务原始数据; 导入时 task_key 按当前身份重算(不信任包里的 owner_id),同 task_id 跳过, 包里未完成的任务标为 error,避免前端一直等一个不存在的轮询,也不重算积分。 - POST /api/image-tasks/export:打包 zip,含 manifest.json、会话结构、任务与 原图(images/ 相对路径与 /images/<rel> 一致)。图片已是压缩格式,用 STORED 存储省 CPU。导出后由后台任务删临时文件。 - POST /api/image-tasks/import:限 8GB 解压上限、逐条校验路径防 zip slip, 图片落到 images_dir(已存在则跳过),并把记录里的图片地址重写到当前部署。 前端: - 会话结构(标题/分组/轮次)只存在浏览器本地,导出时一并上传进包,导入时 写回本地存储,否则导入后标题和分组会丢; - 导入后把会话里的图片地址改成本站相对路径,换部署也能显示; - 按钮带 loading 与结果提示(新增/跳过/图片张数)。 实测:导出 13 条记录 + 5 张图 12.5MB;重复导入返回 skipped=13 imported=0; 坏包与格式不符均返回 400。35a279e
2 days ago
-
init
xiaolongmr85270f9