aboutsummaryrefslogtreecommitdiffstats
path: root/packages/meshbay-hub/src/meshbay_hub/static/platform.js
diff options
context:
space:
mode:
authorChristophe Besson <cbesson@gmail.com>2026-09-04 16:50:32 +0200
committerChristophe Besson <cbesson@gmail.com>2026-09-04 16:50:32 +0200
commit13d145253a871ef47ef4344f90566eea21b994ab (patch)
tree60518001aee6966ac4842b6a56bbc429d2315839 /packages/meshbay-hub/src/meshbay_hub/static/platform.js
parent046d847c1b7ba9fcc8e0f3be6e4ff13dac016479 (diff)
downloadmeshbay-13d145253a871ef47ef4344f90566eea21b994ab.tar.gz
fix(client): Stop/Restart buttons and an autostart toggle on the Node page
Root cause of both reports: node:service-status's `installed` field was winAutostartInstalled() -- whether the Startup-folder launcher exists -- not whether the daemon can be managed at all. The Node page gates Stop/Restart on `installed`, so with no autostart configured (the default -- nothing installs it automatically) those buttons silently never rendered, leaving only Start. A perfectly manageable daemon looked unmanageable because a different, unrelated setting was off. installed now reflects the actual daemon binary (findNodeBinary()), same definition node:installed already used; autostart moves to its own field carrying what installed used to mean. That field also fixes the other half: there was no way to turn autostart on except the CLI. NodeServicePanel now shows a toggle-switch next to Start/Stop/Restart, wired through a new platform.node.autostart (install/remove) that mirrors the existing service.* pattern -- the preload/main.js bridge (W3) was already there, just never called from the interface. English and French strings; other locales fall back to English per the project's own stated policy (test_locales.py's own docstring). Verified: node --check on every edited file; hub/node suites green (863 pass, 0 fail — pre-existing test_locales.py encoding failures on this Windows checkout are unrelated, reproduced identically on the clean tree). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Diffstat (limited to 'packages/meshbay-hub/src/meshbay_hub/static/platform.js')
-rw-r--r--packages/meshbay-hub/src/meshbay_hub/static/platform.js19
1 files changed, 19 insertions, 0 deletions
diff --git a/packages/meshbay-hub/src/meshbay_hub/static/platform.js b/packages/meshbay-hub/src/meshbay_hub/static/platform.js
index 78e27eb..b1025c5 100644
--- a/packages/meshbay-hub/src/meshbay_hub/static/platform.js
+++ b/packages/meshbay-hub/src/meshbay_hub/static/platform.js
@@ -263,6 +263,25 @@ export const node = {
return bridge.node.service.restart();
},
},
+ /**
+ * Windows only: run the daemon at sign-in. `service.status()` already
+ * reports the current state as `autostart`; these two just flip it.
+ * `available` gates nothing platform-specific by itself — main.js answers
+ * `{ supported: false }` off Windows, same shape as `service`.
+ */
+ autostart: {
+ available: Boolean(bridge && bridge.node && bridge.node.autostart),
+ async install() {
+ if (!bridge || !bridge.node || !bridge.node.autostart)
+ throw new Error('Node bridge not available');
+ return bridge.node.autostart('install');
+ },
+ async remove() {
+ if (!bridge || !bridge.node || !bridge.node.autostart)
+ throw new Error('Node bridge not available');
+ return bridge.node.autostart('remove');
+ },
+ },
};
/**