Commit Graph
47 Commits
Author SHA1 Message Date
gentpan 46d5b33030 连接探测标题右侧不再显示探测地址与“每秒一次” 2026-09-16 20:57:50 +05:00
gentpan 8f7691d290 进程 CPU 在概览里改为占整机的比例,悬停显示单核口径
用户反馈 CPU 占用高:CPU 弹窗“按应用汇总”与仪表盘“高占用进程”按单核满载为 100% 计(活动监视器的算法),多核 Mac 上一个应用常显示 99%、75%,又放在整机总占用下面,容易误读。

- Format.machineShare:单核口径 ÷ 逻辑核心数,全部核心跑满为 100%;小于 0.1% 且不为 0 写 “<0.1%”。Format.coreShare 保留单核口径写法
- CPU 弹窗 / CPU 页的按应用汇总、仪表盘高占用进程改用整机占比,数值悬停显示单核口径;仪表盘着色阈值改为整机占比 25% / 50%
- 进程页保持单核口径,与活动监视器一致
- 单元测试覆盖两种写法;译文与更新日志同步
2026-09-16 20:53:52 +05:00
gentpan 165963de84 弹窗高度随内容自动调整:数据到达后变高不再露出滚动条
弹窗打开时按平铺布局测一次高度,之后公网 IP、归属地等数据陆续到达,内容变高(实测 860 → 911pt)而窗口不变,底部露出一小截滚动条。

- PageScroll 在弹窗里用 onGeometryChange 记下滚动内容高度与可视高度,差值通过 reportPopoverOverflow 环境值交给面板
- StatusPanel.adjustHeight(by:):按差值调整窗口高度、顶边不动,上限为菜单栏下方到屏幕底边的可用高度,屏幕放不下时才保留滚动
- 打开时的平铺测量保留作为起始高度;展开 / 收起区块、数据刷新都会自动校正
2026-09-16 19:48:18 +05:00
gentpan 84542374bc IP 纯净度标题行重新排版:置信度改为浅色小字,完整报告、刷新、收起并成一组按钮
- 置信度不再是带框徽章,改为标题旁的 12pt 浅灰文字,百分比按高低着色(confidenceTone → confidenceColor)
- “查看完整报告 / 完整报告”文字链接与 ReportLink、ReportStyle、ViewThatFits 三档标题行一并去掉,改为外链图标
- 新增 HeaderActionGroup:一组小图标按钮在 macOS 26 上合成一颗玻璃胶囊,更早系统为浅灰胶囊;组内的 MiniIconButton 不再各自带玻璃
- 译文与更新日志同步
2026-09-16 19:32:11 +05:00
gentpan 4099ec636e 菜单栏弹窗改为紧凑排版:去掉卡片底色改细分隔线,纯净度与 DNS 默认收起
- 新增 isPopover 环境值,PopoverRootView 打开;Card 在弹窗里不画灰底,只在顶部画一条细分隔线,上下 8pt、行距 6pt;PageScroll 在弹窗里区块间不再留间距
- 弹窗顶栏的两个按钮改用 24pt 的 MiniIconButton
- 网络弹窗:IP 纯净度、DNS 默认收起成一行(CollapsedSection,显示分数等级 / 正在使用的 DNS),点开后标题栏右侧有收起按钮;展开状态存在 AppSettings.expandedPopoverSections,变化时刷新弹窗高度
- 流量图高度 72pt → 56pt,连接探测改为 30 列 2 行
- 网络弹窗 1519pt → 952pt,其余弹窗矮 9%~21%;主窗口详情页不变
2026-09-16 18:52:04 +05:00
gentpan 9e4f92e366 连接探测只看通不通:绿红两色 60 格,去掉延迟抖动丢包,前台固定每秒探测
- ProbeGrid 只分绿(通)、红(超时或不可达)、灰(尚无数据),不再用橙色表示延迟偏高
- 探测历史固定 60 次:弹窗 20 列 3 行,主窗口 30 列 2 行;去掉格子下面的延迟、抖动、丢包与 NetworkController 里对应的统计
- 网络详情打开时固定每秒探测一次(NetworkController.foregroundProbeSeconds),移除 AppSettings.probeSeconds、设置里的“探测间隔”与同步文档字段;后台低频探测仍每 10 秒
- 译文、README、官网与隐私页、更新日志同步
2026-09-16 18:32:38 +05:00
gentpan d68fbce42a 主窗口改用液态玻璃(macOS 26),分段切换改为苹果标准样式,新增全局加载框
- 新增 Design/LiquidGlass.swift:dsGlass 修饰器(macOS 26 用 glassEffect,更早系统与离屏截图退回实色)、isInsideGlass 环境值避免玻璃叠玻璃、LoadingHUD 全局加载框
- 侧边栏是浮在窗口里的玻璃面板,选中项为滑动的淡蓝圆角底;顶栏“在菜单栏显示”一组收进玻璃胶囊
- DSButtonStyle:主按钮蓝色玻璃胶囊、次要按钮透明玻璃;IconButton / MiniIconButton 为圆形玻璃;ChipButton 为玻璃胶囊;DSToggle 在 macOS 26 用系统开关
- SegmentedControl 统一为苹果标准样式:灰色圆角底槽、等宽分段、选中段实心品牌蓝白字并滑动;PillSwitch 同样灰底
- 清理、卸载、导出诊断、修改 DNS 进行中显示全局加载框
- 没有用 safeAreaBar 让页面从顶栏下滚过:macOS 上交界处会画一条分隔线,柔和或隐藏滚动边缘都去不掉
2026-09-16 18:26:09 +05:00
gentpan d305e5e3e1 纯净度改为只查自己:锁定 IPv4 / IPv6 连接分别请求 cleanip.io/cli?json=1
cleanip.io 自 09-15 起不再接受 /cli?ip=,带参数一律 400,网络详情的纯净度因此一直停在“正在查询”。

