Releases: baogutang/N1KO-STATE
N1KO-STATE v1.0.7
N1KO-STATE v1.0.7
Intel startup hotfix — fixes a crash on Intel Macs after updating to v1.0.6.
Intel 启动热修版本 — 修复 Intel Mac 更新到 v1.0.6 后启动崩溃的问题。
Download / 下载
| Asset | Description |
|---|---|
| N1KO-STATE.dmg | Universal binary (Apple Silicon + Intel). Drag to Applications. |
| N1KO-STATE-sparkle.zip | In-app updater archive used by Sparkle. Normal manual installs should use the DMG. |
| appcast.xml | Sparkle update feed for automatic update checks. |
Install note: If macOS blocks the ad-hoc signed app on first launch, run xattr -cr /Applications/N1KO-STATE.app in Terminal. You can also right-click N1KO-STATE.app -> Open on first launch.
安装说明: 如果首次打开被 macOS 拦截,优先在「终端」执行 xattr -cr /Applications/N1KO-STATE.app。也可以右键 N1KO-STATE.app -> 打开(仅首次需要)。
What's New / 本版本内容
Intel Startup Reliability / Intel 启动可靠性
-
Fixed an Intel-only startup crash in the early SwiftUI Settings scene path.
-
Made theme application safe during app bootstrap by avoiding the launch-time
NSAppimplicit optional access that could trap before AppKit finished initialization. -
修复 Intel 设备上 SwiftUI Settings 场景提前初始化时可能触发的启动崩溃。
-
主题应用逻辑改为启动期安全写法,避免在 AppKit 完成初始化前访问
NSApp隐式可选值导致 trap。
Versioning / 版本同步
-
Updated app version metadata to
1.0.7/ build107. -
Updated README version badge and footer.
-
应用版本元数据更新为
1.0.7/ build107。 -
README 版本徽章和页脚同步更新。
Regression verified / 回归验证
swift testpassed- Universal DMG build passed
- Universal app binary verified as
x86_64 arm64
Full changelog / 完整变更
Full changelog: v1.0.7 tag
N1KO-STATE v1.0.6
N1KO-STATE v1.0.6
Settings hotfix release — fixes a macOS Settings-window launch path that could leave the window stuck on “Loading…”.
设置窗口热修版本 — 修复部分设备上通过 macOS 原生设置入口打开时,窗口可能一直停留在「加载中…」的问题。
Download / 下载
| Asset | Description |
|---|---|
| N1KO-STATE.dmg | Universal binary (Apple Silicon + Intel). Drag to Applications. |
| N1KO-STATE-sparkle.zip | In-app updater archive used by Sparkle. Normal manual installs should use the DMG. |
| appcast.xml | Sparkle update feed for automatic update checks. |
Install note: If macOS blocks the ad-hoc signed app on first launch, run xattr -cr /Applications/N1KO-STATE.app in Terminal. You can also right-click N1KO-STATE.app → Open on first launch.
安装说明: 如果首次打开被 macOS 拦截,优先在「终端」执行 xattr -cr /Applications/N1KO-STATE.app。也可以右键 N1KO-STATE.app → 打开(仅首次需要)。
What's New / 本版本内容
Settings Reliability / 设置可靠性
-
Fixed the native macOS Settings scene so it opens directly with the shared monitor hub instead of waiting on a static reference that may not refresh.
-
Prevented the Settings window from getting stuck on the “Loading…” placeholder when opened early by macOS, restored by the system, or triggered outside the menu-bar settings controller.
-
修复 macOS 原生 Settings 场景,现在会直接使用共享监控 hub,不再等待可能不会刷新的静态引用。
-
避免设置窗口在系统提前打开、系统恢复窗口、或通过非菜单栏入口触发时一直停留在「加载中…」。
Versioning / 版本同步
-
Updated app version metadata to
1.0.6/ build106. -
Updated README version badge and footer.
-
应用版本元数据更新为
1.0.6/ build106。 -
README 版本徽章和页脚同步更新。
Regression verified / 回归验证
swift buildpassedswift testpassed
Full changelog / 完整变更
Full changelog: v1.0.6 tag
N1KO-STATE v1.0.5
N1KO-STATE v1.0.5
Interaction & settings polish release — removes hover-open conflicts, improves dark popover contrast, simplifies the DMG install flow, and refreshes Settings with a more macOS-native layout.
交互与设置体验优化版本 — 取消悬浮自动弹出,优化深色模式弹窗对比度,简化 DMG 安装流程,并将设置页调整为更接近 macOS 系统设置的布局。
Download / 下载
| Asset | Description |
|---|---|
| N1KO-STATE.dmg | Universal binary (Apple Silicon + Intel). Drag to Applications. |
| N1KO-STATE-sparkle.zip | In-app updater archive used by Sparkle. Normal manual installs should use the DMG. |
| appcast.xml | Sparkle update feed for automatic update checks. |
Install note: If macOS blocks the ad-hoc signed app on first launch, run xattr -cr /Applications/N1KO-STATE.app in Terminal. You can also right-click N1KO-STATE.app → Open on first launch.
安装说明: 如果首次打开被 macOS 拦截,优先在「终端」执行 xattr -cr /Applications/N1KO-STATE.app。也可以右键 N1KO-STATE.app → 打开(仅首次需要)。
What's New / 本版本内容
Menu Bar Interaction / 菜单栏交互
-
Removed hover-to-open preview behavior so the monitoring panel only opens when clicked
-
Kept outside-click auto close behavior for the popover
-
Removed hover tracking code paths to avoid click/hover conflicts
-
Added menu-bar font style and font size controls with a recommended-width warning
-
取消鼠标悬浮自动弹出,监控面板只在点击菜单栏项目时打开
-
保留点击空白处自动关闭弹窗
-
清理悬浮追踪路径,避免点击与悬浮行为互相抢占
-
新增菜单栏字体样式和字体大小设置,并在超过建议宽度时提示
Popover / 弹窗
-
Replaced the main popover material surfaces with explicit adaptive surfaces for better dark-mode contrast
-
Kept card content readable in dark appearance without the washed-out gray panel effect
-
弹窗主背景和卡片改为明确的深浅自适应表面,提升深色模式对比度
-
避免深色外观下出现灰底白字发糊的问题
DMG Install Flow / DMG 安装流程
-
Removed the bundled repair app from the DMG
-
Updated
安装必读.txtto recommend Terminalxattr -cr /Applications/N1KO-STATE.app -
README install instructions now match the simplified DMG
-
DMG 不再包含额外修复工具
-
更新
安装必读.txt,优先推荐终端执行xattr -cr /Applications/N1KO-STATE.app -
README 安装说明与新版 DMG 保持一致
Settings / 设置
-
Added a dedicated Popover settings page for panel style and chart range
-
Refined Settings toward a macOS Settings-style sidebar and row layout
-
Moved the real menu-bar preview to the top of the Menu Bar page
-
Replaced custom segmented chips with native picker controls in key areas
-
Added module search and a minimum Settings window size to avoid cramped layouts
-
Added menu-bar font controls directly beside the live preview
-
新增独立「弹窗」设置页,用于配置面板样式和曲线范围
-
设置页调整为更接近 macOS 系统设置的侧边栏与行布局
-
菜单栏真实预览移到「菜单栏」页面顶部
-
关键区域从自绘分段按钮改为原生选择控件
-
增加模块搜索,并设置窗口最小尺寸,避免布局过度拥挤
-
菜单栏字体控制放在实时预览旁,便于边调边看
Fan Control / 风扇控制
-
Manual fan sliders now apply automatically after a short debounce; the old Apply button was removed
-
Added a per-fan automatic reset endpoint for firmware that supports per-fan control
-
On Macs with a shared global fan-control switch, the UI now clearly reflects that only one fan can be forced manually at a time
-
手动风扇滑杆现在会自动生效,不再需要点击「应用」
-
为支持单风扇控制的固件新增单风扇回自动能力
-
对使用共享全局风扇控制开关的 Mac,界面会明确提示同一时间只能强制一个风扇手动
Performance & Release Hygiene / 性能与发布产物
-
Removed the obsolete chart range publisher from the global settings object
-
Kept chart range in its dedicated lightweight store
-
Sparkle zip packaging now avoids macOS resource-fork metadata files
-
从全局设置对象中移除已废弃的曲线范围发布状态
-
曲线范围继续由独立轻量状态管理
-
Sparkle zip 打包时避免混入 macOS 资源叉元数据文件
Regression verified / 回归验证
swift buildpassedswift testpassed- Menu-bar font rendering test passed
- Debug smoke launch passed
- Release smoke launch passed
- DMG verification passed
- DMG content verified: no repair app and no
.command - App code signature verification passed
Full changelog / 完整变更
Full changelog: v1.0.5 tag
N1KO-STATE v1.0.4
N1KO-STATE v1.0.4
Stability & polish release — fixes first-install friction, makes the setup guide harder to lose, hides installer DMG volumes from disk monitoring, and improves chart switching responsiveness.
稳定性与体验优化版本 — 修复首次安装拦截说明、首次引导窗口被隐藏、安装 DMG 被误显示为磁盘,以及曲线切换卡顿等问题。
Download / 下载
| Asset | Description |
|---|---|
| N1KO-STATE.dmg | Universal binary (Apple Silicon + Intel). Drag to Applications. |
| N1KO-STATE-sparkle.zip | In-app updater archive used by Sparkle. Normal manual installs should use the DMG. |
| appcast.xml | Sparkle update feed for automatic update checks. |
Install note: If macOS blocks the ad-hoc signed app on first launch, run xattr -cr /Applications/N1KO-STATE.app in Terminal. The DMG also includes 修复打不开.app; right-click it → Open if you prefer the assisted repair path.
安装说明: 如果首次打开被 macOS 拦截,优先在「终端」执行 xattr -cr /Applications/N1KO-STATE.app。DMG 内也提供 修复打不开.app,可右键 → 打开 使用辅助修复。
What's New / 本版本内容
Installation / 安装体验
-
Replaced the old
.commandrepair script with a signed mini 修复打不开.app -
Updated the DMG installation guide so Terminal
xattr -cris the recommended first fix -
Clarified that the repair tool may also need right-click → Open on first use
-
将旧的
.command修复脚本替换为已签名的迷你 修复打不开.app -
更新 DMG 安装说明,优先推荐终端执行
xattr -cr -
明确修复工具首次使用时也可能需要右键 → 打开
Setup Guide / 首次引导
-
The setup guide now stays above the password prompt flow and returns to the front after fan authorization succeeds
-
Closing the guide by mistake no longer marks setup as completed
-
Replaced the macOS
TabViewwizard with a deterministic three-step view -
Added a success notice when fan control is ready and the guide advances
-
首次引导窗口在风扇授权流程后会重新回到前台
-
误点关闭不再标记引导已完成,下次启动仍会显示
-
用稳定的三步视图替代 macOS
TabView分步向导 -
风扇控制准备就绪后显示成功提示并进入最后一步
Disk Monitoring / 磁盘监控
-
Installer DMG volumes are now filtered out of the disk card
-
Real USB drives, SD cards, and external disks continue to be shown
-
Added tests for Disk Image detection and removable-drive preservation
-
磁盘卡片不再显示安装 DMG 卷
-
U 盘、SD 卡、移动硬盘等真实外置存储仍会正常显示
-
新增 Disk Image 过滤与可移动磁盘保留的测试
Performance / 性能
-
Chart range switching now uses a dedicated range store instead of refreshing the whole settings tree
-
Long-window chart data is downsampled for display while preserving peaks
-
CPU, memory, and network charts now cache rendered input values and refresh only when needed
-
Process list updates avoid unnecessary UI publishes when the sampled result did not change
-
曲线时间范围从全局设置观察链中拆出,减少切换时的整树刷新
-
长时间范围曲线显示数据会降采样,同时保留峰值
-
CPU、内存、网络曲线改为缓存输入值,按需刷新
-
进程列表结果不变时不再触发多余 UI 更新
Regression verified / 回归验证
swift buildpassedswift testpassed- Debug smoke launch passed
- Release smoke launch passed
- DMG checksum verification passed
- App code signature verification passed
- Mounted DMG content verified: includes 修复打不开.app, no
.command - Mounted installer DMG filtering verified in
DiskMonitorTests
Full changelog / 完整变更
Full changelog: v1.0.4 tag
N1KO-STATE v1.0.3
N1KO-STATE v1.0.3
Menu bar usability & update readiness release — more compact menu-bar layouts, faster access to the monitoring panel, richer dashboard mode, and built-in update checking.
菜单栏体验与更新能力版本 — 新增更省空间的菜单栏布局、更快的悬浮面板、更完整的仪表盘模式,并加入内置更新检查。
Download / 下载
| Asset | Description |
|---|---|
| N1KO-STATE.dmg | Universal binary (Apple Silicon + Intel). Drag to Applications. |
Install note: Ad-hoc signed builds may require Right-click → Open on first launch, or run 修复打不开.command from the DMG.
安装说明: Ad-hoc 签名版本首次打开请 右键 → 打开,或运行 DMG 内 修复打不开.command。
What's New / 本版本内容
Menu bar UX / 菜单栏体验
-
Added Standard / Compact / Stacked / Minimal menu-bar layouts to reduce occupied menu-bar width
-
Added a live menu-bar preview in Settings, including approximate rendered width
-
Hovering over the menu-bar item now quickly opens the existing monitoring panel instead of a plain tooltip
-
Clicking outside the dropdown now reliably closes it
-
Added a Reset Menu Bar action to restore the default menu-bar configuration
-
新增 标准 / 紧凑 / 双层 / 极简 菜单栏布局,减少菜单栏占用宽度
-
设置中新增菜单栏实时预览,并显示大致渲染宽度
-
鼠标悬浮菜单栏项时快速打开现有监控面板,不再是简陋 tooltip
-
点击下拉面板外部区域会可靠收起
-
新增 恢复菜单栏默认 操作
Onboarding / 首次引导
-
The setup guide now has a clear Finish Setup action
-
Fan helper authorization success advances the guide automatically
-
Closing the guide through any supported path now records it as completed
-
首次引导新增明确的 完成并关闭 操作
-
风扇组件准备就绪后会自动进入下一步
-
通过任意支持路径关闭引导都会记录为已完成
Dashboard mode / 仪表盘模式
-
Rebuilt the Gauges dashboard into a richer overview with summary badges and detailed metric tiles
-
CPU, GPU, memory, disk, battery, network, sensors, and fans now show more actionable context
-
Improved density and visual hierarchy while keeping the popover compact
-
重做仪表盘模式,新增概览条和更完整的指标瓷片
-
CPU、GPU、内存、磁盘、电池、网络、传感器、风扇显示更多关键信息
-
在保持弹窗紧凑的同时提升信息密度和视觉层级
Updates / 更新
-
Added built-in update checking powered by Sparkle
-
GitHub Releases now publish a Sparkle appcast alongside the DMG, so future versions can be detected in-app
-
Added Check for Updates… in the menu-bar context menu and About page
-
新增基于 Sparkle 的内置更新检查
-
GitHub Releases 会随 DMG 一起发布 Sparkle appcast,后续版本可在应用内检测
-
菜单栏右键菜单和关于页新增 检查更新…
Regression verified / 回归验证
swift buildpassedswift testpassed- Debug smoke launch passed
- Release smoke launch passed
- DMG checksum verification passed
- App code signature verification passed
Full changelog / 完整变更
Full changelog: v1.0.3 tag
N1KO-STATE v1.0.2
N1KO-STATE v1.0.2
Polish & reliability release — fan control UX, clearer errors, and startup performance refinements from the V3 audit.
打磨与可靠性版本 — 风扇控制体验、错误提示与启动性能优化(V3 审查清单)。
Download / 下载
| Asset | Description |
|---|---|
| N1KO-STATE.dmg | Universal binary (Apple Silicon + Intel). Drag to Applications. |
Install note: Ad-hoc signed builds may require Right-click → Open on first launch, or run 修复打不开.command from the DMG.
安装说明: Ad-hoc 签名版本首次打开请 右键 → 打开,或运行 DMG 内 修复打不开.command。
Fan helper update: This release bumps the privileged helper to v3 (XPC error codes + daemon logging). The first fan write after upgrading may request one administrator password to reinstall the daemon — expected behavior.
风扇组件更新: 本版本将特权 Helper 升至 v3(XPC 错误码 + daemon 日志)。升级后首次写入风扇可能弹出 一次管理员密码 以重装 daemon — 属正常现象。
What's New / 本版本内容
Fan control UX / 风扇控制体验
-
"Taking over fan control…" spinner while Apple Silicon yields control (~0–6 s) — no more "nothing happened" confusion
-
XPC v3 error codes surfaced in UI: system rejection vs generic SMC failure
-
Fan rows show inline Retry when the helper fails to start
-
Curve rows show "Curve active · target XX%"; dragging the slider still switches to manual
-
Helper install failure message simplified (no
launchctlcommands in user-facing text) -
Daemon stderr logged to
/Library/Logs/N1KO-STATE-helper.logfor remote troubleshooting -
Idle daemon exit now also checks the dirty marker so manual mode survives popover-close gaps
-
手动接管时显示 「正在接管风扇控制…」 转圈(Apple Silicon 约 0–6 秒),避免误判无响应
-
XPC v3 错误码 映射到 UI:系统拒绝 vs 通用 SMC 失败
-
Helper 启动失败时风扇行内 重试 按钮
-
曲线模式显示 「曲线控制中 · 目标 XX%」;拖滑块仍自动切手动
-
安装失败提示简化(用户界面不再暴露命令行)
-
Daemon 日志写入
/Library/Logs/N1KO-STATE-helper.log -
空闲退出增加 dirty 标记 检查,手动模式更稳
Monitoring & UI / 监控与界面
-
Process list force-refresh when popover opens (no more 5 s stale top processes)
-
History charts load from disk off the main thread (faster cold start)
-
Dark mode tertiary text contrast preserved at 45% white
-
Settings window restores from minimized state correctly
-
Fan curve slider edits debounced to UserDefaults (no JSON encode on every tick)
-
enableCurveModeclears staleappliedFanIDs(reconcile correctness) -
Intel SMC sensor cache skipped when hardware model is unknown
-
Battery power notification RunLoop source held and cleaned up in
deinit -
Popover 打开时 强制刷新进程列表
-
历史数据 后台加载,冷启动更快
-
深色模式三级文字对比度优化
-
设置窗口从 最小化 恢复
-
风扇曲线拖动 松手才写入 设置
-
曲线模式切换时清理
appliedFanIDs -
未知机型跳过 SMC 传感器缓存污染
-
电池通知 RunLoop source 生命周期清理
Regression verified / 回归验证
./build_app.sh --native --smokepassed- Idle CPU target ≤ 0.5% (visibility-driven sampling unchanged)
- Fan Auto / Manual / Curve mode transitions preserved
- Quit without helper installed: no password prompt
Full changelog / 完整变更
Full changelog: v1.0.2 tag
MIT License · SMCKit vendored under MIT
N1KO-STATE v1.0.1
N1KO-STATE v1.0.1
First public release — a native macOS menu bar system monitor built for clarity and minimal overhead.
首次公开发布 — 原生 macOS 菜单栏系统监控,追求清晰可读与极低自身占用。
Download / 下载
| Asset | Description |
|---|---|
| N1KO-STATE.dmg | Universal binary (Apple Silicon + Intel). Drag to Applications. |
Install note: Ad-hoc signed builds may require Right-click → Open on first launch, or run 修复打不开.command from the DMG.
安装说明: Ad-hoc 签名版本首次打开请 右键 → 打开,或运行 DMG 内 修复打不开.command。
What's New / 本版本内容
Core monitoring / 核心监控
-
Menu bar widget with configurable metrics: CPU, GPU, memory, network, battery
-
Popover dashboard with card or gauge layout; module order customizable
-
CPU per-core grid, load averages, process top-5 (CPU & memory)
-
Memory breakdown: app / wired / compressed / pressure
-
GPU utilization & VRAM (Metal + IOAccelerator)
-
Network throughput with upload/download rates
-
Disk volume list + aggregate read/write I/O
-
Battery level, health, cycles, temperature, power draw (laptops)
-
Temperature sensors: IOHID on Apple Silicon, SMC fallback on Intel
-
菜单栏可配置指标:CPU、GPU、内存、网络、电池
-
弹出面板支持卡片/仪表盘布局,模块顺序可自定义
-
CPU 核心网格、负载均值、进程 Top 5(CPU & 内存)
-
内存细分:App / Wired / Compressed / 压力等级
-
GPU 利用率与显存
-
网络上下行速率
-
磁盘卷列表 + 读写 I/O
-
电池电量、健康度、循环次数、温度、功率(笔记本)
-
温度传感器:Apple Silicon HID + Intel SMC 回退
Fan control / 风扇控制
-
One-time privileged helper install for manual fan RPM
-
Temperature-based fan curve with hysteresis
-
Unified Auto / Manual / Curve mode state machine
-
Daemon auto-resets fans on app quit, crash, or disconnect
-
Onboarding flow for first-run authorization
-
一次性授权安装特权 Helper,支持手动 RPM
-
基于温度的风扇曲线,带迟滞防抖
-
统一 自动 / 手动 / 曲线 状态机
-
退出、崩溃或断连时 Daemon 自动恢复风扇
-
首次启动引导授权流程
History & alerts / 历史与告警
-
24-hour history charts (1m / 10m / 1h / 24h) for CPU, memory, network
-
Threshold alerts: CPU, memory, temperature, low disk, low battery
-
Notification permission requested on first threshold cross
-
24 小时历史图表(1 分钟 / 10 分钟 / 1 小时 / 24 小时)
-
阈值告警:CPU、内存、温度、磁盘空间、电量
-
首次越阈时请求通知权限
Performance & stability / 性能与稳定性
-
Visibility-driven sampling — no
/bin/pswhen popover is closed -
Event-driven disk volume & battery updates
-
Merged network interface scans; cached GPU IORegistry service
-
History persistence throttled to 5 minutes
-
Menu bar render deduplication
-
Timer coalescing (
tolerance) for lower idle CPU -
Fixed startup deadlock (DiagLog recursion)
-
Fixed quit-time admin password prompt when helper not installed
-
Fixed localization interpolation for helper error messages
-
Fixed CPU process list memory percentage (was always 0)
-
Smoke test:
./build_app.sh --native --smoke -
可见性驱动采样 — Popover 关闭时不 spawn
/bin/ps -
磁盘卷与电池事件驱动更新
-
合并网络接口扫描;缓存 GPU IORegistry
-
历史数据 5 分钟节流写盘
-
菜单栏渲染去重
-
Timer 合并唤醒,降低空闲 CPU
-
修复启动死锁(DiagLog 递归)
-
修复未装 Helper 时退出弹密码框
-
修复 Helper 错误文案本地化插值
-
修复 CPU 进程列表内存占比恒为 0
-
冒烟测试:
./build_app.sh --native --smoke
Localization / 本地化
- English · 简体中文 · 繁體中文 (live switch in Settings)
System requirements / 系统要求
- macOS 12.0 (Monterey) or later
- Apple Silicon or Intel
Known limitations / 已知限制
-
Ad-hoc signed DMG requires manual Gatekeeper bypass on first open (no Apple notarization in CI)
-
Fan control requires administrator password once for helper installation
-
Developer ID signing supported via
SIGN_IDENTITY+NOTARY_PROFILEenv vars when building locally -
CI 构建为 ad-hoc 签名,首次打开需手动绕过 Gatekeeper
-
风扇控制需一次性管理员密码
-
本地构建可配置 Developer ID 签名与公证
Checksums
SHA-256 of N1KO-STATE.dmg is attached in the GitHub Release workflow log. Verify after download if needed.
Full changelog: v1.0.1 tag