65 Commits
Author SHA1 Message Date
ysicingandClaude 8244dd15c1 fix: 自带刷新的弹窗不提高采样频率,过期风扇数据不显示启动中
- AI 用量、显示器弹窗及仅含这两项的合并面板沿用后台采样间隔
- 风扇读取失败沿用旧数据时清除 isStarting,避免“启动中”超出 10 秒窗口

Co-Authored-By: Claude <noreply@anthropic.com>
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 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 9707abba1d feat(display): 添加显示器信息与 DDC 控制 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 cbd44993ec feat(menubar): 新增单图标模式并优化状态总览 2026-10-04 21:52:14 +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 7b789b1ec2 fix(ui): 优化公共控件反馈与文字可读性 2026-10-02 21:24:11 +08:00
ysicing 04a7909dbf fix(update): 迁移多应用接口并统一新域名 2026-10-02 09:19:43 +08:00
ysicing beed5296e4 chore(repo): 移除废弃 GeoIP 和官网部署脚本 2026-10-01 18:12:39 +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 222b2baa89 fix(calendar): 保留农历选择并完善周起始日设置 2026-09-30 23:50:16 +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 7e2024eedf fix(lifecycle): 修复更新取消与卸载、查询生命周期 2026-09-30 15:20:08 +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 ef2a8050ee feat(updates): 优化安装标识去重并支持复制 2026-09-28 17:18:12 +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 0a3ad961b9 fix(history): 校正空闲时长与补录边界 2026-09-27 19:26:54 +08:00
ysicing 1ad2258a95 fix(ai-usage): 修复 Codex 额度查询与管道崩溃 2026-09-27 17:44:06 +08:00
ysicing 2bde9d96c7 fix(battery): 显示蓝牙配件充电状态与分级电量 2026-09-27 16:19:55 +08:00
ysicing 7dc19b3f70 feat(history): 添加低功耗屏幕使用时间统计 2026-09-27 14:30:13 +08:00
ysicing e58fb4679c feat(calendar): 增加整月小组件并合并时令开关 2026-09-25 20:54:56 +08:00
ysicing f3f64113f8 feat(widget): 完善日历与 IP 信息并新增今日 Token 小组件 2026-09-24 16:51:33 +08:00
ysicing 014e7106d0 feat(widget): 增强日历小组件并新增明天上班提示 2026-09-24 16:08:10 +08:00
ysicing 24757efeba docs: 精简架构文档并更新仓库规则 2026-09-24 12:38:38 +08:00
ysicing b70a621e93 chore(repo): 精简文档并统一脚本目录 2026-09-24 11:43:57 +08:00
ysicing c08c1f46f1 feat(ai-usage): 为来源显示品牌图标 2026-09-24 07:10:08 +08:00
ysicing f636af7f03 feat(ai-usage): 缓存额度并修复菜单栏预览 2026-09-24 06:59:29 +08:00
ysicing f91c2b9460 feat(ai-usage): 统一额度菜单栏与配置体验 2026-09-24 06:28:40 +08:00
ysicing d413e34fe2 feat(ai-usage): 并列显示双来源额度并整理弹窗布局 2026-09-24 00:22:50 +08:00
ysicing cb2b57eb79 feat(ai-usage): 支持 Codex 与 Claude 的 Sub2API 备用额度 2026-09-23 23:46:15 +08:00
ysicing c7e4a34e91 feat(ai-usage): 增加订阅额度与剩余进度展示 2026-09-23 20:26:35 +08:00
ysicing fc29738597 refactor(ai): 恢复进程解释仅使用 Apple 智能 2026-09-23 15:11:07 +08:00
缘生 a4b44a64fc Codex/ai assistant (#3)
* feat(ai-assistant): 添加全局进程解释与备用服务
2026-09-23 09:44:26 +08:00
缘生 aa8228fac8 Codex/calendar (#4)
* feat(calendar): 新增菜单栏日历与黄历详情
2026-09-23 09:00:05 +08:00
ysicing a0a15a69fd fix(ai-usage): 保留窗口按当天重算,刷新排队不再被丢弃
两处来自 PR 评审的缺陷,均已用回归测试复现:

保留窗口此前作为 cutoff 存进了检查点,而检查点会被原样恢复,那个日期
因此永远停在首次扫描那天。取数时又没有再过滤,超出 365 天的事件既出不了
报告也出不了检查点。改为不在解析状态里裁剪、一律在取数时按当天重算。
测试:同一文件 300 天前的事件,400 天后复扫必须离开报告。

刷新此前遇到在途刷新就直接返回,而轮询任务把这次返回当成“首次刷新已完成”,
接着睡满整个周期(最长 60 分钟);那次在途刷新的结果又会因 generation 变化
被丢弃,于是关掉再打开统计后页面会一直空着。改为串行排队,并在 stop() 与
停止轮询时显式取消在途扫描——排队链上的任务是非结构化的,不会自动取消。
测试:在途刷新期间到来的刷新必须真正执行;stop() 必须取消在途扫描。

ClaudeLocalUsageProvider 增加可注入时钟,用于验证时间推移后的窗口行为。
2026-09-23 08:50:41 +08:00