Repository navigation
v0.7.0-rc.5 — unsigned macOS arm64 candidate
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.4added 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-nodesnow 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:checkandmake testpass: 625 desktop unit tests and every Go module, including the newnvpair-shared/inferencemetricsandnvpair-ui-broker/nodemetricspackages.go test -raceis 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
usageblock exactly. - Package checks:
- The app reports 0.7.0-rc.5, and the service binaries report their
services/versions.jsonversions and are arm64-only. LICENSE,LICENSE.electron.txt,LICENSES.chromium.htmlandTHIRD_PARTY_NOTICES.mdare 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.dmgSHA-256142d6325248220b66fd79cdd021e5feef728a01fef2721ebef5cc37f4201a2c0;NVPAIR-Setup-0.7.0-rc.5-arm64.zipSHA-2560448e8da037322660e482d51d51154796ec7f85acb060e67bcaeaf971421e6e6;service-binaries-mac-arm64.zipSHA-2569968fd4d3d5f93216d2d5ca4ece26d5311aee2be4453dcdf66b73caed439eeba.- The update feed points at this fork. Code signing is ad-hoc only.
- The app reports 0.7.0-rc.5, and the service binaries report their
- The cross-process suite in
services/testsfails 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
usagechunk carries the token counts but notprompt_eval_duration,generation_durationortime_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.