Skip to content

Give me a break 0.1.2

Latest

Choose a tag to compare

@github-actions github-actions released this 03 Jul 17:57
· 2 commits to master since this release
1a2b371

v0.1.2 — 2026-07-04(GA · UI/UX 深度优化 · 菜单分组 / 运动类型注册表 / 跳过残留修复)

继 v0.1.1 后的体验打磨版本:状态栏菜单重排、运动类型可个性化持久、运动补录时间自动贴合休息区间,并修复一处「跳过看似复用上次记录」的 SwiftUI 状态残留 bug。沿「最小干预、循证工程」原则,无新依赖、零回归(83 单测全绿、复制 / 导出 Markdown 与 v0.1.1 逐字节一致)。

核心改进

  • 状态栏菜单:文案统一 2~4 字 + 按动作分组。过长文案精简(补录工作日志补录工作补录运动记录补录运动),全菜单分 5 段(分隔线划分):立即休息查看(工作日志·综合报告)┃ 录入(补录工作·补录运动)┃ 偏好(设置·开机自启)┃ 退出。扫读更快、语义边界清晰。
  • 运动类型注册表(可持久增删 + 自动记住)。运动类型由硬编码升级为配置注册表——在设置「运动记录」页集中增删;录入时经「其他…」临时输入的自定义类型保存即自动记住(去重、保序),下次直接挑选,无需重输。
  • 运动补录时间自动定位到休息区间。「补录运动」默认时段由「上一条记录的结束时刻」改为 [现在 − 休息时长, 现在]——贴合「补刚才那段休息做的运动」的真实语义,不再停留在上次记录。
  • 运动提示窗超时可配。新增 exercisePromptTimeoutSeconds(默认 180s,可设「永久等待」),与工作日志小结窗对称;原硬编码 180s 兜底保留为默认值。

Bug 修复

  • 修复「跳过 / 重开窗复用上次输入」:四个提示 / 补录窗 + 报告 / 设置窗控制器在稳定 NSHostingController 上反复替换 rootView,致 SwiftUI @State 跨弹窗残留——「输入文字 → 跳过」后下次弹窗文字仍在(视觉 = 复用,非数据复用,故持久层无可疑写入)。改为每次重建 hosting 控制器,@State 归零,跳过真正「忽略」。已记入 issue #9

工程

  • 配置 schema 6→7:exerciseTypes(默认 ["胯下击掌","提膝击掌","深蹲","俯卧撑"])/ exercisePromptTimeoutSeconds(默认 180s),容错解码平滑迁移(缺字段补默认、显式空数组尊重)。
  • 抽纯函数 exerciseBackfillDefaultRange[now − restDuration, now],负值裁剪)与 appendedExerciseTypes(去重 / 保序 / 去空白,无新增返回 nil 跳过写盘);落库侧据此「写 config + 热更新引擎」。
  • 单元测试 77→83(+6:v6→v7 迁移 / exerciseTypes 往返 / 补录默认时段 / 类型追加纯函数),全绿 < 1s。

说明

  • macOS 与 Windows 产物均未做代码签名 / 公证(与 v0.1.0 / v0.1.1 一致),首次启动需手动放行(详见 README);代码签名 / 公证将在后续版本补齐。

macOS

下载 give-me-a-break-0.1.2-macos.zip。解压后将 GiveMeABreak.app 拖入 /Applications;首次启动需在「系统设置 → 隐私与安全性」授权辅助功能与媒体控制权限。

⚠️ 此版本为 ad-hoc 签名(未签名/未公证)。首次打开会被 Gatekeeper 拦截,请执行 xattr -dr com.apple.quarantine /Applications/GiveMeABreak.app 放行(macOS 15.1 Sequoia 起「右键→打开」已失效),仅供内测。

Windows

下载 give-me-a-break-0.1.2-win64.zip。解压后运行 GiveMeABreakShell.exe。内置 .NET 8 运行时,无需额外安装任何依赖

⚠️ 此 Windows 版本未签名。首次运行会被 SmartScreen 拦截,请点击「更多信息 → 仍要运行」。GiveMeABreakShell.exe 可能被杀软(Defender / 360 / 火绒)误报(WH_KEYBOARD_LL 键盘钩子 + SendInput 媒体键触发),需手动加入信任。代码签名将在后续版本提供。