- 新增 AddressFamilyRequest:用 Network.framework 建连接并锁定 IP 版本,走 HTTP/1.1 over TLS 请求,
  处理 chunked 与 Content-Length;这一族没有路由时直接失败,不干等。URLSession 无法指定地址族,
  而 cleanip.io 在 Cloudflare 后面 A / AAAA 都有,锁定地址族才能两族各查到自己的结果
- 锁定地址族的连接建不起来时退回 URLSession,只接受与所查同一族的结果
- 分流代理下 cleanip.io 看到的出口与 Cloudflare 不同时,显示 cleanip.io 看到的地址;缓存按 Cloudflare 的地址比对
- 查询失败的空结果不再写进 7 天缓存,也不进内存缓存,服务恢复后下次打开详情即重查
- 单元测试覆盖响应解析;真实网络下 IPv4 在本机验证、IPv6 在服务器上用 curl -6 验证 cleanip.io 返回对应地址的纯净度
2026-09-16 01:47:21 +05:00
gentpan 40b7e41cbf 支持 Intel 芯片:分别打包 Apple 芯片版与 Intel 版,官网按芯片提供两个下载按钮
- Makefile 支持 ARCH=arm64 / x86_64,release.sh 两种芯片各自构建、签名、公证,生成 DMG 与升级包
- 版本清单顶层仍是 Apple 芯片版(兼容 0.3.0),intel 字段放 Intel 版;应用按芯片挑包,安装前核对架构
- Homebrew cask 按 arch 选择安装包
- 官网下载区改为 Apple 芯片 / Intel 两张卡片,README 安装段落与常见问题同步
2026-09-15 16:21:29 +05:00
gentpan e2300826b6 发布 0.3.0:更新 README 截图,补充卸载应用与启动项说明,自动检查更新失败后按小时重试
- 官网此前的 0.2.0 安装包早于卸载应用、启动项与在线升级的提交,发布 0.3.0 补上(#1)
- 自动检查更新只有拿到版本清单才记为已检查,登录时网络未就绪导致的失败不再等 24 小时才重试
- release.sh 在构建后读取构建号,版本清单里的 build 与安装包一致
- README 截图换成 0.3.0 界面,新增启动项截图与“卸载应用与启动项”一节
2026-09-15 14:43:07 +05:00
gentpan b8db7eacae 归属地只用 cleanip.io:移除 MaxMind GeoLite2 与其他在线数据源
- 删掉 MaxMind .mmdb 读取器、本地数据库控制器与「IP 归属地数据库」设置区块,去掉「归属地数据源」选择及 ipapi.is / DB-IP / ipinfo.io 解析;PublicAddressLookup 只向 cleanip.io 查询,结果按 IP 记一小时,收到 429 当天不再请求
- 设置同步文档不再带 geoSource / geoIncludeCity / geoAutoUpdate;公网 IP 缓存键升到第 4 版,旧数据源的缓存不再读取
- 网络详情:IP 地址区块标题不再放 cleanip.io 字标,只留在纯净度区块;纯净度色带改为直角
- 删除 server/geoip 的 GeoLite2 同步脚本;README、架构说明、第三方声明、官网与隐私页、译文同步,清掉 53 条不再使用的翻译
2026-09-15 04:24:42 +05:00
gentpan 51b954983b 菜单栏新增“电池”项目:电量、24 小时曲线、功耗、健康度与蓝牙设备电量
- 电池按九种风格画在菜单栏,充电中带闪电,电量低于 20% 按“高负载时着色”变红;点击弹出电池详情,主窗口同名页面复用同一视图,历史页多了电池电量曲线
- 历史库加 battery 列(旧库首次打开时 ALTER TABLE 迁移),HistoryRecorder 单独查最近 24 小时电量供弹窗使用
- BluetoothController 按需轮询蓝牙设备电量:弹窗 / 页面开着每分钟,菜单栏需要时每 5 分钟;本机信息页的蓝牙卡片改用它
- 没有电池的 Mac 上电池项目改为显示电量最低的蓝牙设备;「设置 · 菜单栏」新增“蓝牙设备电量低时提示”开关(同步文档一并带上)
- README、架构说明、更新日志与译文同步
2026-09-15 03:58:30 +05:00
gentpan c9d722f20d 账号同步、磁盘工具、IP 归属地数据源与纯净度、弹窗与设置调整
- 账号与同步:GitHub / Google / Apple 登录后把菜单栏项目与风格等偏好同步到 getopenstats.com,换一台 Mac 登录即恢复(AccountSync 模块、SyncController、SettingsDocument、账号设置页,openstats:// 回调)
- 磁盘页成为工具页:已用 / 可清除 / 可用分段容量条、空间分析、文件系统检查、本地快照清理(辅助工具协议 v4)、其他磁盘推出
- 公网 IP:归属地数据源可选 CleanIP.io / ipapi.is / DB-IP / ipinfo.io / 本地 GeoLite2,每台 Mac 自己查、本地缓存 7 天;IPv4 / IPv6 双栈各自查询与切换;弹窗显示 ASN、运营方、原生 / 住宅等徽章与纯净度评分色带;接口区块可重置上传 / 下载统计
- 弹窗:右上角按钮改为该指标自己的图标 + 总设置;主窗口页面标题栏的开关点不动已修复;滚动条改为悬浮式,内容不再偏左;网络弹窗卡片被标题行撑宽的问题已修复
- 设置:⌘ 拖动排序说明;每个菜单栏项目单独选风格并带实时预览;网络与磁盘的进程榜单固定 5 行并平滑排序;CPU 持续高负载通知
- 设计系统:分段条、评分色带、标签徽章、胶囊切换、刷新按钮等组件与徽章配色 token
- 更新日志、架构说明、README 与译文同步
2026-09-15 03:37:24 +05:00
gentpan f7e88fa06c 国旗改为预渲染的 PNG:SVG 源文件移到 Assets/flags-svg,Scripts/render_flags.sh 用 librsvg 批量生成
NSImage 画不出 SVG 里的 <use> 引用,弹窗里的归属地国旗显示错乱。改为构建前渲染成 64×48 的 PNG 打进资源包,FlagImage 直接读 PNG;第三方声明补上国旗与品牌标志的来源。
2026-09-15 03:37:23 +05:00
gentpan 92d09169fd 版本号改为 0.2.0 (0003) 格式:每次构建号加一,发布时用 bump-patch / bump-minor 改营销版本 2026-09-14 23:24:09 +05:00
gentpan 11fc451fae 语言切换立即生效:视图、应用菜单与菜单栏随设置重建,不再需要重启 2026-09-13 15:30:55 +05:00
gentpan 9af1aaaf27 本地化测试不再切换全局语言,避免与并行的测试互相影响 2026-09-13 09:18:55 +05:00
gentpan 5e16e65233 修复旧版编译器报错:局部变量遮蔽 model 2026-09-13 09:17:18 +05:00
gentpan e6bed09dc0 英文界面:翻译层、语言设置与英文文案 2026-09-13 09:16:04 +05:00
gentpan 0cd20c4c8a 全局快捷键 2026-09-13 08:51:09 +05:00
gentpan 4f46446494 蓝牙设备电量与低电量通知 2026-09-13 08:48:40 +05:00
gentpan 9e236670e5 历史回看:每分钟记录到本机数据库,1 小时 / 24 小时 / 7 天图表 2026-09-13 08:46:58 +05:00
gentpan 1a79a5d98d 启动项管理:列出 LaunchAgents / LaunchDaemons,停用或启用当前用户的启动项 2026-09-13 08:42:07 +05:00
gentpan ff790f5627 卸载应用:残留文件查找、移到废纸篓、从程序坞移除 2026-09-13 08:38:31 +05:00
gentpan 9fb8ead908 电池卡片加入系统充电上限入口 2026-09-13 08:34:54 +05:00
gentpan 0b09fb91c1 磁盘页:容量、读写速度、SSD 健康与读写最多的应用 2026-09-13 08:33:54 +05:00
gentpan 722b278832 功耗(整机、电源输入、电池、GPU)与各类核心频率 2026-09-13 08:29:00 +05:00
gentpan 1e8c2f0773 系统通知:过热、内存压力、磁盘空间、网络断开、电池健康 2026-09-13 08:19:36 +05:00
gentpan 3117b69deb 导出诊断信息与运行日志、界面逻辑测试 2026-09-13 08:11:54 +05:00
gentpan f9f4201654 辅助工具版本检查、后台低频探测、进程页 2 秒刷新、记住菜单栏图标顺序 2026-09-13 08:06:56 +05:00
gentpan b901bb8b67 在线升级:版本清单、摘要提示、一键安装与自动重启 2026-09-13 08:03:25 +05:00
gentpan 0538dbc3ca 主窗口顶栏:拖动窗口的区域只覆盖标题和空白 2026-09-13 07:46:51 +05:00
gentpan 3b3fd577da 流量历史的峰值移到标题行,图表上不再压文字 2026-09-13 07:09:09 +05:00
gentpan 23e4a8b8e0 设置并入主窗口:侧边栏新增设置分组,网络、风扇、合盖设置放到对应页面
- 侧边栏“设置”分组:通用、菜单栏、辅助工具、关于;导航较多时侧边栏可滚动
- 网络设置(连接探测、公网 IP、IP 归属地数据库)放在网络页底部,风扇安全温度放在温度与风扇页,合盖电量下限放在防休眠页
- 弹窗齿轮、菜单栏右键“设置…”与 ⌘, 打开主窗口的通用设置;删除独立设置窗口,偏好设置不变
- 去掉不再使用的设置窗口尺寸 token,侧边栏宽度改名为 sidebarWidth;截图渲染改为按页面输出
2026-09-13 07:04:14 +05:00
gentpan 0829f425cb 侧边栏选中改为滑动的蓝色光条:细线底轨、发光指示与渐淡高亮,切换带回弹动画 2026-09-13 06:45:57 +05:00
gentpan 0342074489 IP 归属地改用本地 MaxMind GeoLite2:自研 .mmdb 读取器、服务器定时同步、应用校验下载与导入
- Metrics:MaxMindDatabase 按 MaxMind DB 2.0 规范解析搜索树与数据段(内存映射,无第三方依赖),GeoLookup 取国家、城市与 ASN
- 服务器:server/geoip 下的更新脚本与 systemd 定时器,License Key 只放在服务器 /etc/openstats/maxmind.env,生成 manifest.json
- 应用:GeoDatabaseController 每 3 天检查清单,下载后校验 sha256 与库类型再替换;支持从文件导入、可选城市库
- 有本地库时只向外查询公网 IP,归属地与 ASN 本机查询;网络详情标明数据来源;官网部署排除 /geoip/
- 新增读取器单元测试;更新隐私说明、第三方声明与架构文档
2026-09-13 06:40:05 +05:00
gentpan 3243570d53 新增本机信息页:机型、系统、芯片、内存与图形、存储、电池、显示器与标识,序列号默认遮住 2026-09-13 06:31:46 +05:00
gentpan 63c37b0e22 进程管理器:包括系统进程,可搜索、筛选、排序、按应用合并并结束进程;快捷开关改为开关样式
- 系统与其他用户的进程通过系统自带的 ps 读取 CPU、内存与 CPU 时间,自己的进程另有线程、唤醒次数与磁盘读写
- 列标题点击排序;搜索名称、PID 或用户;全部 / 我的 / 系统;按进程或按应用
- 选中后显示路径与详情,可在访达中显示、用 Apple 智能解释、退出或强制退出(二次确认,系统进程与 loginwindow 禁止结束)
- 底部汇总用户 / 系统 / 空闲与全系统进程数、线程数;窗口变窄时自动隐藏次要列
- 仪表盘快捷开关改为开关样式
2026-09-13 06:26:43 +05:00
gentpan 958d566870 释放内存移到标题栏;主窗口与设置窗口默认更大且可调整;滚动条只在滚动时显示 2026-09-13 06:18:50 +05:00
gentpan 3caf690987 CPU 与内存详情改为 OpenStats 自己的设计:热力图、水位条、压力走势与按应用汇总
- CPU:占用、状态、30 秒变化与温度余量;核心热力图;核心分工与最忙核心;排队程度(每核平均负载与趋势);按应用汇总
- 内存:还可用多少与压力走势条;内存水位条;压缩省下的内存、压缩比与交换区实时读写;按应用汇总
- 数据层新增各核心占用历史、内存压力历史、压缩前大小与交换区换入换出累计量;进程采样返回全部可读进程
- 去掉仿 Stats 的圆环与仪表组件
2026-09-13 06:13:32 +05:00
gentpan 50d04ebda8 CPU 与内存详情改用圆环、仪表与分色柱形图,新增用 Apple 智能解释进程
- CPU:温度 / 占用 / 负载三个圆环,负载历史面积图,核心按类型分色,各类核心平均占用与 1 / 5 / 15 分钟平均负载
- 内存:压力仪表与按 App / 联动 / 压缩分段的圆环,补充已用、可用与交换区
- 进程右键或进程页星形按钮调用系统自带的本机大模型解释进程,附带路径、所属应用与签名方,不联网
- 进程显示本地化应用名,详情弹窗进程列表 8 行;修复截图模式下短页面卡片被拉高
- 更新 README 截图与说明,更新日志同步到官网
2026-09-13 06:01:41 +05:00
gentpan 8875b6e709 每项独立菜单栏与详情弹窗、网络详情与 DNS、侧边栏主窗口与统一外观
- 菜单栏可每项独立(点击弹出该项窄详情)或合并为一个(点击打开主窗口),详情区块可在设置中勾选
- 网络详情:镜像流量历史、ICMP 连接探测格子、接口与 Wi-Fi、本地与公网 IPv4 / IPv6、SVG 国旗归属地与 ASN、各进程流量
- DNS:刷新缓存,一键切换自动 / Cloudflare / Google / 腾讯 / 阿里云或手动填写;辅助工具协议升至 3,服务名与地址二次校验
- 主窗口:侧边栏切换仪表盘、各指标详情与工具页,宽高可调,卡片按比例伸缩
- 统一外观:白底蓝 / 黑底蓝,窗口、设置与弹窗共用底色,去掉玻璃效果
- 新增网络解析、DNS 校验与国旗代码校验的单元测试;更新 README、架构文档与隐私说明
2026-09-13 05:39:10 +05:00
gentpan dc5c987b96 菜单栏风格、面板浅色与深色主题,修复面板打不开
- 菜单栏八种风格整体套用、可按指标单独指定,网速三种样式,悬停显示完整读数,字号缩小并统一
- 面板浅色、深色实色主题与一键切换,液态玻璃改为可选
- 修复关闭液态玻璃后面板内容尺寸翻倍导致看起来打不开,首次打开时高度偏小
- Developer ID 自动签名,辅助工具按自身签名团队校验调用方,新增发布脚本
- 更新日志、README、截图同步
2026-09-13 04:09:02 +05:00
gentpan 7e8fffbe9e CI 使用最新的 Xcode 26,修复 unregister 跨隔离域传递 2026-09-13 03:15:14 +05:00
gentpan de81173517 首次启动默认在菜单栏显示 CPU、内存与网速 2026-09-13 03:03:57 +05:00
gentpan 1205483b5e 新增清理与系统维护,修复面板抖动,更换应用图标
- 清理:应用缓存、日志、浏览器缓存、Xcode/模拟器/npm 缓存、下载残留、安装包、废纸篓;
  白名单目录 + 安全守卫,运行中的应用自动跳过,执行前逐项复核,操作日志
- 系统维护:刷新 DNS 缓存、释放内存(辅助工具或管理员授权)
- 面板:去掉打开后的二次调整高度与窗口高度动画,内容放得下时不回弹,
  修复点击菜单栏图标关闭时被重新打开
- 更换应用图标,面板与关于页使用应用图标作为 Logo
- 清理未使用的组件、格式化方法、设计 token 与辅助工具接口
2026-09-13 03:03:08 +05:00
gentpan 4741d40e1b OpenStats:macOS 菜单栏系统监控初始版本
- 菜单栏:CPU/GPU/内存多样式、网速两行、温度、风扇
- 面板:概览仪表盘、进程、散热、防休眠,液态玻璃与浅色/深色主题
- 采集层:CPU/内存/网络/GPU/磁盘/电池/进程/SMC 温度与风扇,按界面分级采样
- root 辅助工具:风扇调速、合盖不睡眠,断开时自动恢复
- XcodeGen 工程、单元测试、截图模式
2026-09-13 02:44:05 +05:00