diff options
| author | Christophe Besson <cbesson@gmail.com> | 2026-08-13 15:40:06 +0200 |
|---|---|---|
| committer | Christophe Besson <cbesson@gmail.com> | 2026-08-13 15:40:06 +0200 |
| commit | 78639260932dbd679d0de1f3132c645440962f46 (patch) | |
| tree | e6acbfc0219167057eff9c99ddf54ebc5f610ad0 /packages/meshbay-node/src/meshbay_node/ui/__init__.py | |
| parent | 600b698ab0cb9733dabf66f9528a6a868122c4f7 (diff) | |
| download | meshbay-78639260932dbd679d0de1f3132c645440962f46.tar.gz | |
feat(node): keep the daemon alive when the hub rejects credentials
A node whose owner has not registered yet got a plain 401 from /v1/nodes/auth,
which _login_with_retry re-raised — so the daemon exited and took its local
admin UI down with it.
That UI is where the operator reads the node's public key in order to link it,
so exiting strands them: no daemon, no key, no way forward without digging the
keystore open by hand. The daemon already parks on "No node key" for exactly
this reason; it now parks on any 401, reporting waiting_for_account with a
message naming the account and hub, and keeps retrying every 30s.
The intended order remains: register on the hub, install the node, copy its key
from the local UI, paste it into Settings > Link Node. The daemon now survives
being started out of order instead of failing with a traceback.
Adds QE/deploy/ — generic deployment (deploy-hub.sh, deploy-node.sh) kept
separate from the demo scenario (demo.py, demo.env, README.md). Credentials live
in QE/, which is gitignored; verified with git check-ignore.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Diffstat (limited to 'packages/meshbay-node/src/meshbay_node/ui/__init__.py')
0 files changed, 0 insertions, 0 deletions