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