Skip to content

N1KO-STATE v1.0.2

Choose a tag to compare

@github-actions github-actions released this 11 Jun 07:31
· 5 commits to main since this release

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