Desktop "Add node" button invokes PIN-pairing, not manual-node registration — no UI surface for nvpair-manual-nodes
Mantenedores costumam responder em até 5 dias
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Facilidade para iniciantes
- 74/100
- Tipo de issue
- Funcionalidade
- Clareza
- Claramente especificada
- Status de atividade
- Ativa
- Stack de tecnologia
- electron, typescript
- Domínio
- desktop
Direção de pesquisa
Comece em desktop/src/ui/components/AddNodeModal.tsx e leia services/nvpair-manual-nodes/README.md para entender o formato da requisição node/add. Rastreie o relay existente e desktop/src/electron/service-bridge/manual-nodes-store.ts, incluindo modular-supervisor.ts:replayManualNodes(). Está concluído quando o fluxo Add node oferecer o registro de nós manuais, salvar a entrada e reproduzi-la após a reinicialização.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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
- Linguagem predominante
- Go
- Estrelas
- 1.6k
- Forks
- 266
- Merge médio
- 3d 15h
- PRs com merge (30d)
- 23
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de NVIDIA/Personal-AI-Router
-
enhancement
Dificuldade 4/5 Mais de uma semana Facilidade para iniciantes 12/100
NVIDIA/Personal-AI-Router#162 ·
Mantenedores costumam responder em até 5 dias
-
enhancement
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 25/100
NVIDIA/Personal-AI-Router#154 · 1 comentário ·
Mantenedores costumam responder em até 5 dias
-
[Feature]: [Ollama] Alert the user about model pull failuresTalvez já em andamento @ckelseynv assumiu há 2 dias. Abertaenhancement
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 56/100
NVIDIA/Personal-AI-Router#152 · 1 comentário · 1 responsável ·
Mantenedores costumam responder em até 5 dias
-
[Bug]: /v1/responses bypasses model-owner filtering in the Ollama proxyTalvez já em andamento @ilaigold assumiu há 3 dias. Aberta
Dificuldade 3/5 Meio dia Facilidade para iniciantes 84/100
NVIDIA/Personal-AI-Router#146 ·
Mantenedores costumam responder em até 5 dias
-
Make model download cancellation asynchronousTalvez já em andamento @ckelseynv assumiu há 19 dias. Abertaenhancement
NVIDIA/Personal-AI-Router#115 · 1 responsável ·
Mantenedores costumam responder em até 5 dias
Todas as issues de NVIDIA/Personal-AI-Router
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
Mantenedores costumam responder em até 1 dia
-
accepted bug wg/agentic-context
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
vllm-project/semantic-router#4922 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
[Bug] Extraction-mode autogen returns pod templates in random order for map-keyed CRDs, so deny and report messages change between runsTalvez já em andamento @ManojLamani assumiu hoje. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
kyverno/kyverno#17980 · 1 reação ·
Mantenedores costumam responder em até 1 dia
-
raised-by:reviewer
Dificuldade 1/5 1-3 horas Facilidade para iniciantes 84/100
medici-finance/assay#2681 ·
Mantenedores costumam responder em até 1 dia
-
bug triaged
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
fullsend-ai/fullsend#8353 · 4 comentários · 1 reação ·
Mantenedores costumam responder em até 1 dia