f1ee537ab7
- types: Attachment 增 hash?/size? 可选字段(向后兼容,老数据零迁移) - 上传端点 POST .../attachments 改为内容寻址:流式计算 sha256,写临时文件再 按 <sha256>.<ext> 原子 rename;同 hash 已存在则丢弃临时文件(真去重); 超限/异常清理临时文件不留垃圾。磁盘名仅由内容 hash 决定,杜绝撞名覆盖丢数据。 - store.addAttachments 去重键改为 hash ?? path(later-wins,老数据回退 path)。 - DELETE 端点补注释:附件按 task 隔离,无需跨任务 refcount。 - 安全保持并固化:GET inline 仅硬白名单图片,其余强制 attachment+octet-stream +nosniff+CSP sandbox;路径越界防护;hash 命名不含路径可控字符。 - 测试:新增同内容去重/不同内容同名各留一条/响应含 hash+size 等用例。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>