diff options
| author | Christophe Besson <cbesson@gmail.com> | 2026-10-10 09:57:17 +0200 |
|---|---|---|
| committer | Christophe Besson <cbesson@gmail.com> | 2026-10-10 09:57:29 +0200 |
| commit | 876f4a351f859201ca68fbf8d585c86905571686 (patch) | |
| tree | 7bf029b884ae427352e6c2e7af0cbba887dea824 /packages/meshbay-client/src | |
| parent | 42b562fcf312ddceb78438b5daea49d4c9b465c8 (diff) | |
| download | meshbay-876f4a351f859201ca68fbf8d585c86905571686.tar.gz | |
fix(client): say when the account's node is elsewhere, and let go of it
Signing in on a desktop links this machine's node to the account, but never
over a key already linked (that would cut off the user's other machine) nor a
node set up for another account. On a real install both left the node reading
"Running" while the hub refused it in a loop, and nothing said why. And the
only way to unlink was the linked machine's own Node page, of no use once
that machine is gone.
- The Node page works out, from the node and the hub each time it looks,
whether this node can serve the signed-in account (nodeLinkProblem), and
says why not: "Link this node instead" (asked first) puts this node's key
on the account; "Use this node for my account" switches a node set up for
another account through node:start, which takeOver now lets past a node
that answers "running". The first version went through node:start for
both, and clicking it on a real install did nothing: a node signed in
before the account was linked elsewhere answers "running".
- The Profile page unlinks the account's node (DELETE /v1/users/me/node_key),
from any machine.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'packages/meshbay-client/src')
| -rw-r--r-- | packages/meshbay-client/src/main.js | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/packages/meshbay-client/src/main.js b/packages/meshbay-client/src/main.js index 603dedc..1af4386 100644 --- a/packages/meshbay-client/src/main.js +++ b/packages/meshbay-client/src/main.js @@ -2168,8 +2168,11 @@ Its log: ${nodeLogHint()}`); // other had just started. if (nodeWithAppStart) await nodeWithAppStart.catch(() => {}); if (nodeEnsuring) await nodeEnsuring.catch(() => {}); + // `takeOver`: the Node page's "use this node for my account", for a node + // set up for another account -- which is running, as that account, and + // must be switched and restarted all the same. const already = await probeNode(); - if (already && already.status === 'running') { + if (already && already.status === 'running' && !(opts && opts.takeOver)) { return { started: true, ...already }; } |