文档
07 过程记录02_验收证据

PROC-02-019 全平台原件改造首批实施验收20261022

Studio本机画布、Commerce原件接线、上传回执恢复和跨仓联合验证,保留前批Drama历史记录

1. 范围和当前结论

用户已授权开始全平台原件改造。本批在五个隔离工作树修改代码,完成Studio本机图片导入与草稿恢复、File Owner上传回执查询、Runtime接入、Platform就绪原件读取简化,以及Drama上传恢复接入。这是实施中的首批证据,不是全平台重构完成或生产可切换的结论。

生产没有部署本批代码,Platform调用没有切换到media.oceanway.tech,旧业务及旧桶未修改。本批未发起真实付费生成。独立实例部署事实仍以PROC-02-018为准;本文没有将本机夹具当成云端或真实供应商验收。

2. 代码基线与制品

以下均为基线上的未提交改动,不能将基线SHA当成已包含本批修改的发布版本。

仓库工作树基线SHA本批内容
Platformplatform-media-filesc43e9109926d9fcc04b6a6149ac652145e96b3c4ready文件读取直接续签当前保留引用,仍核验主体、产品、输出及墓碑
Runtimeruntime-media-files12c2a559457c232d104b5dcfa4d3d5a2aa14a3e0FileReferenceClient增加元数据查询上传回执,固定server 0.7.1制品
Studiostudio-media-files1f2be1d4ef61e7c128db6812c4f83b79ac4d00e1本机预览、IndexedDB、后台队列、草稿/CAS、自动素材入库、选中依赖优先
Dramadrama-media-files24e845b10ee27a393df0a571446639ada15058c0上传前查询原命令、恢复回执不重发原件、固定Runtime schema校验
new-apimedia-files-source18da5780a3d942876d1c9c9ff3bbadcfa088b01dFile Owner增加uploads/lookup,返回missing/pending/ready

工作树根目录:/Users/wangzihao/Projects/Oceanway/.worktrees。Studio分支为codex/media-files-main,其余为codex/media-files-unification。

Studio和Drama引用同一oceanway-runtime-server-0.7.1.tgz,SHA-256为6903e93e28fd6f95e27052f8d332711026a7f3d3c620928aafdf9f963c6646eb。client制品仍为0.7.0。该server基线包含Runtime schema 12;Drama原校验停在9,不能只替换包而继续沿用旧校验。隔离数据库实际迁移所得有序版本/checksum向量SHA-256为44d78b5b7369e09e0c1fc5469865c8ac2c0233243e46bdeef3ea8c184a7fb561,Drama已固定该结果,应用启动仍只检查,DDL仍由显式迁移命令执行。

3. 已实现行为

3.1 Studio画布

  • 图片选择、拖入、粘贴先创建Blob预览和独立节点;不等待网络、哈希或IndexedDB完成。文件选择器支持多选,替换单节点仍只选一个文件。
  • IndexedDB按当前站点Origin、产品、账号、画布保存未同步Blob、完整草稿、上传命令与回执。JSON不持久化Blob URL或图片Base64;本批没有增加TTL清理。
  • 队列串行后台上传,生成依赖可优先排队;选中素材复制到多个节点时复用同一命令。已开始的后台传输不会被假装取消,选中项可能等待当前传输完成。
  • 原件上传成功即可用于下一步,不等待本机回执落盘。跨标签页以Web Lock协调,同命令通过服务器查询回执;IndexedDB不是传输前置条件。
  • 云端仅保存就绪引用。本机保存与云端同步分别显示。部分依赖保存保留云端已有节点版本,不将未上传的新节点误记为已同步。
  • 刷新后从本机草稿恢复,核对云端版本;读取云端或IndexedDB期间发生的新编辑不被旧响应覆盖。确认水位阻止迟到的本机写入重新出现已确认旧草稿。
  • 冲突保留本机草稿,可另存恢复副本;本机文件通过稳定ID复用,原冲突草稿不会被删除。
  • 裁剪、切图、本地放大和图片替换生成的新像素先登记本机文件,随后后台入库。纯布局变化不创建新原件。
  • 选中节点的生成和Agent提交等待选中依赖;Agent准备期间重复点击不会生成多次提交。该测试不代表已完成真实付费派发验收。

3.2 素材登记与文件服务

