100 Commits
Author SHA1 Message Date
ysicingandClaude 06d6cfef8d docs: 重写四语言 README 的功能介绍与隐私说明
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-04 21:52:14 +08:00
ysicingandClaude 8244dd15c1 fix: 自带刷新的弹窗不提高采样频率,过期风扇数据不显示启动中
- AI 用量、显示器弹窗及仅含这两项的合并面板沿用后台采样间隔
- 风扇读取失败沿用旧数据时清除 isStarting,避免“启动中”超出 10 秒窗口

Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-04 21:52:14 +08:00
ysicingandClaude 8919dabb6c fix(fan): mode 或目标转速读取失败时沿用起步窗口
Co-Authored-By: Claude <noreply@anthropic.com>
2026-10-04 21:52:14 +08:00
ysicing 6782efa805 fix: 处理 review 反馈并消除取消测试的调度抖动
- 风扇曾报告状态键时,偶发读取失败沿用原起步窗口
- 显示器亮度百分比使用 locale 百分比格式
- 显示器行按连接身份区分,换屏后丢弃旧拖动草稿
- 取消测试在采样线程内记录返回时刻,排除 await 恢复延迟
2026-10-04 21:52:14 +08:00
ysicing a7b894f386 fix(display): 上次超时的显示器排到最后读取
超时的内核调用返回前占着唯一执行槽,固定顺序读取时排在后面的显示器只会持续得到 busy。上一轮超时的显示器改为最后读取,仍每轮重试。
2026-10-04 21:52:14 +08:00
ysicing dc03cb3b0e fix(display): 多屏且无法读取 EDID 时拒绝 DDC 服务
读不到 proxy 的 EDID 时无法确认其归属,仅在只有一台外接屏时接受,多屏时拒绝,避免亮度、音量写到其他显示器。
2026-10-04 21:52:14 +08:00
ysicing 8ddbead9a8 fix(test): 消除显示器测试的轮询时序依赖 2026-10-04 21:52:14 +08:00
ysicing c66ebe94f8 fix(cpu): 热压力改为异常时提示并精简测试
- 正常热状态不再单独占一行,偏高及以上时在温度旁显示警示图标,无温度传感器时同样提示
- 正常状态配色与温度一致,补充弹窗高度在各热状态下保持稳定的测试
- 移除重复的核心分工测试和必然通过的热状态采样测试
2026-10-04 21:52:14 +08:00
ysicing 1bd75ba0db fix(display): 缓存 DDC 服务匹配并隔离逐屏超时
- 按连接缓存 IORegistry 匹配结果,屏幕配置变化、唤醒和手动重新检测时清空,轮询不再每 5 秒全量遍历注册表
- DCPAVServiceProxy 按遍历顺序归属后,再用服务自身 EDID 与 CG 显示器的厂商、型号、序列号比对,排除其他显示器的服务
- 每台显示器读取使用独立取消令牌,一台超时不再导致后续显示器跳过
2026-10-04 21:52:14 +08:00
ysicing 3c30a52077 fix(cpu): 完善热压力显示并修正核心分组 2026-10-04 21:52:14 +08:00
ysicing d279f5083f fix(fan): 仅在无风扇转动时汇总显示启动中
多风扇机型上任一风扇起步会隐藏其他风扇的实际转速,改为没有风扇在转且存在起步窗口时才显示启动中。
2026-10-04 21:52:14 +08:00
ysicing 9707abba1d feat(display): 添加显示器信息与 DDC 控制 2026-10-04 21:52:14 +08:00
ysicing c21a3cbaa1 chore(dev): 添加 Graft 的 Claude Code 与 MCP 配置 2026-10-04 21:52:14 +08:00
ysicing 9d4a97b960 fix(menubar): 同步总览网络归属地显示设置 2026-10-04 21:52:14 +08:00
ysicing e05f2ad9f5 feat(menubar): 添加额度进度条并精简总览底栏 2026-10-04 21:52:14 +08:00
ysicing ca0666fc7c feat(menubar): 优化紧凑总览与原地展开交互 2026-10-04 21:52:14 +08:00
ysicing 0696187bb0 fix(menubar): 让蓝牙电量遵循文字显示样式 2026-10-04 21:52:14 +08:00
ysicing cbd44993ec feat(menubar): 新增单图标模式并优化状态总览 2026-10-04 21:52:14 +08:00
ysicing 54ae9f8c88 chore(release): 发布 0.14.5 2026-10-03 22:01:49 +08:00
ysicing 16aa370de2 fix(ai-usage): 修正紧凑模式回退与坐标轴索引 2026-10-03 21:51:46 +08:00
ysicing 12e8b4d934 feat(ai-usage): 完善套餐信息与菜单栏用量展示 2026-10-03 21:43:43 +08:00
ysicing 0d8f68372d feat(ai-usage): 按时间范围展示小时与每日用量 2026-10-03 20:24:19 +08:00
ysicing e33fa55154 feat(ai-usage): 添加显示偏好与费用估算 2026-10-03 20:24:09 +08:00
ysicing 7b789b1ec2 fix(ui): 优化公共控件反馈与文字可读性 2026-10-02 21:24:11 +08:00
ysicing 04a7909dbf fix(update): 迁移多应用接口并统一新域名 2026-10-02 09:19:43 +08:00
ysicing eac8a3a698 fix(i18n): 补齐累计译文并适配长文案布局 2026-10-02 08:43:08 +08:00
ysicing e5bc6ca6bd chore(release): 发布 0.14.4 2026-10-01 18:21:33 +08:00
ysicing abd001b7f5 chore(repo): 清理旧官网域名引用 2026-10-01 18:12:39 +08:00
ysicing 5d047d1c69 chore(snapshot): 更新模拟升级数据和双语摘要 2026-10-01 18:12:39 +08:00
ysicing beed5296e4 chore(repo): 移除废弃 GeoIP 和官网部署脚本 2026-10-01 18:12:39 +08:00
ysicing 9db2b7e789 fix(menubar): 修复弹窗偶发无法显示 2026-10-01 17:34:27 +08:00
ysicing c5ac1630e9 chore(release): 发布 0.14.3 2026-10-01 11:27:26 +08:00
ysicing 58544ecc0d fix(review): 收敛进程分组键并补强日历测量测试
- 新增 ProcessUsage.rowGroupID,进程表与磁盘排行共用同一分组标识
- 弹窗额度读数只读取 AI 项目
- 合并预览栅格化的两处降级分支
- 日历测量测试改为方向性断言,去掉固定等待
2026-10-01 11:18:40 +08:00
ysicing 87079eddb2 perf(cpu): 减少菜单栏读取和磁盘排行重复计算 2026-10-01 11:18:40 +08:00
ysicing a068fb3e38 fix(calendar): 补齐弹窗挂载前的内容测量 2026-10-01 11:18:40 +08:00
ysicing e7040dd04b fix(menubar): 修正预览位图缩放 2026-10-01 11:18:40 +08:00
ysicing 9356f86e5d test(rest): 固定墙上时间避免午夜前后失败
按自然日统计会用真实时刻反推专注段完成时间,测试只伪造了单调时钟,
0:00 至约 1:55 之间运行时,段落会被算到昨天而失败。注入随时钟前进的正午时间。
2026-10-01 11:18:40 +08:00
ysicing 2c0905ece8 perf(menubar): 设置页预览只栅格化一次
预览图原为绘制回调型 NSImage,SwiftUI 每次布局或重绘都会重跑文字排版。
改为渲染一次位图后复用;设置页停在“菜单栏”时,同环境实测平均 CPU 约 2.73% 降至 2.16%。
2026-10-01 11:18:40 +08:00
ysicing dacc9cbbaa fix(calendar): 老用户沿用旧版默认值并区分小组件节假日提示
- 已有安装缺少日历选项时沿用旧版默认与周一起始,不按地区重新初始化
- “明天上班吗”区分未启用节假日与安排尚未公布,恢复“暂无法判断”译文
- 截图固定中国大陆默认值与周起始日,移除默认参数与无调用方的 defaults
2026-09-30 23:50:16 +08:00
ysicing c0976ef649 fix(calendar): 联动农历设置并优化菜单栏日期字体 2026-09-30 23:50:16 +08:00
ysicing 0b63a4ed04 refactor(calendar): 固定显示星期与黄历并简化设置 2026-09-30 23:50:16 +08:00
ysicing 01bf5c77b2 fix(calendar): 限制假期展示年份并关联倒计时设置 2026-09-30 23:50:16 +08:00
ysicing 1e0ff1236e refactor(calendar): 合并节气与时令设置 2026-09-30 23:50:16 +08:00
ysicing 3aae19a4c6 refactor(calendar): 移除月历干支显示与开关 2026-09-30 23:50:16 +08:00
ysicing 222b2baa89 fix(calendar): 保留农历选择并完善周起始日设置 2026-09-30 23:50:16 +08:00
ysicing 678303187d feat(calendar): 按语言与地区调整日历显示和默认选项 2026-09-30 23:50:16 +08:00
ysicing e8b151d205 chore(release): 发布 0.14.2 2026-09-30 17:26:37 +08:00
ysicingandClaude Opus 5.5 f1dd8cfacf fix: 收尾 PR 审查遗留的更新、卸载与签名问题
- 跳过已撤回的版本时不再显示"有更新";安装前发现更新源换了版本时给出明确提示(补齐 7 种语言)
- 补充双区域回退与失败重排的调度测试
- 回收结果按标准化路径比对,避免路径写法不同误报本体未移动
- 抽出 scan 统一后台遍历与取消,loadApps 嵌套降到 3 层
- 自我保护测试只校验错误语义,不再比较两次翻译
- sign_sparkle.sh 在证书不在钥匙串有效列表时提前报错,避免子组件漏签

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 16:59:02 +08:00
ysicing 7e0a22e132 refactor(ui): 优化弹窗标题图标与间距 2026-09-30 16:37:46 +08:00
ysicing b04282a93f chore(release): 发布 0.14.1 2026-09-30 15:39:45 +08:00
ysicing f533f29071 test(network): 修正取消测试时限并避免忙等 2026-09-30 15:30:38 +08:00
ysicingandClaude Opus 5.5 1623effd61 fix(release): 发布后逐区域核验 Sparkle 更新源并覆盖跳转策略
- 服务端保留探测标识(64 个 0):照常验签返回清单但不计入统计
- publish_api.py 新增 --verify-sparkle,JSON 发布后逐区域取回 XML 与本地签名文件逐字节比对,publish_release.sh 自动执行
- Cache-Control 探测按指令 token 判断,兼容代理合并的缓存头
- 抽出 feedRedirectPolicy 供测试复用,覆盖 HTTPS 跳转、HTTP 降级、跳转过多、404、传输错误
- 新增测试校验服务端公钥与 Info.plist、project.yml 的 SUPublicEDKey 一致

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 15:20:08 +08:00
ysicingandClaude Opus 5.5 3dd5aa3e6c fix(uninstaller,updates): 列表发布即结束扫描态并保留后台已发现的新版
- 列表发布后立即结束"正在扫描应用",计量在后台继续;新增 reloadApps 供显式刷新中断计量重新列举,已算出的大小保留
- 回收期间禁止勾选残留项,界面复选框同步禁用
- 后台检查失败时若已发现新版则保持"有更新",不再退回空闲

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 15:20:08 +08:00
ysicingandClaude Opus 5.5 036a4a6598 refactor(uninstaller): 移除无调用方的应用列表接口并放宽取消测试
- 删除吞错的 installedApps(home:excluding:),统一使用可取消的 scanInstalledApps
- 取消测试改为按完整扫描检查点数在中途取消,不再绑定具体检查次数

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 15:20:08 +08:00
ysicing bc2bfe8f5c fix: 修复应用扫描取消并校验 Sparkle 更新源 2026-09-30 15:20:08 +08:00
ysicing 1c1e94a15f feat(updates): 接入 Sparkle 并支持双语发布说明 2026-09-30 15:20:08 +08:00
ysicing 8b13fd44eb test(uninstaller): 修复本地化断言并记录测试隔离约束 2026-09-30 15:20:08 +08:00
ysicing 7e2024eedf fix(lifecycle): 修复更新取消与卸载、查询生命周期 2026-09-30 15:20:08 +08:00
ysicing 3196ebef83 chore(release): 发布 0.14.0 2026-09-29 23:56:06 +08:00
ysicing fda9179a58 refactor(uninstaller): 优化卸载确认弹窗布局与文案 2026-09-29 23:29:58 +08:00
ysicing f559af9d1d fix(uninstaller): 修复应用退出后运行状态未刷新 2026-09-29 23:08:40 +08:00
ysicing 578c7c7b64 refactor(ai-usage): 简化模块名称为 AI 用量 2026-09-29 22:32:10 +08:00
ysicing e19ea53771 feat(processes): 改为可选模块并支持活动监视器回退 2026-09-29 22:13:53 +08:00
ysicing dd099950b1 feat(menubar): 支持显示 IP 归属地国旗和文字 2026-09-29 21:12:47 +08:00
ysicing 0387b0704d fix(updates): 修复安装更新后无法自动启动 2026-09-29 20:39:02 +08:00
ysicing 588af8f7f7 chore(release): 发布 0.13.1 2026-09-29 19:47:15 +08:00
ysicing c48c50fca3 feat(update): 新增版本更新系统通知 2026-09-29 19:38:20 +08:00
ysicing 3e4448e3e5 perf(menubar): 减少菜单栏重绘与隐藏预览刷新 2026-09-29 19:24:11 +08:00
ysicing f9f029b0e3 fix: 按硬件能力显示风扇入口 2026-09-29 17:49:52 +08:00
ysicing 1a222519e5 perf: 优化用量扫描与弹窗布局 2026-09-29 16:33:03 +08:00
ysicing 4f04d42d55 feat(ui): 添加 GitHub 和赞助入口 2026-09-29 14:59:56 +08:00
ysicing fd6244295f fix(calendar): 优化月历布局并修复返回日期状态 2026-09-29 13:28:12 +08:00
ysicing fd465466d8 fix(calendar): 降低日历资源占用并修复夏令时漏标 2026-09-29 13:11:50 +08:00
ysicing 28d8c12830 chore(release): 发布 0.13.0 2026-09-28 23:28:25 +08:00
ysicing c58590fb05 fix(calendar): 将单日日程移到黄历下方 2026-09-28 23:20:30 +08:00
ysicing f6d42e3448 fix(cleaner): 取消时安全结束管道读取 2026-09-28 23:20:25 +08:00
ysicing cb758c134c fix(calendar): 修复日程刷新并优化假期计算 2026-09-28 22:54:18 +08:00
ysicing ffb2bba651 fix(process): 避免子进程退出时无限等待 2026-09-28 22:54:08 +08:00
ysicing 2ef08cd2e6 docs(license): 清理未使用的第三方许可文本 2026-09-28 22:39:20 +08:00
ysicing 8ee7061c06 feat(calendar): 新增全局快捷键并适配弹窗尺寸 2026-09-28 22:16:38 +08:00
ysicing 0a26452d7e feat(calendar): 完善日历显示与日程提醒集成 2026-09-28 20:47:54 +08:00
ysicing ef2a8050ee feat(updates): 优化安装标识去重并支持复制 2026-09-28 17:18:12 +08:00
ysicing d1e73940c9 chore(release): 发布 0.12.1 2026-09-28 15:40:50 +08:00
ysicing d93eec1bea docs(history): 清理屏幕时间遗留说明 2026-09-28 15:29:37 +08:00
ysicing 3beb670849 chore(history): 移除屏幕使用时间统计 2026-09-28 15:11:14 +08:00
ysicing 9d68f2ba37 chore(release): 发布 0.12.0 2026-09-28 14:03:52 +08:00
ysicing 6d1561c6bf feat(cleaner): 将清理功能设为可选并校正确认提示 2026-09-28 13:42:21 +08:00
ysicing b618a06d2b feat(cleaner): 优化清理进度与停止反馈 2026-09-28 13:02:49 +08:00
ysicing c8937b77c3 feat(cleaner): 显示清理进度并修复取消入口 2026-09-28 11:18:51 +08:00
ysicing fae841dae5 fix(bluetooth): 排除内置电池电源项 2026-09-28 11:09:22 +08:00
ysicing f5ba9f88be fix(cleaner): 修复 Homebrew 清理执行与统计 2026-09-28 10:44:44 +08:00
ysicing a8e1170aac feat(cleaner): 改用 Homebrew 原生命令预览与清理 2026-09-28 09:29:57 +08:00
ysicing 147f94ca70 feat(cleaner): 新增项目产物清理与扫描目录管理 2026-09-28 02:55:16 +08:00
ysicing 7e20b042f9 docs(skill): 新增 XStats 本地预览流程 2026-09-27 22:10:55 +08:00
ysicing f1e7de9b0e feat(cleaner): 新增 Homebrew 下载缓存清理 2026-09-27 22:10:45 +08:00
ysicing ce18018f27 docs(readme): 增加 Homebrew 安装步骤 2026-09-27 21:21:48 +08:00
ysicing 2386791112 docs(skill): 调整发布时的 CI 状态检查 2026-09-27 21:21:37 +08:00
ysicing 36410810f3 chore(release): 发布 0.11.0 2026-09-27 20:53:44 +08:00
ysicing e4e7c35d89 chore(ci): 跳过纯说明文档构建 2026-09-27 20:36:58 +08:00
ysicing 84fcb0d4c0 docs(legal): 更新隐私与服务条款中的同步说明 2026-09-27 20:36:27 +08:00