Repository navigation
v1.5.7
更新内容
打包提速与界面专项治理:Windows 运行时压缩包加入复用缓存,内容没变时打包直接复用;对全部界面做一次审查后集中修复 13 项体验缺陷(超长文件名压住验证图标、日志窗口自动刷新拽人回底部、指引焦点环不可见等),清理一批界面死代码,补齐读屏播报,并为正式版启用内容安全策略。
📝 更新日志 (Changelog)
✨ 改进与优化 (Improvements)
打包提速:Windows 运行时压缩包可复用:每次打包都会从头重建内含 Python 环境的
python-win.7z(约 2 分钟),哪怕相关内容一个字没改。现构建完成后把成品存入.cache/复用缓存(该目录不会被打包前的清理删除),下次打包时只要依赖清单和构建脚本都没改过,直接从缓存恢复(实测 0.2 秒);任何一方有改动都会自动触发重建,不会误用过期缓存。缓存写入采用"先写临时文件再改名",构建中途被强行中断也不会留下半个坏缓存被后续打包误用全量死代码清理(约 3300 行):对全部代码做"有没有人用它"逐项核查后删除:整条本地发版脚本(已被 GitHub 自动打包取代,且一半功能早已失效)、4 条界面上没有任何按钮会调用的后台通道("打开输出文件"走的是另一条路、"另存为"是旧方案遗留、"打开发布页"下载按钮用的是别的通道、"读取/修改日志级别"日志窗口从不用)、一套只被自己测试引用的"自动恢复/熔断"组件、平台配置层里只在启动时空耗时间探测 Python 却无人读结果的整层结构、Python 端从未接入的图片字节缓存与图片验证链、一批一次性诊断脚本和指向不存在文件的配置。程序行为完全不变,仅删除确认无任何调用方的代码
修正配套引用:README 移除已删发版命令的说明、测试中针对已删接口的用例同步移除、依赖清单移除唯一消费者已删除的 ts-node
合并重复代码(9 处归一,净 -137 行):杀后台进程的命令原先在三个文件各写一份、两个构建脚本各自养一套工具函数(拷目录/清目录/字节格式化等)、"拷 Python 源码"写了两遍且打包流程里那次是白干的、检查更新下载逻辑约 150 行复制粘贴、找 Python 的探测同一函数内抄两遍、文件类型清单抄了三四份、文件大小格式化两份、界面两个一模一样的错误回调、文件浏览器里"加载列目录"写了三份——各自合并为一份,公共行为取各份实现的并集。附带两处可见的小统一:日志/更新里的文件大小显示统一为带空格的"1.5 MB"样式;杀进程超时统一为 5 秒
拆除"为以后准备"的空架子(9 项,净 -165 行):零行为差异的文件"5 档自适应"分档(没有任何一档行为不同,相关预留参数 6 处检查永不触发)、只有一个使用者的验证注册框架(改为普通函数,并把名不副实的旧测试文件重写成 16 个真测试)、进度条 4 个从没人传的参数、列宽钩子的空壳配置、构建脚本里注释自认"不需要"却每次打包空转的函数、选文件组件里永远走不到的系统对话框分支、更新通知里只写不读的状态字段、系统信息模块里永远走不到的 Linux 分支;同时按平台约定清理约 19 处注释里的"Linux"字样(保留两处刻意设计:防止 Linux 版压缩工具混进安装包的排除规则、比实际平台更宽的路径脱敏兜底)
🐞 修复问题 (Bug Fixes)
日志窗口搜索每个按键都查一次:搜索框的"防抖"是个空壳:延迟回调里什么都没做,输入更新是即时的,结果每敲一个键就向后查一次日志,输入长关键词时产生大量无效查询。现已实现真实防抖:停止输入 300 毫秒后才发起一次查询,并新增回归测试锁定该行为
进度数据字段名前后不一致:后台发给界面的进度数据里"当前行号"字段用的是驼峰命名,界面侧的类型声明却写成下划线命名(该字段当前没有任何界面使用,用户无感知);已统一命名,避免将来使用时拿到空值
超长文件名与验证图标叠在一起:文件选择框在验证通过后本应给右侧的绿色图标留出 32 像素空位,但这条"留空位"规则写在了基础样式前面,被后面的整体内边距声明覆盖,从未生效过——文件名一长,文字就一直画到图标底下(用户实测截图确认)。现调整规则顺序让空位真正生效,超长文件名截断显示省略号
日志窗口三个体验问题集中修:① ✕ 关闭按钮悬在窗口正中央:标题、关闭按钮、工具栏三个元素用"两端分散"布局,中间项被挤到水平居中,现 ✕ 移到工具栏末尾,窗口同时改为全屏面板并支持 Esc 关闭;② 翻看历史日志时被强行拽回底部:每 3 秒自动刷新后无条件滚到最新一条,正在往上翻的用户根本没法看,现只在停留在底部附近时才自动跟随;③ 清空/导出/加载失败全部无声无息:失败只写程序内部日志,界面毫无反应,现显示可关闭的红色错误横幅,"清空"也改为两段式确认(点一次变成"确认清空?",再点才执行)
处理中点"取消"失败没有任何反应:取消请求失败只写程序内部日志,界面停在"处理中"一动不动,用户不知道发生了什么;现在会显示"取消失败,请稍后重试"
文件路径框看起来能点其实不能点:路径框鼠标悬停变色、光标变手型,但点击毫无反应,必须点右边的"浏览"按钮;现在点击输入框直接弹出文件浏览窗口,行为与光标暗示一致
文件浏览窗口重新打开显示过期列表:浏览窗口只初始化一次,关闭再打开不会刷新,外部新增或删除的文件要等最多 5 秒轮询才出现;现在每次打开立即刷新
Excel 浏览与验证规则打架:浏览窗口允许选 .xls / .csv 文件,选完验证却按"只支持 .xlsx"拒绝,能选不能过;现两边规则对齐
操作指引三处问题:① ✕ 关闭按钮的键盘焦点环是棕色描边叠在棕色标题条上,键盘用户完全看不见焦点在哪,改用反白描边;② 窗口缩放或页面滚动后,棕色高亮框留在原地指向已移走的位置,现跟随窗口缩放与页面滚动重新定位;③ 欢迎弹窗没有焦点管理,Tab 会穿透到被遮住的底层界面、Esc 也收不到,现焦点锁在弹窗内
错误页"返回重试"名不副实:这个按钮实际会清空全部已选文件(要重新选、重新验证),文案却暗示"重试一次";文案改为"返回"
界面文字与配色统一:主界面副标题是英文长句其余全是中文(改中文);作者署名一处"Colin"一处"Colin Ruan"(统一为前者);启动画面的转圈是蓝色、与整体暖棕色系脱节(统一主题色)
文件选择状态机保护不一致:更换文件的两个入口会无条件改写处理阶段,另外两个入口却有"处理中不受影响"的保护,写法不统一埋着隐患(目前靠按钮禁用挡住);已统一补上保护
引导状态写入不规范:引导翻页把"写存储"塞进了界面状态的计算函数里,开发模式下该函数会跑两遍、写入也跟着双跑(写入值相同所以无实际损害);重构为规范写法,行为不变
✨ 改进与优化 (Improvements)
进度条动画到站即停:动画循环在进度到位后仍每帧空转、持续占用渲染进程算力;现到达目标即停止,有新目标再启动
UI 死代码清理:删除永远不会触发的窄窗口适配样式(程序窗口最小宽度锁在 900 像素,375/479/639px 的手机断点永远不会生效)、从未被引用的样式块与设计变量、两份完全相同的图标(错误图标与叉圈图标一模一样,合并为一份)、样式表里先写后覆盖的重复声明、从未被使用的处理阶段定义
♿ 无障碍 (Accessibility)
处理成功与更新通知现在会被读屏软件自动播报:此前只有错误提示会播报,成功页和顶部滑入的更新通知对屏幕阅读器完全静默;现已对称补齐
补齐读屏名称:验证失败时的"清空重选"小图标按钮此前只有悬停提示(读屏软件读不到用途)、日志搜索框没有关联标签,均已补上
禁用输入框光标改为"禁止"样式:与不可点击的行为保持一致,不再误导
🔒 安全 (Security)
正式版启用内容安全策略(CSP):限制页面只能加载应用自身的资源,为将来可能的注入类风险加一道闸(开发模式因热更新依赖内联脚本暂不启用)
外部链接一律用系统浏览器打开:更新说明里若包含外部链接,此前点击可能在应用窗口内跳转导致整个界面白屏;现应用内导航被拦截,外链交给系统浏览器
📥 下载地址 (Downloads)
| 🖥 Platform | 📦 Download |
|---|---|
| ImageAutoInserter-1.5.7-arm64.dmg | |
| ImageAutoInserter-Setup-1.5.7.exe |