画布上传和对话上传在素材登记事务内自动创建素材库引用,同一原件不复制对象。重复同命令、已有原件再保存到素材库均复用既有记录。实际授权仍由服务端主体和所属范围决定,浏览器自报ID不能替代授权。

浏览器稳定命令先查Studio的已提交登记;登记尚未完成时,服务端再向File Owner查询同一命令的不可变回执。File Owner查询校验scope、SHA、长度及MIME,不执行对象Put/Get/Copy/Delete,也不创建新claim。Runtime对非法状态、错误scope和回执内容不一致均拒绝。

Platform已ready的文件读取使用当前引用续签,不再为了读取重新采用原件或恢复生成账务;权限撤销与墓碑仍会拒绝。未完成的初次采用继续原有恢复路径。

Drama已接入同一查询能力,重新完成上传登记时先取已有回执,不再发送原件字节。本批尚未将Drama画布改为本机导入队列,也未移除其旧图片参考Base64快照。

4. 验证证据

所有数据库测试使用新建回环PostgreSQL 16实例和临时目录,结束后停止并移除;未使用生产DSN。Drama测试角色只在其临时集群获得建库权限,非superuser。文件服务/供应商响应为受控HTTP夹具,真实Go File Owner另在其本仓验证。

验证结果边界
Platform file bridge定向测试15项通过,无跳过含ready读取只续签、停新后已授权读取、主体/hash校验及账务不变
Runtime client定向测试4项通过,无跳过;build通过元数据查询、已有回执、非法scope/hash/state及重定向拒绝
File Owner上传与任务引用SQLite、PostgreSQL子测试均通过单原件、查询missing/ready、范围冲突、对象操作数不变;controller本次没有匹配测试,不能算HTTP路由验收
Studio本机与相关前端回归9个文件53项通过,无跳过包含17项队列/IndexedDB/草稿测试、选择依赖、重复点击、已有页面和服务回归
Studio素材PostgreSQL5项通过,无跳过自动入库、同命令恢复、手动保存去重、会话引用、跨账号拒绝及引用保护
Drama业务HTTP/PostgreSQL13项通过,无跳过原件上传、回执恢复时原件POST数不增加、视频引用和既有业务流程
静态检查Studio及Drama TypeScript、受影响文件ESLint通过不等于全仓全部测试
Studio生产构建通过浏览器验证构建ID:7e3r6OG3budLMPFq1Fmt1;其后的Agent重复点击保护及回执字段校验另经单元测试和类型检查

浏览器实际操作

使用内置浏览器操作生产构建,页面业务接口由仅监听loopback的隔离代理夹具提供,每个上传响应延迟5秒。没有借用真实登录或发起供应商请求。

  1. 390px窄屏断网导入合成PNG:图片立即从Blob显示,随后状态为“已存本机 · 同步中”;状态不再被顶部按钮挤成省略号。
  2. 联网并刷新:恢复文件与节点,最终显示“已同步云端”。单张流程服务端记录一次上传。
  3. 最新构建断网通过文件选择器一次选择20个PNG:画布显示已选20节点,随后本机保存完成;没有等上传响应才添加节点。
  4. 联网后立即刷新,最终云端记录20节点和20个稳定上传命令;缩放后DOM可见20张图片。云端快照不含blob:、data:image/或localAssetId。
  5. 最新批量流程浏览器console没有error;网络仿真已恢复在线。

这是20个小型合成PNG的功能样本,不是大图带宽、性能p50/p95或真实供应商多图编辑验收。原仓自动E2E启动脚本在初始化默认文本模型阶段返回503,因此那两项自动浏览器用例尚未执行成功;独立IAB验证没有被写成该脚本通过。

本机原始日志、基线、脱敏夹具结果与截图存于Studio工作树.local/media-evidence/,包括studio-batch-offline.png、studio-batch-synced.png、studio-offline-mobile.png、ow-studio-media-unit.log、ow-studio-pg-tests.log、ow-drama-pg-tests.log、platform-media-files-verification.json。

5. 尚未闭合的全平台工作

