修复
- 修复 upload_to_github.py 版本号更新逻辑:badge正则限制URL域名为github.com,实际badge URL是img.shields.io,导致无法匹配;改用字符串替换方式更可靠
新增
- 手册文件夹重命名为英文:manual/,内部文件改为 manual.html、changelog.html、manual-dev.html、manual-dev.md,同步更新所有引用路径
userdata/.backup/v2_<时间戳>/ 并写入 v2_done 标记;
旧格式文件在内存内自动归一,保存后即转为新格式,原有数据无需手动处理。收款方:xxx),名称内嵌在程序里、随 EXE 分发;
更换收款码图片后截图不再包含收款方信息,由界面文字补齐。dev/qr/embed_qr.py 顶部 PAYEE 配置区维护,
重新生成脚本时自动烙入 rpa/qr_assets.py,留空则界面不显示该行。splitterMoved 处理器里无条件 setSizes,
Qt 重分配的微小抖动会再次触发信号,形成每 15ms 一圈的死循环——
持续占用 CPU、反复写窗口状态文件,且拖动被反复顶回
(表现为方案面板拖不窄、面板绘制相互压盖)。现在加再入保护、
尺寸无变化不写回,并在窗口窄于内容所需宽度时优先拉宽窗口。data.json 顺序表未立即登记
(要等一次「上移/下移」整体重写才出现)。现在保存即登记,
覆盖保存与改名不重复、不破坏已有顺序。name/category 未更新(新节点掉到「未分类」)。
现已修复,并同步保留原分类、对齐文件内容 name 字段,改名后立即刷新显示。name 与新文件名对齐;
动作改名后 data.json 顺序表同步原位换名。.categories.json:分类树残留已删除的旧名称、
重命名后的新名称不出现在原分类(方案面板删除/导入、节点面板删除/重命名等入口)。
现已把分类树同步下沉到存储层,全部入口自动覆盖;启动前残留的旧条目会自动清理。data.json
但面板刷新读取的还是旧位置(config.json),读写不同源导致移动看起来没生效。
现在读写统一走 data.json。nodes/.categories.json),
「未分类」视图看不到这些节点。现在创建时自动登记(复制 / 导入跟随来源分类)。data.json:顺序列表(node_order /
plan_order)中会残留已删除的名称,默认方案被删后残留指向失效。现在删除时同步清理,
动作删除同样覆盖。data.json 顺序列表原位换名,自定义排序不再丢失;
重命名默认方案时 default_plan 跟随新名,不再指向失效名称。v2.0),不再显示随构建变动的完整版本号;
完整版本号仍可在「关于」对话框中查看。config.json 的 layout 段只保留三项真设置(自动隐藏面板、紧凑布局、允许布局操作)。
面板折叠状态不再写入:开启"自动隐藏面板"时它由窗口宽度实时推算,关闭时同样保存在
config/window_state.ini,不再在入库的 config.json 里留一份会自己变的副本。config.json。此前窗口尺寸一变(含自动折叠触发)都会重写整个文件,
现在只有你真正切换了上述开关才会写入。layout.plan_collapsed / layout.node_collapsed 会在启动时自动清理,
避免旧值反向覆盖 window_state.ini 中的最新折叠状态。config/config.json:程序启动时若配置不存在(首启、被删除或损坏)会自动生成,
包含全部配置项与默认值;已存在的配置只补齐缺失键,不覆盖用户已有设置。打包时生成的种子配置同样包含完整配置项。config.json(*_col_widths)。config.json 的 *_col_widths_manual,改回 false 即恢复自动)。rpa/ui/colwidths.py)管理,五处表格行为一致;
同时修正隐藏列宽度被记为 0、取消隐藏后列看不见的问题,并放宽列宽上限
(列设置对话框 400→600px、动作与节点表格单列上限 300→600px)。config.json 里回写,配置只保存你真正改过的设置:
列宽在自动模式下只在首次使用时写入一次(之后每次打开都按内容重算,显示效果不受影响);
窗口大小与分隔条位置统一由 config/window_state.ini 保存,不再在
config.json 的 layout 段里留一份随窗口拖动就变的副本。rpa/ui/action_manager.py 中已无任何调用点的旧版动作管理对话框。
程序实际使用的是 rpa/ui/main_window.py 里的 ActionMgrDialog;
旧对话框仍按淘汰的规则写入 action_col_widths,删除后列宽体系只剩一套实现。
该文件现仅保留 ActionManager 的再导出,历史导入方式不受影响。layout 段,打包版兜底为"极简模式"
(只能折叠不能展开、缩放跳过布局调整、启动自动收窄窗口),而源码版兜底为"自定义模式",
造成两版行为不一致。layout 段(allow_layout_operations=true、auto_collapse=true 等),
并把缺失时的兜底统一为"自定义模式"——即使配置被删后重建,源码版与打包版行为一致,
首次运行即可自由拖动分隔条;"极简模式"仍可在菜单中随时切换。Releases\build_release.bat,双击一次同时产出
安装版 KeyMouseMate_installer_v<版本>.exe 与便携版
KeyMouseMate_portable_v<版本>.zip(zip 内含顶层
KeyMouseMate\ 目录,解压不会散架)。VERSION 文件,
程序标题显示、安装包命名、便携包命名三者永远同源。iscc_dirs.txt →
Program Files → 注册表 → PATH,绿色版 / 自定义路径的 Inno Setup 也能被找到。v2.0.26254.1146 而包名却是 1131)。build_release.bat 在部分情况下启动即闪退的问题。config/floatbar 中的图标被误删时,
自动从程序内置的出厂备份还原(只补缺失,不覆盖自定义图标)。2.0.<年><年内天>.<时分>,
取 rpa/ 源码最新修改时间生成,唯一维护点 rpa/version.py;
根目录 VERSION 文件记录当前实际版本。upload_to_github.bat 完成源码仓库提交推送
与发布主页同步(配置驱动,他人克隆后亦可直接使用)。config/window_state.ini,
程序运行不再写注册表(旧注册表数据首次启动自动迁移)。git clone 步骤。config/floatbar,可自行替换);
托盘与菜单新增「可视化」开关组,10 项可视化热键可自定义。config/,
使用数据统一到 userdata/(方案 / 节点 / 动作 / 日志 / 密码库),
旧版数据首次启动自动迁移,无需手工处理。