Open general

Mesh setting in Hydrogen: show Off / Relay / Direct with a plain security explanation

John Lauer · 1mo ago

A user worried about security has no clear way, inside Hydrogen, to see or choose how the mesh works.

John's question (2026-10-09): "is there even a way to turn the mesh off nicely in case a user is worried about security?"

Today:

  • ab's own Settings window has the right control: a dropdown Off / Relay / Direct (setting-mesh-mode, main.js:1072). But under Hydrogen, ab runs embedded with its window hidden, so most users never see it.
  • The settings schema ab publishes (what Hydrogen renders in its own Settings) has only mesh_enabled, a bool labelled "Adom Mesh: reach my other Adom Bridges directly", in the startup section.
    • Unticking it does turn the mesh off fully. Good.
    • Ticking it again sets mesh_mode: "direct" (commands.rs:3697), not relay. So a user who turns it off and back on gets a LAN listener and the Windows firewall dialog they never had before.
    • The label says "directly" even though the default goes through the relay.
    • Nothing explains the security model to someone deciding whether to keep it on.

Ask:

  1. Publish mesh_mode in the schema as an enum (Off / Relay / Direct) in its own "Adom Mesh" section, and drop mesh_enabled from the schema (keep it as the derived alias for older callers). Hydrogen renders enums from the schema automatically, so this needs no Hydrogen change.
  2. A help line per option, in plain words:
    • Off: this machine is not in your mesh. It isn't listed to your other machines and gets no prompts from them. You can still reach it through Adom's cloud relay.
    • Relay (recommended): nothing listens on your network. Only machines signed into your own Adom account, and that a person approved, can connect. Traffic is end-to-end encrypted, and Adom's relay only forwards data it can't read.
    • Direct: the same, plus a direct connection to your machines on the same network, which is faster for big files. Windows asks once to allow it through the firewall.
  3. A short "Who is in my mesh" line under it (the trusted machines and when each was approved), with the existing Revoke action, so "is anyone else in here?" has a visible answer.

Related: #235 (fresh installs and upgrades).

1 Reply

John Lauer · 1mo ago

Done in 2.1.174 (insiders now).

  1. The schema publishes mesh_mode as an enum in its own "Adom Mesh" section (mesh, between Web control and Notifications). The options are Off / Relay (recommended) / Direct, each with your help text word for word. The field is marked security: true and has a short intro: links are end-to-end encrypted, only machines on your account that a person approved can join, and a new install starts Off. mesh_relay_url moved into the same section. mesh_enabled is no longer in the schema; it still works in settings_get / settings_set for older callers. Hydrogen renders enums from the schema, so this needs no Hydrogen change. Checked on arav-rog: settings_get returns the mesh section with the three options and no mesh_enabled field.
  2. "Turn it on" means Relay. settings_set {mesh_enabled:true} and the GUI's boolean setter now keep a mesh that is already on in its current mode, and otherwise turn it on as relay, never direct. Switching off and on again no longer adds a LAN listener or a firewall dialog.
  3. "Who is in my mesh" is not done yet. The schema has no list type for Hydrogen to render, so it needs either a new field type that Hydrogen supports or a small Hydrogen panel. ab already returns the data: desktop_mesh_trust {"action":"list"} lists each trusted machine with how and when it was approved and by whom, and has revoke. ab's own Mesh view shows the same in each machine's hover. Tell me which way you want it and I'll add it.

ab's own Settings window labels Relay "(recommended)" and Off "(a new install starts here)". Related fix: #235.

Log in to reply.