Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions desktop/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion desktop/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "nvpair",
"version": "0.1.1",
"version": "0.1.2",
"description": "Personal AI Router",
"engines": {
"node": ">=25.5.0"
Expand Down
6 changes: 4 additions & 2 deletions docs/architecture.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -591,9 +591,11 @@ Windows ships none. That responder must coexist with whatever else is on the
port, including Bonjour, Avahi, and PAIR's own sibling processes. It therefore
sets `SO_REUSEADDR` on the socket to share UDP 5353.

It deliberately does **not** set `SO_REUSEPORT`. On Linux that load-balances
On Linux it deliberately does **not** set `SO_REUSEPORT`: there that load-balances
incoming unicast datagrams across every socket sharing the port, which would let
one process swallow mDNS replies meant for another.
one process swallow mDNS replies meant for another. On macOS it sets **both**
`SO_REUSEADDR` and `SO_REUSEPORT`, because the system `mDNSResponder` already
holds the port and a bare `SO_REUSEADDR` bind races with it.

### Node Enrichment

Expand Down
2 changes: 1 addition & 1 deletion services/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ This tree builds thirteen Go binaries. `nvpair-ui-broker` is the parent service

Shared code lives in the local `shared/` Go module (imported as `nvpair-shared/…`, replaced via `replace nvpair-shared => ../shared`). It provides logging, wire types, JSON-RPC and IPC, discovery records, mDNS, network monitoring, stable node identity, application data paths, and cluster trust helpers.

The mDNS responder is our own rather than the host's, because Windows ships none. It sets `SO_REUSEADDR` so it shares UDP 5353 with sibling PAIR processes and with a system responder — `avahi-daemon` on Linux, Bonjour where present — needing no configuration on either platform.
The mDNS responder is our own rather than the host's, because Windows ships none. It sets `SO_REUSEADDR` so it shares UDP 5353 with sibling PAIR processes and with a system responder — `avahi-daemon` on Linux, Bonjour where present — needing no configuration on either platform. On macOS it also sets `SO_REUSEPORT`, because the system `mDNSResponder` holds the port and a bare `SO_REUSEADDR` bind races with it.

The broker feeds every accepted local or peer workload transition plus compact
GPU telemetry to the scheduler. Queued and running work is counted by destination
Expand Down
Loading