Panels become devices: per-device documents in the flow repo, a Devices tab

- flow/devices.py: DeviceDef in FLOWS_DIR/_devices/<id>.json, committed under
  the flow store's write lock, 409 on a stale version; nonces in DEVICES_FILE
  outside git; in-memory presence announced as device_status
- api/routes/devices.py: CRUD, pairing with an optional {name, board,
  firmware}, a pending list adopted without a code from the LAN only, unpair;
  /panels/pair, /panels/pair/{code} and GET /panels/{id} kept as aliases,
  PUT /panels/ gone
- _device_may replaces _panel_may, JWT claims unchanged
- panels.json moves into devices once at startup, then .migrated
- MCP list_devices, get_device; search category device
- Devices tab (list, detail with presence, pairing, ordered dashboards,
  touch, I/O), PanelsDialog removed, serialised optimistic saves
This commit is contained in:
Melvin Strobl
2026-10-16 15:48:36 +02:00
parent 3c0912a3fe
commit 28a565e501
56 changed files with 3539 additions and 2404 deletions
+4 -3
View File
@@ -13,7 +13,8 @@ The sidebar opens as a sheet on phones.
|---|---|
| **Home** | see the brain graph, health and recent activity |
| **Flows** | create flows and open their editors |
| **Dashboards** | build widget dashboards and pair wall panels |
| **Dashboards** | build widget dashboards |
| **Devices** | pair wall screens and choose the dashboards each shows |
| **Runs** | start batch runs and review their results |
| **Workers** | manage machines that execute nodes |
| **Secrets** | store credentials; superusers only |
@@ -29,7 +30,7 @@ the docs in another tab.
### Search
Use **Search**, or ⌘K / Ctrl-K, to find flows, nodes, flow inputs and outputs,
dashboards, widgets, panels, secrets, modules, workers and alert channels.
dashboards, widgets, devices, secrets, modules, workers and alert channels.
Selecting a result opens its editor or settings.
Search covers the current instance. When connected through a portal,
@@ -91,6 +92,6 @@ Light and dark follow your system by default. Change this under
## Next stops
- [The flow editor](flow-editor.md)
- [Dashboards and panels](dashboards.md)
- [Dashboards and devices](dashboards.md)
- [Secrets, modules and alerts](operations.md)
- [Accounts and the portal](portal.md)