Desktop "Add node" button invokes PIN-pairing, not manual-node registration — no UI surface for nvpair-manual-nodes
Les mainteneurs répondent en général sous 5 jours
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Accessibilité débutants
- 74/100
- Type d'issue
- Fonctionnalité
- Clarté
- Clairement spécifiée
- Activité
- Active
- Stack technique
- electron, typescript
- Domaine
- desktop
Piste de recherche
Commencez par desktop/src/ui/components/AddNodeModal.tsx et lisez services/nvpair-manual-nodes/README.md pour connaître la structure de la requête node/add. Suivez le relay existant et desktop/src/electron/service-bridge/manual-nodes-store.ts, notamment modular-supervisor.ts:replayManualNodes(). La tâche est terminée lorsque le flux Add node propose l’enregistrement d’un nœud manuel, enregistre l’entrée et la rejoue après un redémarrage.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Desktop "Add node" button triggers PIN-pairing, not manual-node registration
Summary
The desktop UI's Settings → Cluster → Add node button (AddNodeModal.tsx)
is the only obvious entry point for adding a node by IP address, but it
actually invokes PIN-pairing (useInvitePairing().start(ip)), not the
nvpair-manual-nodes registration that a user would expect from the label
"Add node". There is no UI surface anywhere in the desktop app to add a
node to nvpair-manual-nodes. Combined with the in-memory-only state of
nvpair-manual-nodes, this means a user with a peer reachable over Tailscale
/ VPN has no documented path to make the peer stay online.
Reproduction
- Open Settings → Cluster.
- Click Add node.
- Type the peer's Tailscale IP (e.g.
100.121.35.74) → click Invite. - Observe: pairing handshake fires (PIN prompt on the other side); on accept
the cluster membership grows butconfigs/manual-nodes.jsonremains[].
Code reference
desktop/src/ui/components/AddNodeModal.tsx:
const handleManualInvite = useCallback(() => {
const ip = manualIp.trim()
if (!ip) return
void pairing.start(ip) // <- PIN-pairing, not nvpair-manual-nodes
}, [manualIp, pairing])
The render shows this only as a manual-IP invite — there is no second button or
tab for "register as manual node".
Why this matters
The nvpair-manual-nodes worker exists specifically to probe peers by IP when
mDNS can't reach them (e.g. across VPNs). It is documented in
services/nvpair-manual-nodes/README.md and supported via JSON-RPC
(node/add with { address, name?, tls_port?, mtls? }). The Electron-side
store (desktop/src/electron/service-bridge/manual-nodes-store.ts) already
persists entries in configs/manual-nodes.json and replays them via
modular-supervisor.ts:replayManualNodes() on startup. All the wiring exists
except the UI surface.
Suggested fix
Add a second control to AddNodeModal.tsx (e.g. a tab "Add as manual node"
or a checkbox "Skip pairing — register for direct probing only") that calls
the broker's node/add relay with { address, name }. The store already
saves on success.
Workaround
Edit ~/.config/Nvidia Corporation/Personal AI Router/configs/manual-nodes.json
by hand with the documented schema [{id, address, name}] and restart the app
— the supervisor will replay it on startup. See companion issue for the
upstream symptom this addresses.
Environment
- nvpair 0.1.1
- Linux 7.2.5-3-omarchy
- Langage dominant
- Go
- Étoiles
- 1.6k
- Forks
- 266
- Merge moyen
- 3 j 6 h
- PR mergées (30 j)
- 22
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de NVIDIA/Personal-AI-Router
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 20/100
NVIDIA/Personal-AI-Router#165 ·
Les mainteneurs répondent en général sous 5 jours
-
bug
Difficulté 4/5 3-5 jours Accessibilité débutants 46/100
NVIDIA/Personal-AI-Router#164 ·
Les mainteneurs répondent en général sous 5 jours
-
enhancement
Difficulté 4/5 Plus d'une semaine Accessibilité débutants 12/100
NVIDIA/Personal-AI-Router#162 ·
Les mainteneurs répondent en général sous 5 jours
-
enhancement
Difficulté 4/5 3-5 jours Accessibilité débutants 25/100
NVIDIA/Personal-AI-Router#154 · 1 commentaire ·
Les mainteneurs répondent en général sous 5 jours
-
[Feature]: [Ollama] Alert the user about model pull failuresPeut-être pris @ckelseynv l’a pris il y a 2 jours. Ouverteenhancement
Difficulté 3/5 1-2 jours Accessibilité débutants 56/100
NVIDIA/Personal-AI-Router#152 · 1 commentaire · 1 personne assignée ·
Les mainteneurs répondent en général sous 5 jours
Toutes les issues de NVIDIA/Personal-AI-Router
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 63/100
Les mainteneurs répondent en général sous 1 jour
-
product/backlog
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
TencentBlueKing/bk-nodemgr#3645 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
modelcontextprotocol/go-sdk#1387 ·
Les mainteneurs répondent en général sous 1 jour
-
docs(prompt): filer socket fragment hardcodes an issue-intent cap of 8 that Chore runs overrideOuverteagent-butler-finding chore
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
jordansmall/spindrift#5128 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 84/100
Les mainteneurs répondent en général sous 2 jours