Releases: zJay26/DingLater
Release list
DingLater v2.5.0
DingLater v2.5.0
新增系统范围的窗口置顶功能,复用 DingLater 常驻进程,不需要额外运行 PowerToys 或其他工具。
窗口置顶
- 按
Ctrl + Win + T置顶当前应用窗口,再按一次取消;可同时置顶多个窗口,长按不会反复切换。 - 置顶窗口显示持续的系统高亮色描边,鼠标可穿透,不抢焦点、不播放音效。描边跟随移动、缩放、最小化、恢复及最大化,并在目标关闭或取消置顶后清理。
- 点击 DingLater 的“×”隐藏到托盘后,快捷键仍然有效,不依赖消息捕获是否暂停。
- 在“设置 → 窗口置顶”启用或关闭功能。关闭功能立即取消本次由 DingLater 设置的置顶;默认正常退出时也会取消,可选择退出后保留。
- 快捷键被其他程序占用或窗口权限不足时给出提示。若 PowerToys 已占用
Ctrl + Win + T,先释放它,再重新开启 DingLater 的置顶开关。
隐私与兼容性
- 使用 Windows 原生窗口 API 和进程外窗口事件,不增加常驻进程或定时扫描,不注入目标进程,不模拟输入,不读取或保存窗口标题、内容、截图。
- 消息捕获路径继续保持只读;置顶功能与钉钉数据库捕获分离。
- 普通权限运行时,部分管理员窗口无法操作;置顶不保证覆盖其他置顶窗口、独占全屏或自行管理层级的应用。强制结束进程或崩溃时,Windows 可能保留目标的置顶状态,可重启 DingLater 后按快捷键取消。
下载与更新
- 发布 Windows x64 自包含便携 ZIP 和
SHA256SUMS.txt,无需另装 .NET 或 Windows App Runtime。 - v2.4.0 用户可在“设置 → 软件更新”检查、下载并确认重启更新。更早版本请手动下载 ZIP,完整解压后运行。
- 保留原有本地消息与设置;仅新增窗口置顶及退出恢复选项。
验证
- Windows/Core Release 回归:99 项通过,1 项真实钉钉数据库探针按原有规则跳过。
- 新增 9 项测试,覆盖旧设置兼容、置顶切换、多窗口、描边空心区域与穿透样式、移动/缩放、最小化/恢复、窗口销毁、外部取消置顶、退出清理和快捷键冲突。
- 本机合成数据实例已现场验证描边、设置开关、隐藏到托盘后的跨进程置顶、最大化跟随和再次按键取消;现场自动化使用测试组合键,生产快捷键固定为
Ctrl + Win + T。 - 发布包执行锁文件恢复、格式检查、完整解压与逐文件校验、真实 WinUI 启动,以及隔离目录中的更新交接验证。
- 多显示器混合 DPI、虚拟桌面、管理员窗口及第三方特殊窗口未完成现场验收。详细范围见仓库的
docs/COMPATIBILITY.md。
DingLater v2.4.0
DingLater v2.4.0
Windows 版新增可选自动更新。更新检查、下载与重启分别由设置和用户选择控制,不强制升级。
软件更新
- 默认运行期间每 6 小时检查一次 GitHub 最新正式版本,可在“设置 → 软件更新”关闭。检查时间跨重启保留;离线或请求失败后按正常间隔重试,随时可以手动检查。
- 发现新版显示可关闭的应用内提示,可查看版本说明、下载或跳过此版本;手动检查可重新显示已跳过版本。
- 下载目录可通过系统文件夹选择器配置,默认
%USERPROFILE%\Downloads\DingLater。每次下载使用独立子目录,显示进度并支持取消。 - 下载后先校验 GitHub Release 的 SHA-256 摘要,再解压并逐文件校验,拒绝不完整、损坏、路径越界或重复路径的包。
- 下载完成后仍需点击并确认“重启并更新”。更新助手等原应用退出,备份旧版文件、应用新版并重新启动;文件替换失败时尝试回滚。下载、备份文件保留,便于恢复。
- 保留原程序目录、快捷方式、登录启动项,以及本地消息和设置。目录权限不足或文件被占用时显示错误,可重试或手动解压更新。
隐私与交付
- 仅更新客户端访问 GitHub 和其下载 CDN;不上传消息、钉钉账号、密钥或诊断,没有遥测与云同步。
- 自动检查只获取版本信息,不自动下载或重启,也不唤醒已退出的应用。
- 包含 Windows x64 便携 ZIP 与
SHA256SUMS.txt,无需安装 .NET 或 Windows App Runtime。 - 旧版本尚无更新入口,需要手动下载本次 ZIP,完整解压后运行;之后即可使用应用内更新。
验证
发布前执行 Windows/Core Release 回归、锁文件恢复与格式检查,验证 ZIP 完整解压、逐文件校验及真实 WinUI 窗口启动。另在两个隔离目录以模拟旧版清单验证更新助手握手、原进程退出、文件替换、旧版备份与新版重新启动。测试使用合成消息,不触碰正在运行的真实实例。
真实钉钉数据库探针默认跳过;双账号发送方“未读”、独立 Windows 用户隔离、实际断电恢复和不同机器上的权限/杀毒软件行为仍需环境验收。兼容性见 COMPATIBILITY.md。
DingLater v2.3.0
DingLater v2.3.0
这次更新集中改善 Windows 版的消息列表、提醒可靠性、数据一致性和便携包交付。
消息与提醒
- 刷新复用未变化的会话和消息对象,保持选择;并发刷新合并执行,减少重复读取和解密。
- 搜索复用会话缓存,输入延迟 180 毫秒后筛选;无结果时可一键清除搜索。
- “稍后提醒”按到期时间排序,会话列表显示下一次提醒时间;点击提醒自动清除阻碍定位的搜索条件。
- 所有提醒共用一个计时器,每分钟核对系统时间。系统睡眠或时钟调整后按实际时间检查,过期消息不再弹出提醒。
- 提醒必须严格早于消息清理时间;重复设置、取消和退出释放经过回归验证。
数据与后台稳定性
- 留存期设置、过期消息删除、失效稍后提醒释放在同一 SQLite 事务内提交,写入失败时整体回滚。
- 恢复捕获失败后回到暂停状态;取消批次不再被当作成功接收。
- 较旧的程序拒绝打开未来 schema,避免降低版本号;损坏数据库隔离文件使用唯一名称。
- 程序退出期间忽略迟到的 UI 刷新,减少后台任务访问已释放界面的风险。
下载与验证
- 发布包:
DingLater-2.3.0-win-x64-portable.zip,同时提供SHA256SUMS.txt。 - ZIP 内增加
package-files.json与Verify-Portable.ps1,可定位解压不完整或文件损坏。 - 发布流程实际解压 ZIP,逐文件验证长度和 SHA-256,再以隔离合成数据启动真实 WinUI 界面并检查退出。
- 校验通过后才替换
BuildOutput,构建失败保留上一版;新增 Windows CI 执行测试和格式检查。
下载后先退出旧版,将 ZIP 完整解压到新文件夹。消息继续使用当前 Windows 用户的 %LOCALAPPDATA%\DingLater 数据,无需搬移。
验证边界
发布前本机 Release 测试:79 项通过、1 项真实数据库探针跳过;NuGet 已知漏洞检查未发现受影响依赖。ZIP 的 575 个文件通过完整解压、逐文件校验和实际窗口启动检查。
自动化覆盖 Windows/Core 单元与集成回归、打包完整性和本机窗口启动。真实钉钉 V3 数据库探针默认跳过;双账号发送方“未读”、真实设备睡眠唤醒和独立 Windows 用户隔离仍需环境验收。当前钉钉格式兼容性见 COMPATIBILITY.md。
DingLater v2.2.0
DingLater v2.2.0
本版本集中改进 Windows 版的消息捕获效率、异常恢复和本地数据安全。此 Release 仅提供 Windows x64 便携包。
更新内容
- 只有检测到钉钉 V3 消息分表确实前进时才创建只读快照,并只查询进度发生变化的分表,减少空轮询和重复扫描。
- 加强捕获启动、停止和退出时的清理逻辑;部分来源启动失败时会回滚已启动来源,单个来源停止失败也不会阻断其余清理。
- 修复删除、批量处理、缩短留存期等操作中的提醒清理边界,降低残留提醒再次弹出的可能性。
- 加强本地主密钥和消息加密对象的生命周期管理;更新 SQLite 运行库并补充密文篡改、释放后误用等测试。
- 改进首次设置、留存期修改和重复启动时的错误恢复与提示,保存失败时会恢复界面状态。
- Windows portable 构建脚本支持显式选择项目固定的 .NET SDK 路径。
验证
- Release 测试:64 项通过,1 项需要真实钉钉 V3 数据的测试按设计跳过,0 项失败。
- Windows x64 自包含便携包完成 locked restore、Release 测试、publish、WinUI 资源检查和窗口启动冒烟检查。
- ZIP 文件与
SHA256SUMS.txt在上传前后分别核对。 - 本版本没有进行真实双账号的发送方未读状态验收,不把只读代码边界描述为端到端保证。
下载与校验
下载 DingLater-2.2.0-win-x64-portable.zip 并完整解压,然后双击 DingLater.exe。请不要只复制 EXE;程序需要同目录中的 Windows App Runtime 和资源文件。
可使用同一 Release 中的 SHA256SUMS.txt 校验 ZIP。程序仍未进行代码签名,因此 Windows 可能显示 SmartScreen 提示。
DingLater v2.1.2
DingLater v2.1.2
本版本改进桌面托盘的待处理提示、批量消息操作与稍后提醒展示,并固定本地测试产物位置。
更新内容
- 待处理消息到达后,托盘图标会在完全透明与完全不透明之间闪烁;数量角标更清晰。
- 鼠标悬停托盘图标时显示待处理总数和截断后的最新消息摘要,避免长消息占满提示框。
- 单击托盘图标即可打开 DingLater,不再要求双击。
- “待处理”和“稍后提醒”增加“全部标为已处理”;批量处理稍后提醒时会同步取消对应的 Windows 提醒。
- “已处理”增加带确认提示的“全部删除”。
- 每条稍后提醒消息都以醒目标签显示完整提醒日期和时间。
- 本地最新测试版固定输出到
BuildOutput\DingLater.exe,仓库根目录提供启动最新版本.cmd;构建临时目录在完成后自动清理。
验证
- Release 测试:59 项通过,1 项需要真实钉钉 V3 数据的测试按设计跳过。
- 自包含便携包与固定输出目录均完成窗口启动冒烟测试。
下载与校验
下载 DingLater-2.1.2-win-x64-portable.zip 并完整解压,然后双击 DingLater.exe。请不要只复制 EXE;程序需要同目录中的 Windows App Runtime 和资源文件。
可使用同一 Release 中的 SHA256SUMS.txt 校验 ZIP。程序仍未进行代码签名,因此 Windows 可能显示 SmartScreen 提示。
DingLater v2.1.1
DingLater v2.1.1
本版本修正窗口关闭与托盘运行逻辑。
更新内容
- 点击主窗口右上角“×”时仅隐藏软件界面,DingLater 继续在桌面托盘运行并捕获、提醒消息。
- 双击托盘图标或选择“打开 DingLater”可以重新显示主界面。
- 只有右键托盘图标并选择“退出 DingLater”才会清理资源并真正结束进程。
- 增加窗口隐藏与托盘退出生命周期回归测试。
下载与校验
下载 DingLater-2.1.1-win-x64-portable.zip 并完整解压,然后双击 DingLater.exe。请不要只复制 EXE;程序需要同目录中的 Windows App Runtime 和资源文件。
可使用同一 Release 中的 SHA256SUMS.txt 校验 ZIP。程序仍未进行代码签名,因此 Windows 可能显示 SmartScreen 提示。
DingLater v2.1.0
DingLater v2.1.0
本版本重点优化 Windows 图标和桌面托盘提醒体验。
更新内容
- 将应用与托盘图标恢复为紫色时钟方案,并提高小尺寸图标的画布占用率和辨识度。
- 待处理消息在托盘图标右上角显示数量角标,超过 99 条显示
99+。 - 有待处理消息时,托盘图标以更亮的紫色闪烁;遵循 Windows 的动画开关。
- 悬停托盘图标时显示最新待处理消息摘要,可沿用通知预览隐私设置隐藏正文。
- 修复右键托盘菜单中“打开 DingLater”“暂停捕获”和“退出 DingLater”不执行的问题。
- 为托盘数量、摘要文本和菜单命令路由增加回归测试。
下载与校验
下载 DingLater-2.1.0-win-x64-portable.zip 并完整解压,然后双击 DingLater.exe。请不要只复制 EXE;程序需要同目录中的 Windows App Runtime 和资源文件。
可使用同一 Release 中的 SHA256SUMS.txt 校验 ZIP。程序仍未进行代码签名,因此 Windows 可能显示 SmartScreen 提示。
兼容范围与隐私边界见仓库中的 docs/COMPATIBILITY.md 和 docs/PRIVACY.md。
DingLater v2.0.0
DingLater v2.0.0
DingLater 已迁移到 WinUI 3,并针对消息捕获、信息密度和日常处理流程进行了重构。
主要变化
- 修复钉钉 WAL 复用预分配尾部时个人消息和群聊消息无法继续捕获的问题。
- 群聊中的
@所有人现在与@我一样会进入待处理。 - 使用顶部 NavigationView,避免窄窗口侧栏的大面积空白与计数截断。
- 主界面改为会话列表与消息详情布局,并改善最小窗口、最大化和大字号下的适配。
- 导航调整为“待处理 / 稍后提醒 / 已处理”,捕获状态与暂停按钮直接显示在主界面。
- 已处理消息支持确认后永久删除。
- 重做设置页,并提供四档界面字号。
- 稍后提醒支持任意整数分钟、明早 9:00 和精确日期时间。
- 修复关闭窗口后仍残留后台进程的问题。
下载
下载 DingLater-2.0.0-win-x64-portable.zip,解压后运行 DingLater.exe。无需安装 Windows App Runtime。
SHA-256 请参见随 Release 提供的 SHA256SUMS.txt。
本次附件按要求直接重新打包,未对最终 ZIP 额外执行启动 smoke test。