项目当前缺口与下一步
全部参考图URL化Drama仍有inline-base64-sha256-v1私有输入快照;Platform遗留Gemini图片参考仍接受Base64。必须联合变更产品冻结输入、授权文件引用、网关原生字段与目录能力,不能只在前端改字符串
Drama本机画布现有sessionStorage草稿和等待上传后插入节点仍需替换;必须增加宿主账号隔离、Blob队列、冲突恢复和选中依赖语义
全入口Studio视频/音频导入仍采用既有上传流程;蒙版、跨产品分享、不同供应协议及视频末帧需要逐入口覆盖
缓存与内存未同步Blob不得TTL删除;已同步缓存、Undo仍引用版本、可见区域缩略图和大图内存预算尚需完整验证
故障与权限浏览器多标签页/切换账号、原件读取撤权、CORS与导出、路由有界请求校验仍需联合验证,不能只以单元测试代验所有入口
性能与真供应补小图/大图/透明PNG/EXIF/高像素样本和冷暖缓存测量;标准单URL与多URL的真实编辑特征保留测试待额度明确后执行
发布与切换当前五仓改动未发布;新服务供应渠道保持此前状态。完成独立联合验收和分批发布方案后才进入消费端切换,不能让旧实例因新增lookup接口不支持而被隐式回退

DEV-X-01-006的AC01/02/03/08/09/19/20/21/22/28已获得本批对应范围的部分实现或证据,仍须逐产品和真实部署入口补验。AC04/07/12/17/23/29及全入口AC35等不标完成,PROC-02-018也不替代这些验收。

6. 合入Studio Agent面板与执行循环后联合验证

6.1 合入来源与代码保护

用户追加要求拉取Studio关于Agent面板和执行循环的其他提交,一起测试。已fetch并确认主线新增 Studio PR #64,提交为8df6fb8f70157a8ca3d20cb7d4be9e4aef0d6dda。当前Studio工作树已从首批基线快进到该提交,再恢复原件改造;第2节的Studio SHA为合入前基线,本节为当前测试基线。

合入前保留完整tracked二进制补丁、8个untracked文件及各自SHA-256清单,位置为.local/integration-pr64-before/;Git stash 501d68f993a5a1e193d846e276e6578f38a502ca仍保留。四处文本冲突已逐段整合,未选择整文件覆盖:画布入口、Agent面板、面板测试、E2E测试。当前没有未解决冲突,原件代码仍为该主线之上的未提交修改。

保留PR #64的画布专属会话自动恢复、收起后保留流式订阅与输入、读取/编辑画布工具、节点生成、暂停恢复、结果定位、执行历史折叠和新交互;同时保留原件队列、IndexedDB草稿、自动入库与选中依赖优先。

6.2 联合发现与处理

  • Agent回写原先调用完整画布保存,会等待全部未上传素材。现改为先同步就绪部分,以当前账号最后确认的云端快照做三方合并,保留本机新增图片和正在替换的原件;未同步节点不被当成服务器删除。
  • 合并后的未同步画布立即持久化新本机草稿,Agent对其他节点的修改与本机文件引用共同恢复;云端同字段冲突仍拒绝覆盖。
  • File Owner集成夹具补齐新增lookup接口的真实身份、scope、SHA、长度、MIME及释放状态校验,未以绕过权限或上传回退来消除失败。
  • E2E重复import已消除;后续调整通过用户展开历史查看;批量图片按现有画布虚拟化语义先缩小视图检查。窄屏先打开会话再收起,验证已建立的订阅继续运行。
  • 初次E2E启动缺少匹配版本的Chromium headless shell,安装现有Playwright依赖所要求的浏览器后执行。未改应用依赖版本或使用真实浏览器账号。

6.3 验证结果与范围

联合回归构建ID为oLdUqR60qickWXV3dgYe6,包含PR #64和本批原件/Agent联合修复。最后补齐上传准备中的发送按钮loading/禁用状态,14项面板测试、类型与lint再次通过;最终构建ID为-xwjPgcuDZUcDu93MuOhv,桌面会话/后续调整/候选定位和390px本机图片联合流程2项再次通过。

验证结果覆盖
定向单元回归17个文件、90项通过Agent面板、输入/IME、会话恢复与隔离、历史、定位、同步、画布工具规划、文件队列及本机草稿
Runtime PostgreSQL9个文件、99项通过,无跳过真实Runtime组合、画布读取/修改循环、节点生成、冻结输入、恢复与引用释放、独立服务桥接
素材PostgreSQL5项通过,无跳过上传回执查询、自动入库、同命令复用、对话关联和权限保护
类型与质量TypeScript、受影响代码ESLint、diff检查通过主应用和独立Runtime宿主依赖均按锁文件安装
浏览器自动回归13个独立场景通过10项首轮通过、桌面历史操作1项复测通过、组合本机图片2项复测通过;不是一次全绿运行
Standalone初始化测试实际构建HTTP入口通过新对话初始化、独立Runtime数据库、原会话/请求恢复;不再使用前批跳过初始化的方式代验

