Skip to content

Releases: baogutang/N1KO-STATE

N1KO-STATE v1.0.7

15 Jun 14:20

Choose a tag to compare

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 NSApp implicit optional access that could trap before AppKit finished initialization.

  • 修复 Intel 设备上 SwiftUI Settings 场景提前初始化时可能触发的启动崩溃。

  • 主题应用逻辑改为启动期安全写法,避免在 AppKit 完成初始化前访问 NSApp 隐式可选值导致 trap。

Versioning / 版本同步

  • Updated app version metadata to 1.0.7 / build 107.

  • Updated README version badge and footer.

  • 应用版本元数据更新为 1.0.7 / build 107

  • README 版本徽章和页脚同步更新。


Regression verified / 回归验证

  • swift test passed
  • 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

15 Jun 03:41

Choose a tag to compare

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.appOpen 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 / build 106.

  • Updated README version badge and footer.

  • 应用版本元数据更新为 1.0.6 / build 106

  • README 版本徽章和页脚同步更新。


Regression verified / 回归验证

  • swift build passed
  • swift test passed

Full changelog / 完整变更

Full changelog: v1.0.6 tag

N1KO-STATE v1.0.5

15 Jun 03:13

Choose a tag to compare

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.appOpen 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 安装必读.txt to recommend Terminal xattr -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 build passed
  • swift test passed
  • 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

13 Jun 11:22

Choose a tag to compare

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 .command repair script with a signed mini 修复打不开.app

  • Updated the DMG installation guide so Terminal xattr -cr is 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 TabView wizard 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 build passed
  • swift test passed
  • 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

13 Jun 10:15

Choose a tag to compare

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 build passed
  • swift test passed
  • 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

11 Jun 07:31

Choose a tag to compare

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 launchctl commands in user-facing text)

  • Daemon stderr logged to /Library/Logs/N1KO-STATE-helper.log for 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)

  • enableCurveMode clears stale appliedFanIDs (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 --smoke passed
  • 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

11 Jun 05:02

Choose a tag to compare

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/ps when 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_PROFILE env 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