Skip to content

v0.7.0-rc.5 — unsigned macOS arm64 candidate

Choose a tag to compare

@JaredP94 JaredP94 released this 22 Oct 10:59
· 143 commits to main since this release

Personal AI Router 0.7.0-rc.5 — macOS Apple Silicon candidate

Release candidate for the JaredP94 fork. Unsigned and not notarized. Not a production-ready or NVIDIA-signed distribution. It targets macOS arm64 only; Windows, Linux desktop and Intel Mac packages are not included. Privileged-helper registration and automatic firewall setup stay unavailable in unsigned builds: instead of prompting, PAIR shows Firewall setup: manual guidance under Settings → Service.

It is the fork's Latest release, so 0.7.0-rc.4 installs are offered it through the in-app updater, and scripts/install-mac.sh installs it by default.

Upgrade notes

  • Desktop 0.7.0-rc.5 ships service product 2.4.1. The relay envelope protocol stays v2 and no JSON-RPC method was removed; the new broker method and the new node-record field are additive, so upgrade desktop/TUI and services together.
  • Mixed clusters: a member running an older workload-manager does not carry the engine-native view from remote nodes, so that view is complete only once every member is upgraded. The originating node is unaffected.
  • Per-node inference totals cover the period since the broker started, and reset when the broker restarts; per-job figures persist with the workload store.

Changes since 0.7.0-rc.4

Fixed

  • A manual peer's engine-native view was never fetched. The engine-native view — the engine's own counters, which 0.7.0-rc.4 added to the node card — was read only by the node-scanner, and only for the nodes in its own mDNS directory. A peer registered as a manual node (reached over Tailscale or a static address, not announced on the LAN) is never in that directory, so its record carried its model list but no engine counters, and the desktop showed nothing for it. nvpair-manual-nodes now reads the engine's own counters over the same pinned cluster-mTLS client it already used for the model list, and the broker projects them onto the manual node's record.
  • The fix was found by running the release against a live two-node cluster: the second node's counters are now identical to that machine's own engine counters (requests 2 / prompt tokens 123 / completion tokens 599, prefill 161.1 / generation 69.1 tokens per second).

From 0.7.0-rc.4 (unchanged here): the engine's own view on the node card, and live in-flight numbers on a running job — elapsed time, time to first byte, what has streamed, and for oMLX the engine's own token count, decode rate, prefill progress and queue position. No estimates: a chunk count is never shown as a token count, and a value nobody reported reads "not reported", never 0.

Full list: CHANGELOG.

Validation

Built from 41517a7 on a clean tree.

  • make check, npm run dead-code:check and make test pass: 625 desktop unit tests and every Go module, including the new nvpair-shared/inferencemetrics and nvpair-ui-broker/nodemetrics packages. go test -race is green in the broker, the workload-manager and the three inference proxies.
  • The change was reviewed three times before merge (per task, whole branch, and an independent final pass), and the fix in this release was verified against a live two-node cluster: a request served by the peer carried its measurement and its live frame back to the originating member under the right job id, and the per-job numbers matched the engine's own usage block exactly.
  • Package checks:
    • The app reports 0.7.0-rc.5, and the service binaries report their services/versions.json versions and are arm64-only.
    • LICENSE, LICENSE.electron.txt, LICENSES.chromium.html and THIRD_PARTY_NOTICES.md are present in the packaged app.
    • The DMG checksum is valid, and the app inside the DMG and the ZIP is identical to the built bundle (content-manifest SHA-256 9cb70b3fdfa7c26985cee5d53ad045c63c1f1909382cb555b9f188378ef9e31e).
    • NVPAIR-Setup-0.7.0-rc.5-arm64.dmg SHA-256 142d6325248220b66fd79cdd021e5feef728a01fef2721ebef5cc37f4201a2c0; NVPAIR-Setup-0.7.0-rc.5-arm64.zip SHA-256 0448e8da037322660e482d51d51154796ec7f85acb060e67bcaeaf971421e6e6; service-binaries-mac-arm64.zip SHA-256 9968fd4d3d5f93216d2d5ca4ece26d5311aee2be4453dcdf66b73caed439eeba.
    • The update feed points at this fork. Code signing is ad-hoc only.
  • The cross-process suite in services/tests fails 15 tests on the build machine because a running PAIR application holds ports 11434/1234/14320/14322. The identical failure set reproduces at the base commit, so it is an environment condition, not a regression.
  • No release-candidate profile was recorded for this build. The rc.3 profile in Performance and energy remains the most recent measurement; no percentage improvement is claimed.

Assets

NVPAIR-Setup-0.7.0-rc.5-arm64.dmg and .zip with their blockmaps, service-binaries-mac-arm64.zip (the packaged service binaries), SHA256SUMS, and the macOS update feeds latest-mac.yml / latest-arm64-mac.yml.

Not validated

  • The per-job phase durations need a newer oMLX, or a non-streaming request. oMLX 0.7.2's streaming usage chunk carries the token counts but not prompt_eval_duration, generation_duration or time_to_first_token; its non-streaming response does. Against 0.7.2 a streaming job therefore shows its token counts and reads "not reported" for the phase durations — the honest, designed behaviour.
  • The engine's live token count inside a progress frame was not observed end to end; the requests driven during validation were in prefill or model load.
  • Windows, Linux desktop and Intel Mac runtime; Windows worker-hang recovery and GPU readings.
  • Fresh install on a new machine, uninstall, purge, and corrupt- or interrupted-download handling of this build.
  • Upgrade from rc.4 on a live machine, and the profiling of this build.
  • Apple trust: no Developer ID signing or notarization; Gatekeeper may block first launch.