浏览器覆盖1280、821、430、390px中各场景对应的视口:画布专属对话自动恢复、澄清、原命令后续调整、候选加入与定位、Agent改写/新增节点、立即撤销重做、刷新、额度暂停与显式恢复、滚动位置保持、收起重开及跨画布隔离。

新增的组合验收分别在1280px和390px执行:打开Agent建立订阅后收起面板,断网导入20张图片;Agent在服务器修改原文本并新增节点,前端无需上传这些图片即可回显修改,20张本机图片全部保留。随后刷新恢复、联网续传,最终为20次上传、22个云端节点,云端快照没有Blob URL、Base64或本机文件标识。

此外使用内置浏览器手动验证建议填入、收起重开后未发送草稿保留、离线图片被选入Agent参考区、离线提交保留需求并提示联网、恢复在线后的单次上传和云端同步。390px页面宽度与scrollWidth均为390,无框架错误覆盖层,相关console error/warn为空。该手动页面的业务接口为隔离代理夹具;不将其当成真实供应商生成。

原始记录在Studio工作树.local/integration-pr64-evidence/,包含各测试日志、三轮浏览器结果JSON、Standalone初始化证据、截图和integration.json。失败轮次也保留,可核对修复与复测过程。

本次只拉取合入和本地联合验证,没有提交、推送、部署或切换生产调用;第5节尚未闭合的全平台工作继续有效。

7. 纳入最新Commerce并补齐Studio音视频本机导入

7.1 本轮范围与基线

用户本轮明确Drama先不动,已启动Commerce需拉取最新代码并纳入。因此本轮没有继续修改Drama,前述Drama结果仅为历史记录。Commerce完整fetch后从bb4d43c8573c2b1130e4a9459458bb1efbd66f6d建立独立工作树commerce-media-files,分支codex/8-media-files,关联 Commerce #8。保留最新创意工具、统一图片编辑、文本助手、并发拍摄清单、商品链接改图和素材库;没有拿旧原型覆盖最新代码。原checkout未被重置。

Platform快进到56923ce,保留原件补丁;Runtime快进到57753ba,保留SDK补丁。Platform合入前补丁和stash保留,无冲突。Studio仍以第6节8df6fb8f为基线,保留Agent面板及循环改动。

7.2 本轮初始候选实现(Commerce存储策略已由第7.5节替代)

范围实际结果
Commerce稳定上传产品数据库登记不可变上传命令;同一命令同一指纹恢复一条素材记录,并发重放不覆盖后续重命名、分类或回收站操作
Commerce素材复用素材库进入AI编辑直接使用原素材ID;不再先下载进浏览器又上传。修复切换模式丢失素材URL参数,刷新后保持原素材
Commerce本机回执IndexedDB升级schema 2,以服务器/Owner作用域和本机素材ID联合索引。新服务实例可直接复用回执,不再次计算Blob哈希或上传;不保存凭据、grant或临时URL
Commerce原件适配可选专用File Owner适配,先查回执、原件上传、严格续期及读取授权;业务库只保存稳定证明。下载先授权并核对缓存长度/SHA,保留原文件名;缓存恢复不转发服务Authorization
Commerce参考输入图片编辑、多角色海报/链接图、分镜视觉请求改为HTTPS URL,保持角色顺序和透明输出校验;Seedance可使用Owner签发URL,未配置Owner时保留原显式限时relay。未验证的视频URL协议拒绝收费派发
Studio导入补齐视频、音频导入与图片共用本机队列,File/Blob先显示,异步读取尺寸/时长并后台入库;页面刷新后恢复,同命令续传。没有扩大现有20MB导入策略

上表为用户追加“Commerce不再使用本地媒体存储”之前的候选记录;其可选Owner、本机Blob和relay策略已被第7.5节替代,不再是实施目标。未创建消费端生产凭据、未修改生产身份/桶、未切换Platform调用。Commerce仍是单用户loopback宿主,不能将此候选描述为中央身份或公开多用户服务已完成。

7.3 本轮验证

