保留原图并提供单一预览,释放慢传输期间的空间锁 #15

Merged
Zayden-Jung merged 2 commits from codex/canvas-image-preview into main 2026-11-06 13:55:31 +00:00
Collaborator

画布 GET 的实测快照约 477 KB,其中两张内嵌图片占 99.3%;公网重传使正文传输达到 16–32 秒。Endoleap 将图片改为独立附件引用,本 PR 提供单一最长边 1024px 的显示预览,原始附件不替换,AI 和原图下载仍使用原始 URL。

预览每次都先检查当前权限,包括缓存命中。普通不透明图使用 JPEG quality 82,透明图保留 PNG,GIF 保留原动画,JPEG EXIF 方向正确处理。编码缓存最多 32 MiB/128 项,生成串行,无新增依赖或数据库迁移。

Canvas GET/资源读取在输出响应前释放权限事务,能力查询在访问模型目录前释放事务。上传在接收大文件前释放初步锁,并在提交前重新检查写权限,减少慢传输造成的同空间排队。

验证:最新 head 8abc79d 的远程分支 CI #936 与 PR CI #937 全部通过,包含格式、Go 测试、构建、隔离 PostgreSQL/迁移与 HTTP 冒烟。新增缩放、透明、动画保留、EXIF、缓存鉴权、真实 SQL NOWAIT 响应边界和慢上传锁回归。

前端配套已在 Endoleap main 570cd53:附件上传、明确操作的旧图无损迁移、预览渲染、视角不触发 PATCH、传输错误分类。只打开页面不会迁移或写入。历史图片需明确点击一次“优化图片加载”,部署和真实画布迁移后的性能验收尚未完成。公网丢包本身未被宣称消除。

等待用户手动合并;正常 main 工作流随后部署。

画布 GET 的实测快照约 477 KB,其中两张内嵌图片占 99.3%;公网重传使正文传输达到 16–32 秒。Endoleap 将图片改为独立附件引用,本 PR 提供单一最长边 1024px 的显示预览,原始附件不替换,AI 和原图下载仍使用原始 URL。 预览每次都先检查当前权限,包括缓存命中。普通不透明图使用 JPEG quality 82,透明图保留 PNG,GIF 保留原动画,JPEG EXIF 方向正确处理。编码缓存最多 32 MiB/128 项,生成串行,无新增依赖或数据库迁移。 Canvas GET/资源读取在输出响应前释放权限事务,能力查询在访问模型目录前释放事务。上传在接收大文件前释放初步锁,并在提交前重新检查写权限,减少慢传输造成的同空间排队。 验证:最新 head 8abc79d 的远程分支 CI #936 与 PR CI #937 全部通过,包含格式、Go 测试、构建、隔离 PostgreSQL/迁移与 HTTP 冒烟。新增缩放、透明、动画保留、EXIF、缓存鉴权、真实 SQL NOWAIT 响应边界和慢上传锁回归。 前端配套已在 Endoleap main 570cd53:附件上传、明确操作的旧图无损迁移、预览渲染、视角不触发 PATCH、传输错误分类。只打开页面不会迁移或写入。历史图片需明确点击一次“优化图片加载”,部署和真实画布迁移后的性能验收尚未完成。公网丢包本身未被宣称消除。 等待用户手动合并;正常 main 工作流随后部署。
codex-bot added 2 commits 2026-11-06 13:44:24 +00:00
Add authenticated image previews and shorten canvas read locks
Foundry Go checks / check (push) Successful in 3m18s
67765c17f4
Keep a single preview variant and verify read lock boundaries
Foundry Go checks / check (push) Successful in 5m13s
Foundry Go checks / check (pull_request) Successful in 3m56s
8abc79dc5b
codex-bot marked the pull request as ready for review 2026-11-06 13:54:43 +00:00
Zayden-Jung merged commit b2ae48e250 into main 2026-11-06 13:55:31 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Zayden-Jung/foundry-core#15