Releases: xiting910/MineClearance
Release list
v1.6.3 — MineClearance
🔧 MineClearance v1.6.3
Dependabot 配置精简与日志/异常处理修复: Dependabot NuGet 分组移除冗余 update-types 配置并放开大版本自动更新, 配置更简洁; 日志输出补充异常信息 (FileLoggerProvider 日志行末尾追加 exception.ToString()), 修复异常详情丢失; 未观察任务异常 Toast 提示调度到 UI 线程, 修复跨线程更新 UI 集合崩溃.
Changed
- 工程化: Dependabot NuGet 分组移除冗余 update-types 配置 (Avalonia / Microsoft.Extensions.* 分组显式列出的 major/minor/patch 与分组默认包含全部更新类型的行为等价, 删除后配置更简洁, 大版本更新保持放开)
- 工程化: Dependabot NuGet 分组精简与 major 更新放开 (Avalonia / Microsoft.Extensions.* 分组 update-types 增加 major, 允许大版本自动更新; 移除 xunit / test-sdk (coverlet.collector、Moq) / nuget-catchall 分组, 其余包不再合并更新)
Fixed
- Infrastructure 层: 日志输出补充异常信息 (FileLoggerProvider 日志行末尾追加 exception.ToString(), 异常为 null 时输出空字符串)
- UI 层: 未观察任务异常 Toast 提示调度到 UI 线程 (TaskScheduler.UnobservedTaskException 回调可能在线程池线程上触发, 直接调用 ToastViewModel.Show 会跨线程更新 UI 集合, 改为经 Dispatcher.UIThread.Post 调度到 UI 线程执行)
📝 此版本提交
- e0d6f92 chore(v1.6.3): 发布 1.6.3 版本
- 7484e06 fix(infrastructure): 日志输出补充异常信息
- a66bfe1 fix(ui): 未观察任务异常 Toast 调度到 UI 线程
- 974558a chore(deps): 移除 dependabot 分组冗余 update-types 配置
- 62fee1f chore(deps): 精简 dependabot NuGet 分组并放开 major 更新
- 3441124 Bump Downloader from 5.9.5 to 5.9.6 (#5)
- 9083ef6 Bump the avalonia group with 4 updates (#3)
下载
| 平台 | 文件 |
|---|---|
| 🪟 Windows x64 | MineClearance-win-x64.zip |
| 🐧 Linux x64 | MineClearance-linux-x64.zip |
| 🍎 macOS x64 | MineClearance-osx-x64.zip |
下载对应平台的 zip 包,解压后运行其中的可执行文件即可。
🔗 链接
Contributors
- @dependabot[bot]
- @xiting910
v1.6.2 — MineClearance
🔧 MineClearance v1.6.2
日志与异常处理修复, Toast 重构与工作流简化: 修复未处理异常发生在应用初始化创建目录之前时兜底日志静默丢失的问题 (HandleException 写入前创建应用数据根目录); 根治日志轮转空文件误判 (根因为写入端使用带 BOM 的 Encoding.UTF8, 全程无日志写入时退出 flush 仍会落盘 3 字节 UTF-8 BOM 占位文件, 产生无实际内容却有文件大小的日志文件; 写入端改用 new UTF8Encoding(false) 无 BOM 编码, 空日志文件恢复 0 字节, 轮转判断由 1.6.1 的读取首字节恢复为 Length > 0); Toast 倒计时计时改为 Stopwatch 高精度测量并简化 HasItems 通知; CodeQL 工作流 autobuild 配置简化.
Changed
- 工程化: CodeQL 工作流简化 (autobuild 模式由单独步骤改为初始化步骤内 build-mode: autobuild 配置, 移除冗余的 Autobuild 步骤)
- UI 层: Toast 倒计时计时重构 (计时由 DateTime.Now 差值改为 Stopwatch 高精度测量, 不受系统时钟调整影响; ToastItem.Tick 悬停暂停期间不再更新进度条; InvokeClick 改为先移除条目再执行点击回调; Toast 显示日志级别由 Information 降为 Debug)
- UI 层: Toast HasItems 属性改为可观察属性 (从计算属性改为 [ObservableProperty] 源生成, 集合变化时直接赋值触发通知, 简化绑定逻辑)
Fixed
- Infrastructure 层: 未处理异常兜底日志丢失修复 (HandleException 写入前创建应用数据根目录, 修复异常发生在应用初始化创建目录之前时兜底日志静默丢失的问题)
- Infrastructure 层: 无日志运行时生成 BOM 占位文件修复 (写入端由带 BOM 的 Encoding.UTF8 改为 new UTF8Encoding(false) 无 BOM 编码, 从未写入日志时文件保持 0 字节, 不再残留 3 字节 UTF-8 BOM 造成无实际内容却有文件大小的日志文件)
- UI 层: 日志轮转空文件判断恢复为长度判断 (写入端不再产生 BOM 占位文件后, 空日志文件恒为 0 字节, 由 1.6.1 的读取首字节判断恢复为 Length > 0, 无实际内容的文件不再被轮转)
📝 此版本提交
- 9372695 chore(v1.6.2): 发布 1.6.2 版本
- 0f356f4 fix(logging): 日志写入去除 BOM, 轮转空文件判断恢复为长度判断
- 840e69d docs(README): 修正测试单元数量为 388
- b15b936 refactor(ui): Toast HasItems 属性改为可观察属性
- f79609e fix(infrastructure): 未处理异常日志写入前确保数据根目录存在
- 3005a82 refactor(toast): 倒计时计时改用 Stopwatch 提高精度
- fb18782 ci(workflows): 简化 CodeQL autobuild 配置
下载
| 平台 | 文件 |
|---|---|
| 🪟 Windows x64 | MineClearance-win-x64.zip |
| 🐧 Linux x64 | MineClearance-linux-x64.zip |
| 🍎 macOS x64 | MineClearance-osx-x64.zip |
下载对应平台的 zip 包,解压后运行其中的可执行文件即可。
🔗 链接
Contributors
v1.6.1 — MineClearance
🔧 MineClearance v1.6.1
日志文件轮转空文件判断修复: 修复日志文件轮转时误将无实际内容但文件大小为 1KB 的游戏日志轮转的问题 (原逻辑使用 FileInfo.Length > 0 判断文件是否为空, 改为实际读取文件首字节判断, 确保无内容的文件不被轮转).
Fixed
- UI 层: 日志文件轮转空文件判断修复 (原逻辑使用 FileInfo.Length > 0 判断文件是否为空, 游戏日志无实际内容但文件大小为 1KB 时会被错误轮转; 改为实际读取文件首字节判断, 确保无内容的文件不被轮转)
📝 此版本提交
下载
| 平台 | 文件 |
|---|---|
| 🪟 Windows x64 | MineClearance-win-x64.zip |
| 🐧 Linux x64 | MineClearance-linux-x64.zip |
| 🍎 macOS x64 | MineClearance-osx-x64.zip |
下载对应平台的 zip 包,解压后运行其中的可执行文件即可。
🔗 链接
Contributors
v1.6.0 — MineClearance
🔧 MineClearance v1.6.0
棋盘配色主题化: 棋盘格子颜色全面主题化 (CellViewModel 配色从硬编码画刷改为主题资源字典动态读取, App.axaml Light/Dark 主题字典新增 22 组格子色板资源), 深色主题格子色板独立适配 (未翻开/已翻开/数字/旗/警告/雷各有专属深色配色), 索引叠加层文字颜色主题化 (GameView 前景改用 DynamicResource CellIndexBrush), 主题切换时实时刷新棋盘配色 (GameViewModel 订阅 ActualThemeVariantChanged 统一遍历格子刷新).
Changed
- 文档: README 全面重写
- 工程化: .gitattributes 精简 (移除标记文件与多数二进制规则, 保留 ico/png)
- 工程化: .gitignore 精简 (移除 IDE 与操作系统忽略规则, 构建产物规则不再递归)
- 工程化: 新增 .vscode/settings.json (dotnet.defaultSolution)
- UI 层: 棋盘格子颜色全面主题化 (CellViewModel 配色从硬编码画刷改为主题资源字典动态读取, App.axaml Light/Dark 主题字典新增 22 组格子色板资源)
- UI 层: 深色主题格子色板适配 (未翻开 #444A58, 已翻开/数字格与卡片背景 #232733 融入, 数字 1-8 换亮色系, 旗 #2F5D3A, 警告 #C05E22, 雷 #7A2E2E)
- UI 层: 索引叠加层文字颜色主题化 (GameView 前景由硬编码 #4B5563 改为 DynamicResource CellIndexBrush)
- UI 层: 主题切换实时刷新棋盘配色 (GameViewModel 订阅 ActualThemeVariantChanged, 统一遍历格子刷新)
📝 此版本提交
- 9be94c4 chore(v1.6.0): 发布 1.6.0 版本
- edf1122 feat(ui): 棋盘格子颜色主题化, 支持深浅主题实时切换
- 6c615ba docs(README): 调整徽章顺序
- af4d245 chore(repo): 重写 README 并同步工程配置
- 221d5c2 docs(changelog): 修复 1.5.3 版本日期错误 (2026-08-29 → 2026-08-28)
下载
| 平台 | 文件 |
|---|---|
| 🪟 Windows x64 | MineClearance-win-x64.zip |
| 🐧 Linux x64 | MineClearance-linux-x64.zip |
| 🍎 macOS x64 | MineClearance-osx-x64.zip |
下载对应平台的 zip 包,解压后运行其中的可执行文件即可。
🔗 链接
Contributors
v1.5.4 — MineClearance
🔧 MineClearance v1.5.4
历史记录统计修正与视图背景透明化: 修复历史记录统计平均完成度仅计算失败局导致数据失真的问题 (改为计算全部局); 视图背景全面透明化 (历史记录表格列头、主视图参数卡片容器、游戏视图顶部信息栏), 消除白色色块与页面背景的割裂感; CI 工作流优化 (dotnet test 跳过冗余构建、Dependabot 合并简化) 与发布脚本加固 (构建测试前置验证); .editorconfig 全面重构 (补充详细中文注释、按功能分类整理、补充 tab_width 等缺失配置); .gitattributes 排除脚本文件的 linguist 语言检测.
Fixed
- UI 层: 历史记录统计平均完成度修正 (从仅计算失败局完成度改为计算全部局完成度)
Changed
- 工程化: .gitattributes 排除脚本文件类型检测 (bat/sh 文件添加 linguist-detectable=false, 避免 GitHub 统计语言占比时被脚本文件干扰)
- 工程化: .editorconfig 全面重构 (补充详细中文注释、按功能分类整理为十五个章节、补充 tab_width / 多行空行 / CA 诊断规则等缺失配置, 移除 VB.NET 独立配置段)
- 工程化: CI 工作流
dotnet test添加--no-build跳过冗余构建步骤 (CI 已在前置步骤完成构建) - 工程化: Dependabot 自动合并工作流移除分支更新步骤 (简化工作流, 依赖 GitHub 原生合并策略)
- 工程化: TagPush.bat 发布前新增构建与测试验证步骤 (创建 tag 前执行
dotnet build+dotnet test, 构建或测试失败时中止发布) - UI 层: 视图背景透明化 (历史记录表格列头、主视图参数卡片容器、游戏视图顶部信息栏, 背景由 CardBackgroundBrush 白色改为 Transparent, 悬停/聚焦/禁用等状态同样透明, 消除白色色块与页面背景的割裂感)
📝 此版本提交
- 65a1d7b chore(v1.5.4): 发布 1.5.4 版本
- d1054ad style(ui): 视图背景透明化, 消除白色色块与页面背景的割裂感
- c24bacc fix(ui): 历史记录统计平均完成度修正为包含全部局
- 6dfb291 chore(ci): 优化 CI 工作流并为发布脚本添加构建测试验证
- 33fabe4 refactor(config): 重构.editorconfig 配置
- 4edab24 chore(gitattributes): 排除脚本文件类型检测
下载
| 平台 | 文件 |
|---|---|
| 🪟 Windows x64 | MineClearance-win-x64.zip |
| 🐧 Linux x64 | MineClearance-linux-x64.zip |
| 🍎 macOS x64 | MineClearance-osx-x64.zip |
下载对应平台的 zip 包,解压后运行其中的可执行文件即可。
🔗 链接
Contributors
v1.5.3 — MineClearance
🔧 MineClearance v1.5.3
构建属性完善: Directory.Build.props 新增 PackageLicenseExpression (MIT) 与 Copyright 全局构建属性, 为 NuGet 包发布和程序集元数据提供标准化的许可证与版权信息.
Changed
- 工程化: Directory.Build.props 新增 PackageLicenseExpression 与 Copyright 全局构建属性 (许可证表达式与版权声明)
📝 此版本提交
- b4e08bc chore(v1.5.3): 发布 1.5.3 版本
下载
| 平台 | 文件 |
|---|---|
| 🪟 Windows x64 | MineClearance-win-x64.zip |
| 🐧 Linux x64 | MineClearance-linux-x64.zip |
| 🍎 macOS x64 | MineClearance-osx-x64.zip |
下载对应平台的 zip 包,解压后运行其中的可执行文件即可。
🔗 链接
Contributors
v1.5.2 — MineClearance
🔧 MineClearance v1.5.2
应用图标现代化与窗口布局修复: 应用图标从通用符号升级为地雷造型, 背景由纯色平涂改为靛蓝对角渐变 + 球面径向渐变 + 柔和投影, 整体风格更现代精致, 16/24px 小尺寸手工逐像素绘制保证清晰辨识; 修复窗口最大化时内容区与屏幕左边缘之间的缝隙问题; 移除窗口位置钳制逻辑, 窗口位置交由系统管理, 拖动行为与标准 Windows 窗口一致, 最小窗口尺寸仍按当前屏幕工作区钳制上限.
Changed
- UI 层: 应用图标现代化 (替换 Assets/logo.ico, 地雷造型 + 靛蓝渐变背景 + 球面高光投影, 9 个尺寸 16~256px, 小尺寸手工像素画优化)
Fixed
- UI 层: 窗口最大化时左侧缝隙修复 (移除最大化瞬间将窗口外框从系统位置 (-8,-8) 拉回工作区原点 (0,0) 的位置钳制, 系统最大化布局不再被破坏, 内容区可完整填满工作区)
Removed
- UI 层: 窗口位置钳制移除 (删除 AdjustPositionToWorkingArea / OnPositionChanged 事件处理与 _isAdjustingPosition 递归防护, 以及 WindowClampRightMargin / WindowClampBottomMargin 钳制边距常量, 窗口位置交由系统管理; 手动拖动窗口允许超出屏幕, 最小尺寸仍按工作区钳制上限)
📝 此版本提交
下载
| 平台 | 文件 |
|---|---|
| 🪟 Windows x64 | MineClearance-win-x64.zip |
| 🐧 Linux x64 | MineClearance-linux-x64.zip |
| 🍎 macOS x64 | MineClearance-osx-x64.zip |
下载对应平台的 zip 包,解压后运行其中的可执行文件即可。
🔗 链接
Contributors
v1.5.1 — MineClearance
🔧 MineClearance v1.5.1
更新服务状态守卫原子化: 新增 AtomicEnum 枚举原子操作封装结构体, UpdateService 检查/下载入口的状态守卫由"读取-判断-写入"改为自旋谓词条件交换原子置位, 消除并发调用时的竞态窗口; 下载入口根据更新包完整性原子置为下载中或下载完成状态.
Added
- Infrastructure 层: 新增 AtomicEnum 原子枚举封装结构体 (Value 原子读取 / Set 原子写入返回是否变更 / SpinPredicateAndSet 自旋谓词条件交换, 固定值与工厂生成值两个重载)
Changed
- Infrastructure 层: UpdateService 状态守卫原子化 (CheckNewestAsync / DownloadAsync 入口的读取-判断-写入改为 SpinPredicateAndSet 原子条件交换, 消除并发检查/下载请求通过守卫的竞态窗口; 下载入口按更新包完整性由工厂生成下载中或下载完成状态, 下载完成分支统一清空异常; State 属性读写改用 AtomicEnum 封装, 状态通知语义不变)
📝 此版本提交
下载
| 平台 | 文件 |
|---|---|
| 🪟 Windows x64 | MineClearance-win-x64.zip |
| 🐧 Linux x64 | MineClearance-linux-x64.zip |
| 🍎 macOS x64 | MineClearance-osx-x64.zip |
下载对应平台的 zip 包,解压后运行其中的可执行文件即可。
🔗 链接
Contributors
v1.5.0 — MineClearance
🔧 MineClearance v1.5.0
窗口失焦/最小化自动暂停游戏: 游戏进行中窗口最小化或失去焦点时自动暂停游戏, 避免玩家离开时游戏继续计时.
Added
- UI 层: 窗口最小化时自动暂停游戏 (OnPropertyChanged 监听 WindowState 变化, 最小化时调用 PauseIfPerformable)
- UI 层: 窗口失去焦点时自动暂停游戏 (OnDeactivated 事件处理, 失焦时调用 PauseIfPerformable)
Changed
- Core 层: MineSolver 搜索逻辑重构 (TrySafeOpen 内部搜索逻辑提取为 SearchState 内部类, 封装赋值状态/约束计数/搜索节点计数等中间变量与回溯逻辑; CollectConstraints 收集数字格约束与前沿格, CollectFreeCells 收集自由格, BuildSolverIndex 构建变量索引与约束邻接结构; CanBeMine 提取为独立私有静态方法)
- UI 层: 退出请求处理简化 (移除 OnExitRequested 中间方法, ExitRequested 事件直接订阅 Close; ShellWindow 方法按功能重排)
📝 此版本提交
- 610c810 chore(v1.5.0): 发布 1.5.0 版本
- 9a8039c feat(ui): 窗口失焦/最小化自动暂停游戏
- 53b0018 refactor(core): 重构 MineSolver 搜索逻辑, 提取 SearchState 类
- 26ec2d3 docs(changelog): 修复 1.2.2 摘要多余空格
下载
| 平台 | 文件 |
|---|---|
| 🪟 Windows x64 | MineClearance-win-x64.zip |
| 🐧 Linux x64 | MineClearance-linux-x64.zip |
| 🍎 macOS x64 | MineClearance-osx-x64.zip |
下载对应平台的 zip 包,解压后运行其中的可执行文件即可。
🔗 链接
Contributors
v1.4.0 — MineClearance
🔧 MineClearance v1.4.0
📝 此版本提交
下载
| 平台 | 文件 |
|---|---|
| 🪟 Windows x64 | MineClearance-win-x64.zip |
| 🐧 Linux x64 | MineClearance-linux-x64.zip |
| 🍎 macOS x64 | MineClearance-osx-x64.zip |
下载对应平台的 zip 包,解压后运行其中的可执行文件即可。