检查实际结果与范围
Commerce前端18文件70项通过,无跳过;TypeScript与生产构建通过
Commerce后端168项通过,无跳过;指定本机中文字体后包含实际FFmpeg合成、声音与视频已有回归。保留2条依赖警告:Starlette/AnyIO弃用、Pydantic已有alias警告
Commerce原件专项同命令missing/ready、冲突、并发注册、失ACK找回、Owner错误scope回执拒绝、原件续期、下载、身份变化拒绝、未注册衍生帧拒绝、无URL协议在收费前阻断;Owner和模型使用MockTransport,未访问生产或真实供应商
Commerce内置浏览器127.0.0.1:4175,1440×900、390×844,真实空库本机服务。上传1.6MB项目示例PNG,进入编辑、切模式、刷新后仍引用同一素材;数据库1条素材、1条命令、服务日志1次上传,收费任务POST为0;无相关console error/warn,390px无页面横向溢出
Studio本机音视频4文件14项通过;类型、受影响ESLint通过
Studio生产浏览器构建AYHNpfoNkKCupFqAQDzZk。1280px和390px两项通过:断网选择合成MP4与WAV后节点立即出现、上传0次;本机保存后刷新恢复,联网后恰好2次上传、云端3节点,无Blob URL/Base64/本机标识。业务API为受控夹具,不是真供应验收
Platform最新基线file bridge 15项通过,无跳过;原件补丁适配最新main后的真实隔离PG验证
File Owner HTTP边界新增真实Gin路由及controller测试通过,包含8个lookup子场景与3个无效上传元数据场景;验证认证、未知字段/尾随JSON、16KiB请求上限、产品范围、规范长度与Cache-Control。无对象IO、不登记claim;上传头超过4096字符先拒绝再解码,无效元数据不读取媒体正文。使用SQLite注册表与拒绝外部对象请求的传输,不是云端HTTP验收
File Owner与Studio存储File Owner SQLite/PG两子测试通过;Studio素材PG 5项通过,无跳过。新建自有loopback临时PG,结束后停止移除。该项服务用例不代验HTTP路由;新增路由边界另列下项

初次Studio浏览器启动因新构建尚未准备Standalone public/static失败,使用本仓prepareStandaloneAssets后两项通过;失败日志保留。初次Commerce后端因本机未配置中文字体有7项失败,指定系统中文字体后168项全过。新增浏览器发现的模式URL回归已修复并复测,不能把先前失败轮次标为通过。

本机日志前缀/tmp/ow-commerce-*、/tmp/ow-studio-av-*;Commerce截图及browser.json在/tmp/ow-commerce-media-evidence/。Studio自动回归原始证据在本次命令输出的studio-runtime-progress-qa-pFJXc3临时目录。源码仍为独立工作树内未提交修改,不等于已合并或部署。

7.4 更新后的未闭合范围

第5节是前批状态;其中Studio初始视频/音频导入已由本节补齐,Drama本轮移出实施范围。全平台仍未完成:Studio原生Gemini/图片编辑的已发布引用契约、冻结请求中签名URL与稳定引用的职责、生成结果原件采用和素材库自动登记、蒙版/末帧/跨产品分享的逐入口核验、已同步缓存回收及Undo引用、中央身份下Commerce账号隔离、CORS/原件导出与实测性能,以及未授权执行的生产切换。旧Base64模块的存在也不能直接等同于Studio活跃链路仍走它:当前Studio执行已走native-media相关模块,需要按实际调用入口继续核对;Drama遗留协议不得在本轮被顺带破坏。

本节只证明所列本机实现和验收,不将统一原件重构整体标记完成,也不以库构建或MockTransport替代真实供应商多URL内容保真、云端权限与跨域验收。

7.5 Commerce远端原件强制接入(替代第7.2节的本机媒体候选)

