海拓补充材料发来后的半小时,嘉禾采购把那封律师函里的核心要求转给了罗致远。
对方没有拿到刻度云客户名单,消息来自海拓自己的项目线。嘉禾既是海拓客户,也是刻度云限定场景许可的购买方,采购不可能假装什么都没发生。
罗致远只发来一句话:“如果下周被迫停服,我们的数据怎么拿走?”
周衡没有回复“绝不会停”。
律师函不是禁令,但争议如果进入程序,谁也不能用一句自信代替连续性安排。他把刻度云现有导出能力、嘉禾本地缓存、服务终止后的只读期限和账号注销流程列成四项,当晚发出书面说明。
嘉禾的数据仍在嘉禾授权范围内,随时可以按约导出;本地代理即使与平台断开,也会在客户自己的设备上保留待上传事件;刻度云没有远程执行生产操作的能力,不存在平台一停就接管不了业务的问题。
罗致远看完回了一个“收到”,随后补充:“采购还会等第三方结论。”
客户没有因为周衡救过一次事故,就把知识产权风险当作不存在。
同样,周衡也不能因为客户焦虑,就把完整仓库复制给任何自称能鉴定的人。
叶澄当天拟了一份封存方案。第一页不是技术名词,而是封存目的、对象、操作者和每一步的开始结束时间。
“证据不是越多越好。”她说,“要能回答三件事:这些数据从哪里来,封存以后有没有变,交给第三方的又是哪一份。”
周衡把个人开发电脑与日常服务机器分开。
个人开发电脑记录刻度云从空仓库开始的提交历史,设备购买于离职之前,却从未安装海拓的资产管理程序,也没有接入海拓代码仓库。日常服务机器则是产品上线后才添置的测试设备,里面有用户主动提交的诊断包,不适合整机交付。
机构的工程师接过设备清单,先将需要保留的版本固定下来,再按范围制作比对副本。
周衡只解释了两个争议模块,随后把整理工作交给了他们。丁卓还想跟着一项项盯,叶澄把另一张清单递过去。
“你看自己的安装计划,这边有进度我叫你。请他们来,就是让专业的人替我们做事。”
丁卓看了看满桌的设备,坐回另一边。
周衡也重新打开了客户需求。
隔着一张桌子,工程师在整理记录,他可以照常接客户的电话。过去一听见争议,他就得先把自己的事全部停下来;现在这件麻烦有人接了过去,他只在需要判断时抬一下头。
上午十一点,嘉禾问下一阶段能否按原计划进场。
“能。”周衡说,“给我们留好测试窗口。”
他说完,叶澄正好看过来,向他点了一下头。
接着是构建记录。
周衡从封存仓库签出最初公开的0.1标签,在一台全新隔离环境中按照当时锁定的依赖版本重新构建。第一次失败,原因是一项公开组件的下载地址已经迁移。
丁卓皱眉:“会不会让人觉得以前构建不了?”
“失败也记。”周衡说。
他没有偷偷改锁定文件,而是把旧地址返回结果、公开镜像的同版本校验值和替代下载过程写入复现说明。第二次构建成功,产物与上线时保留的安装包校验一致。
失败记录留在报告里。
能复现的证据不要求世界两个月后仍和开发当天一模一样,它要求变化在哪里、为何变化、谁做过哪一步都能说明。
公开依赖和原创模块分别列明来源,由机构按提交记录复核。周衡把需求编号交出去,剩下的整理工作不再占住他的手。
用户上传的诊断包不进入代码证据。
嘉禾的演示数据、汇邻的旧系统结构和普通用户提交的脱敏日志全部排除,只保留“某次反馈导致了某项需求”的编号、时间和经用户同意保存的最小描述。证明产品如何演变,不等于有权公开客户内容。
机构把无关个人信息和客户资料从比对副本排除,原始镜像继续封存。凭据轮换由丁卓处理,过程一次记录清楚。