﻿======== V4.7-1 监视文件夹（F7＝Pro 功能）从免费端移除 ========
— ① 程序集类型：MonitorPage=无 MonitorEntry=无 MonitorEngine=无 MonitorService=无
— ② 程序集里 Monitor* 类型：0 个
— ③ 导航顺序：print → history → settings → about（带图标 4/4）
— ④ 老 settings.json（含 MonitorEnabled/MonitorEntries）读取不崩=True；回写后文件含 Monitor 字段=False
— ⑤ 资源键残留：zh s.Monitor*=0 s.NavMonitor=0；en s.Monitor*=0 s.NavMonitor=0
======== V4.7-2 打印模板限 5 个 ========
— 已有模板数：5（上限 5）
— 判定：第 6 个新增=拦下；满 5 时同名覆盖=放行；4 个时新增=放行；超过 5 个的旧库 新增=拦下 覆盖=拦下(只读)；上限常量=5
— 套用：5 个既有模板走真实下拉选中，成功套用 5/5（拦的是新增，不是套用）
— 清理：样例模板已删净，剩余 V47 前缀模板 0 个
======== V4.7-3 历史显示限 200 条（无「无限制」档） ========
— ① 历史显示下拉（中文界面）：200 条 / 100 条 / 最近十天 / 不显示；「无限制」字样是否出现在任一项=False；资源键残留 zh=0 en=0 运行时解析=""
— ② 默认选中：200 条；SettingsService.HistoryLimit=R200；枚举成员=R200,R100,TenDays,Hidden
— ③ 老配置 HistoryLimit=unlimited 读回=R200 → 查库行数上限=200
======== V4.7 合规：PolyForm 随包 / Apache 移出 / 免费版口径描述 ========
— 许可证随包：LICENSE-PolyForm.md=在位 PolyForm Noncommercial License 1.0.0；Apache LICENSE 文本在发布目录=False
— NOTICE：长度=1157 字符；含第三方组件声明=True
— csproj Description：Windows 批量打印工具（免费版）——支持 PDF/Word/Excel/PPT/图片/文本批量打印；仅本机打印，不上传任何文档内容。
======== V4.7 版本内修整1：设置页含按钮的行一律按钮钉最右 ========
— 行 BtnOpenPrinterProps：按钮 [710.4 → 851.2] 行容器右缘 850.4 卡片右缘 868（按钮距卡片右 16.8）；同行 1 段文字，最右到 660
— 行 BtnReDetect：按钮 [769.6 → 851.2] 行容器右缘 851.2 卡片右缘 868（按钮距卡片右 16.8）；同行 1 段文字，最右到 769.6
— 行 BtnChangePrintoutDir：按钮 [780 → 851.2] 行容器右缘 851.2 卡片右缘 868（按钮距卡片右 16.8）；同行 2 段文字，最右到 768
— 行 BtnChangeConvertDir：按钮 [780 → 851.2] 行容器右缘 851.2 卡片右缘 868（按钮距卡片右 16.8）；同行 2 段文字，最右到 768
— 行 BtnChangeReportDir：按钮 [780 → 851.2] 行容器右缘 851.2 卡片右缘 868（按钮距卡片右 16.8）；同行 1 段文字，最右到 768
======== V4.7 版本内修整2：关于页「检查更新」（清单＝客户端契约 §2.5） ========
— ① 唯一基址常量=https://batchprint-api.xmmtr.workers.dev 清单地址=https://batchprint-api.xmmtr.workers.dev/updates/manifest.json 请求超时=8s
— ① 老 settings.json 写 ApiBase 后：Load 不崩、清单地址仍＝常量（https://batchprint-api.xmmtr.workers.dev/updates/manifest.json）；回写文件是否还带 ApiBase 字样＝False
— ② 版本矩阵（当前 4.8.0.0）："5.0.0.0"→更新 "4.8.0.0"→持平 "4.6.9.9"→更旧 "v5.1"→更新 "5.0-beta"→跳过 ""→跳过 "abc"→跳过 "4.7"→更旧
— ③ 下载白名单：[https://gitee.com/x/y/attach/1/a.zip]=True [https://oschina.gitee.com/a.zip]=True [https://batchprint-api.xmmtr.workers.dev/dl/a.zip]=True [https://evil.com/a.zip]=False [https://gitee.com.evil.com/a.zip]=False [ftp://gitee.com/a.zip]=False []=False
— ④ 解析：条目 4 条（含 inactive/脏数据）；挑中=5.0.0.0（劫持条目与空版本号条目被跳过）；只有 inactive→无(已是最新)；当前版本 9.0→无(已是最新)；空/坏 JSON→0/0 条不抛异常
— ⑤ 分支：有更新=Found 断网=Failed（原因 模拟断网） 空清单=UpToDate
— ⑤ 中文 文案：found="发现新版本 5.0.0.0（2026-09-26）⏎更新说明：V5.0 首个商用版⏎⏎是否打开下载页面？" latest="已是最新版本（当前版本 4.8.0.0）。" failed="检查更新失败：模拟断网（不影响打印，请检查网络后再点一次「检查更新」）"
— ⑤ 英文 文案：found="New version 5.0.0.0 (2026-09-26)⏎Release notes: V5.0 首个商用版⏎⏎Open the download page?" latest="You are on the latest version (4.8.0.0)." failed="Update check failed: 模拟断网 (printing is unaffected - check your network and press 'Check now' again)"
— ⑦ 生产清单实样：GET https://batchprint-api.xmmtr.workers.dev/updates/manifest.json → 200 正文 {"versions":[]} → 客户端解析 0 条、结果=UpToDate（清单为空时按契约§2.5 判"已是最新"，后台填条目后即转"发现新版本"）
— ⑥ 关于页：按钮="检查更新" 高=30.4 标题在位=True 按钮右缘 851.2 卡片右缘 868
