Skip to content

v1.5.8

Latest

Choose a tag to compare

@ColinYYCC ColinYYCC released this 08 Sep 08:11
b952602

更新内容

macOS Windows Release

进度管道内部整理:进度条"报数"在屏幕侧与 Python 侧的收发各自收拢为单一出口,删除三处重复节流和一处"睡 0.12 秒"的土办法补丁,散落各处的阶段百分比收成一张进度时间表。进度条的外在表现与之前完全一样(测试逐条锁定);新增约 20 个测试,Python 与 TypeScript 测试全绿。同期把 800 行的文件处理器拆成三个专门文件并删掉一份逐行重复的压缩包验证,6 条对外通道与界面行为一字不变;界面状态机也做了同样的收敛——"选完文件才能开始"的判定归一处、处理结果改为单一写入通道,迟到或重复的完成/报错在内部统一挡掉;"检查更新"的触发也从窗口管理模块上移到启动编排层,窗口模块不再反向知道更新模块的存在;"Python 怎么被找到并启动"同样归了堆——脚本查找、嵌入式解释器探测、首次启动的运行时解压收进一个专门文件,路径配置文件回归只管纯路径。

📝 更新日志 (Changelog)

🚀 优化改进 (Improvements)

  • Optimize 进度接收端收拢为一处(屏幕侧):进度消息显示到界面前要经过的"翻译字段、掐节奏(100 毫秒一条)、防卡死闹钟、收尾清场"四件事原先散在三个文件里,排查任何进度显示问题都要翻三处;现全部收进一个专门文件(progress-relay.ts),并配接口测试逐条锁定原有行为。"进程结束后清掉残留定时器,防止完成页闪现旧进度"这层保护原先只靠回归测试间接看住,现成为该模块写明的职责
  • Optimize 进度发送端收拢为一处(Python 侧):干活进程发出的每段进度原先要过三道各自为政的"节奏器",其中一道靠"发完睡 0.12 秒"的土办法防止 1%、2% 这类阶段值被下一条消息吞掉;现收拢为唯一出口(progress_emitter):统一掐节奏、保证进度数字只增不减(处理多个工作表时第二个表的行进度从 25% 重新爬,也不会让进度条倒退)、保证阶段值逐个送达不丢。删掉睡眠补丁后,启动阶段约 0.24 秒的人为等待也随之消失
  • Optimize 百分比数字收成一张对照表:散落在代码各处的 9 个阶段百分比(2 / 5 / 14 / 15 / 20 / 72 / 92 及行进度区间的 25→70)统一收进编排器顶部的一张进度时间表,想核对或调整进度节奏只看这一处;数值原样,界面表现不变
  • Optimize 进度消息的线上格式加了"防改动"锁:后台与界面之间传的进度消息字段集合原先没有测试看住,字段名一旦改动界面会静默拿到空值(1.5.7 修过一次这类字段名不一致);现补了字段集合锁定测试,同时把"Rust 迁移计划"文档里与现状不符的三处描述改正
  • Optimize 800 行文件处理器拆成三块(目录浏览 / 盘符卷枚举 / 来源验证):这份代码原先把三件不相干的事挤在一个文件里:浏览文件夹的缓存与过滤、Windows/macOS 两套"找 U 盘"的探测逻辑、图片来源检查,改哪件都要在 800 行里找位置;现拆成三个专门文件,对外 6 条通道的名字与行为一字不变,35 个既有界面行为测试原样通过
  • Optimize 删掉一份逐行重复的压缩包验证:检查 RAR 和检查 ZIP/7Z 的代码原先各写一份,连"没有找到支持的图片文件"的提示文案都抄了两遍,改一处很容易漏另一处;现归一为"两个压缩包列举器 + 一套计数与文案",提示文案从此只有一份,并用测试逐字锁定
  • Optimize 文件选择相关补上测试:盘符列表的 CSV 解析、盘符条目构建、文件夹图片扫描计数、各类验证失败提示原先都没有测试;现补 13 个测试盖住这些纯逻辑与文案
  • Optimize 界面状态机的判定规则收成一处:"两个文件都选好才能开始处理"的判定,原先在四个界面动作里各抄一遍、写法还两两不一样(选 Excel 只看图片那半边验证过没有,选图片只看 Excel 那半边);现收敛为状态库内两个纯函数判定,各入口的历史差异逐字保留(界面表现不变),以后调整规则只动一处
  • Optimize 处理结果改为单一写入通道:"处理完成"会经两条路送到界面(后台主动推送 + 操作返回值),原先两条路各自抄一遍"别重复显示"的判断、规则还不一致;现在两条路都走状态库的同一个写入口,防重复守卫只写一遍(取消/重置后迟到的结果、双通道重复的完成或报错都在里面挡掉),顺带删掉了不再需要的独立会话写入接口
  • Optimize "检查更新"的触发点归位到启动编排:窗口管理模块原先要反过来知道更新模块(加载完成后 3 秒替它触发检查、把窗口递给它发通知),层级倒挂;现两处接线都上移到启动编排层,窗口模块彻底不知道更新模块的存在,6 条更新通知通道与触发时机一字不变;版本号比较同步抽成可独立测试的纯函数(补 4 个边界测试)
  • Optimize Python 运行环境引导归堆:"Python 怎么被找到并启动"原先散在四个文件里,一段 150 行的首次启动解压流程还寄居在"路径配置"文件里;现收进一个专门文件(python-runtime.ts):脚本三级查找、嵌入式解释器探测、运行时解压(含防重复触发与 2 分钟超时)都在一处,路径配置文件回归只管纯路径解析。依赖方向单向(运行时引导 → 路径配置),所有查找候选顺序、解压条件、探测优先级逐字保留
  • Optimize 验证通过的对勾加淡入动画:两个文件都选好的一瞬间,对勾原先"啪"地弹出,与按钮亮起叠在一起显得界面闪了一下;现对勾以 0.25 秒淡入缩放呈现,并遵循系统"减弱动态效果"偏好

🐞 修复问题 (Bug Fixes)

  • Fix 结果页统计不再把表尾落款行当成货物:装箱单底部的公司落款/签字行(写了公司名但没有商品编码)原先被当成一行货计入"总计":找不到图、不算成功也不算失败,但占着总数名额,导致"总计 49、成功加失败只有 47"这种对不上账的困惑。现在编码格真正为空的行不计入总数,同时在处理日志里明说"第几行没有商品编码,未计入统计",真漏填编码的货不会被悄悄吞掉;商品编码是公式(如 VLOOKUP 查表)的行不受影响,照常识别

📥 下载地址 (Downloads)

🖥 Platform 📦 Download
Apple Silicon ImageAutoInserter-1.5.8-arm64.dmg
Windows x64 ImageAutoInserter-Setup-1.5.8.exe

Full Changelog: ColinYYCC/ImageAutoInserter@v1.5.7...v1.5.8