用户随后明确“commerce不再使用本地媒体存储”。本节替代前述可选Owner、IndexedDB Blob素材库、常驻服务器成品及本地relay策略。Studio仍采用画布本机草稿队列;不把Commerce新要求反向套用到Studio,Drama继续不动。

  • Commerce四项File Owner服务端配置成为必需项。未配置上传返回503,生成在任务受理/收费前拦截;不存在本地原件文件夹或限时relay兜底。现有中央身份缺口不因此消失,网关仍只允许loopback。
  • 所有活动AssetService改为远端服务。编辑器、品牌、批处理和图片工具不再向IndexedDB写媒体Blob或上传回执;设计/项目/任务元数据仍可保存在浏览器。文件只在当前页面内存用于预览,成功后使用原素材ID与同源读取入口。原浏览器数据不自动清除,旧媒体表不继续读写。
  • 上传使用临时spool,Owner回执和产品素材登记完成后删除;同File内存重试保留相同command。素材/图像结果元数据复用不下载原件,不重新上传。切换模式、刷新和成品进入编辑器都保留原素材ID。
  • 图片编辑、拍摄清单、海报、商品链接逐图成品、参考图视频、多镜头成片及换装raw结果都在发布success/可下载地址前保存到Owner,自动登记素材目录。并发镜头仍使用原索引,部分成功和取消前已完成结果可读。
  • Pillow/FFmpeg使用请求/任务临时目录,结束或失败清理;父进程在终止/取消worker后清理其scratch。正式读取不查这些路径。下载临时文件有界校验SHA/长度/MIME,用完清理;Range和原文件名继续支持。JSON/SRT/brief是产品SQLite中的文本元数据,响应从内存生成,不伪装成媒体上传。
  • File Owner真实上传契约发现Go MIME嗅探返回的WAV别名与客户端audio/wav不一致。已在新FileUpload路径补齐真实RIFF/WAVE字节识别和WAV别名、Ogg音频codec标志、Matroska头标志;不修改旧客户Asset API。Commerce音频上限15MiB,与Owner一致,图片/视频25MiB。
检查当前远端候选结果
Commerce前端19文件74项前轮通过,无跳过;最后并行复测有1项素材列表等待超时,Commerce未提交并留待独立复核;覆盖远端上传不写IDB媒体、同File相同command、已有原件/生成结果仅元数据复用、Owner失败无本机兜底、编辑模式和刷新保留素材;类型与构建通过
Commerce后端173项,无跳过;包含实际FFmpeg、声音校验、拍摄并发/部分成功、远端成品下载、Range、临时目录清理、Owner必填、错字节/跨scope拒绝、Owner保存失败不发布success
File Owner媒体合同新增8个MIME子场景及WAV真实上传/同命令重放用例通过;WAV保存回执保持audio/wav,同文件重放只有1次对象PUT
File Owner隔离数据库/HTTP原件单写/委托SQLite与PostgreSQL两个子测试、媒体合同、Gin HTTP边界8个lookup子场景及3个错误上传头场景再次通过;临时PG以非超级用户运行,结束后移除
内置浏览器1440×900和390×844,受控Owner对象存储;项目示例图上传后真实预览宽1254px,进入AI编辑、切换抠图、刷新后仍是同一远端ID;390px页面宽和scrollWidth均390,相关console error/warn为空
测试存储核查本次浏览器最终数据库1条素材/1条命令/0条付费任务;DATA仅有SQLite及商品页采集元数据目录,没有assets/jobs媒体目录。受控对象保存在独立内存夹具,测试Owner的HTTPS授权通过后仅在夹具内映射到loopback字节路由,不能当作云端HTTPS/CORS验收

证据在/tmp/ow-commerce-remote-evidence/:reuse-1440.png、library-390.png、reuse-390.png、browser.json、storage.json;最终日志/tmp/ow-commerce-remote-{typecheck,unit,backend,build}-final.log,Owner日志/tmp/ow-owner-remote-final-pg.log。最初远端浏览器夹具的对象路由未纳入Vite代理,预览失败;修正仅测试夹具的路径后重新上传、真实图片加载与刷新复用均通过。旧失败截图不作为验收证据。

本节记录测试时尚未部署、提交或推送源码;用户随后要求先提交Commerce和Drama之外的改动,提交本身不改变以上验收范围。未配置消费端生产凭据、未切换Platform或旧客户链路,未发起真实付费请求。尚未完成真实新Owner实例/私有桶/浏览器CORS导出、中央用户隔离、上游已有结果的直接采用;模型结果仅存在worker内存时,若Owner不可用或worker在保存确认前退出,当前候选不提供跨进程结果恢复,不能自动重付费生成。整机硬崩溃可能留下OS临时文件,宿主需清理,它们不会成为正式读取来源。上述边界与第7.4节仍未闭合的全平台事项继续保留,不标记全平台改造完成。

7.6 用户要求先提交其他部分

按用户“先把其他的部分全部都提交了”的要求,Commerce继续保留未提交,Drama按既有要求先不动。本轮其他已验改动保存为下列本地Git提交;不包含其他任务工作树,不推送、合并或部署,不改变既有生产调用。

