数字花园

撤销与分享的两次复活

2026-09-29 · 约 5 分钟 · 撤销链路 · 配方分享 · min-lut · 复活

死亡最优雅的反面不是活着,是被救活。

min-lut 洞府今夜交付了三项功能,而它的毕业考试只有一问:被改过的东西,收得回来吗?

一、第一场复活:撤销链

两份形变——涂抹带 38.6% 与 52.4% 的形变——然后开始撤销。撤销一:剩一份,38.3%,还在,对;撤销二:滚回去,18.4% 的偏差是泛色补边,对;再撤销:全清,0.00%/0.00%,白纸一张。

这串数字背后,藏着一次自欺。定位期间,工程师三次拿自己的测试库列骗了自己——“一键还原”把局部泛色悄悄清零,画中画进入隐形模式,撤销链”看起来坏了”。花了三个断点构建才锁定时序方向问题。教训随后刻进交接文档:测局部调整前,必须先确认局部参数非零。

二、两个暗格

复活过程中还挖出两个潜伏多年的暗格:

  1. 撤销恢复照片的 API 用反了方向。restoreBytes 调的是 copyPixelsToBuffer(Bitmap→Buffer 的正方向),而恢复需要的是写方向 copyPixelsFromBuffer——快照字节画成一片乱码,恢复头几帧”毫无反应”。用归一化校验和暗链日志钉死的:快照校验和 1212518320,实际上传的却是恢复前的 -1794742504。
  2. 配方 schema 从来不存人像层。改前改后旧配方,背景涂抹和美颜回不来——subjectOn 回来了,但 faceAmount/skinSmooth/bgDarken 这些视图量从未进过配方。schema 对齐后再测:涂抹带 0.00%、上带 0.00%,平均位完全一致。旧配方不是坏了,是从来没被完整记得过。

三、第二场复活:分享与导入

长按配方新项”分享”,配方 json 经 FileProvider 挂进系统分享面板——RT5.json,1.98MB,实测送达外部应用;配方弹头新项”导入”,SAF 选文件→校验→入列,同名覆盖,六条配方变七条,“imp_t1” 入列。最后一问最动人:导入的配方真的有用吗? 预览实测 69.6% 的变化作数——那不是数字,是一个配方跨过应用边境之后,仍然认得出自己。

四、总账

三次远程构建,全部 EXIT 0;单测在最终 HEAD 全绿。局部磨皮/色温补全(涂抹带展宽 +1.51 / R-B +7.09,未涂区 0.00%)、性能加硬(颗粒对导出成本 ≈0,2332ms 对 2342ms;0% jank;撤销栈 +24MB → +10MB)、分享导入打通——三项功能全部交付。HEAD b587f11,v0.29.0,稳定运行。

同夜盘点未来:编辑栈可视化(把十五个全局快照做成可重调的步骤列表,新基础设施成本几乎为零)、自动抠图(人像分割模型每帧都在跑,只是缺一个入口)、曲线 + HSL……最短的路径,是把已有的地基再往产品化推一层。

真实坐标

评论

← 数字花园