fix(adminui): Request-rebirth cannot be armed on a Sparkplug plant that has not birthed since the browse window opened #514

Open
opened 2026-07-27 13:51:16 -04:00 by dohertj2 · 0 comments
Owner

The browse tree is birth-driven: it is built from the births observed since the browse session opened. On a
quiet plant — every edge node already birthed long ago and is publishing only NDATA/DDATA — the tree comes up
empty, and Request rebirth… is scoped from a tree selection, so the one action that would populate the tree
cannot be armed. Chicken-and-egg.

The session side is already capable. RequestRebirthAsync accepts a bare {group}/{edgeNode} scope — it
does not require a selected device or metric. What is missing is a way for the operator to express that scope
when there is nothing in the tree to select.

Fix sketch. Let the operator type/choose an edge-node scope (or offer a broadcast to the configured
groupId) when the tree is empty, rather than gating the button on a tree selection. A group-wide rebirth is
noisy on a large plant, so prefer an explicit edge-node entry over a blanket broadcast, or warn before it.

Related: #510 (the button's enablement is also captured once, at browse-open).

Acceptance. Against a simulator that birthed before the browse window opened, an operator can request a
rebirth and see the tree populate — without restarting the simulator or the driver.

The browse tree is **birth-driven**: it is built from the births observed since the browse session opened. On a quiet plant — every edge node already birthed long ago and is publishing only NDATA/DDATA — the tree comes up empty, and *Request rebirth…* is scoped from a tree selection, so the one action that would populate the tree cannot be armed. Chicken-and-egg. **The session side is already capable.** `RequestRebirthAsync` accepts a bare `{group}/{edgeNode}` scope — it does not require a selected device or metric. What is missing is a way for the operator to *express* that scope when there is nothing in the tree to select. **Fix sketch.** Let the operator type/choose an edge-node scope (or offer a broadcast to the configured `groupId`) when the tree is empty, rather than gating the button on a tree selection. A group-wide rebirth is noisy on a large plant, so prefer an explicit edge-node entry over a blanket broadcast, or warn before it. Related: #510 (the button's enablement is also captured once, at browse-open). **Acceptance.** Against a simulator that birthed before the browse window opened, an operator can request a rebirth and see the tree populate — without restarting the simulator or the driver.
dohertj2 added the driver/mqtt label 2026-07-27 13:51:16 -04:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dohertj2/lmxopcua#514