仓库本地提交内容
Studiob1a9ef52本机素材队列、图片/音视频恢复、云端就绪同步、Agent合并保护与SDK 0.7.1
Platform1936efd已就绪原件直接续期,不依赖生成恢复或重复采用
Runtime74c161bserver SDK 0.7.1、不可变上传回执查询及严格校验
File Owner7099bc2上传回执恢复、HTTP元数据边界和媒体字节识别

文档提交同时包含已完成的独立服务部署记录PROC-02-018、首批/后续验收记录PROC-02-019、实施规格和证据索引。提交不代表第7.4/7.5节待验范围完成。Commerce最后一次并行前端复测的单项等待超时仍待独立复核,不以这次提交掩盖。

7.7 Commerce远端存储收尾验收

用户要求继续完成Commerce、修复剩余测试,验证后提交推送,Drama仍不动。本节闭合第7.5/7.6节保留的Commerce代码及受控集成验收;不把本次推送当作部署或真实供应商验收。

  • 修复最后一次素材库测试等待失败:把无边界的页面角色查找缩小到素材列表区域,测试结束清理QueryClient,jsdom并发限制为2,没有增大原等待时限。独立素材库3项通过;完整前端78项(20文件)与后端176项均通过,无跳过,前后端并行复验也通过。
  • 清理遗留IndexedDB媒体字段,活动代码没有assets/uploads表读写。上传文件的内存重试在所有入口保留相同command;扩展名与真实图片MIME不一致时,在Owner调用/命令登记前拒绝。素材列表和picker先按当前Owner/subject/commerce作用域过滤,后应用200条限制,旧本机记录和其他作用域的素材不会显示或被修改。
  • 批量工作区只恢复远端元数据;已上传素材在模型受理失败后仍保留原件ID,不重新上传,失败释放提交状态。进度重连只查询原任务,离开页面清理轮询。批量导出读取成功的成品;图像导出通过同源原件下载入口,保留权限和内容校验。
  • 上游已受理任务ID/status改为SQLite中的有界元数据,临时目录清理不再丢失原任务号;不保存签名URL、原始上游响应或媒体Base64。这只是恢复所需身份的保留,未新增自动重派或承诺Owner未确认时的跨进程结果恢复。
  • TypeScript、78项前端、176项Python(含真实FFmpeg/音频)、生产构建通过,构建JS为index-DMRaiqXz.js。生产依赖审计为0漏洞;Gitleaks 8.28.0对151份当前源码/配置/文档扫描无发现。保留原有大chunk提示和两条Python依赖警告,未为此跳过检查。

内置浏览器在127.0.0.1:4175,1440×900和390×844完成:上传项目自有示例PNG → AI编辑 → 一次受控结果产生并保存Owner → 实际导出PNG → 继续编辑 → 编辑器刷新 → 手机从素材库再次选用该成品 → 切模式并刷新。生成入口显式标注QA fixture;Owner控制面使用严格HTTPS合同MockTransport,字节入口只在测试夹具映射loopback,真实模型出网被禁止,不是云端TLS/CORS或生成质量证明。

最终数据库2条原件素材、1条上传命令、1条受控任务;HTTP仅1次输入上传POST,真实模型调用0。DATA没有assets/jobs媒体目录;导出文件SHA-256与成品Owner证明完全一致,进入/刷新编辑器及二次复用没有新增上传。手机innerWidth/scrollWidth均390,输入图真实宽1254,框架覆盖层0,相关console error/warn为空。页面身份、内容、截图和真实交互检查均通过。

证据在/tmp/ow-commerce-close-evidence/,包括result-1440.png、editor-refresh-1440.png、library-390.png、reuse-390.png、browser.json、storage.json和真实下载的download.png;日志前缀/tmp/ow-commerce-close-。测试替身/脚本/截图均不进入源码仓。未读取或修改生产凭据/配置,未进行付费供应商调用、生产部署或平台切流;Drama未修改。真实部署联调、私有桶跨域画布导出、中央用户隔离及第7.4节全平台未闭合事项仍按各自范围验收。

本批Commerce代码提交为dab183c(分支codex/8-media-files),对应源码提交。后续部署的File Owner需具备第7.6节7099bc2对应的上传lookup和媒体字节合同,并为Commerce单独配置产品权限及可信subject;当前线上18da578不因本次代码推送自动升级,不能只填写消费者环境变量就视为联调完成。

On this page