Why the key is a UUID
A monitoring snapshot is an ordered list. If the collector reorders it, the same GPU lands at a different index. A graph keyed by index then shows its neighbor’s history.
The HYTE panel patch keys each device view by UUID where the collector provides one. When a snapshot arrives in a new order, the view moves and keeps its history. Renderer diff.
Reuse, move, remove
The renderer keeps a map of views. For each snapshot it does three things:
- Find or create the view for each device key.
- Move the existing element to the snapshot’s display order and update its readings.
- Remove views whose keys are absent from the snapshot.
Graph state survives a reorder. It does not survive removal. A device that disappears loses its view, and a device that returns gets a new one.
The fallback has a limit
Without a UUID, the key falls back to index plus name. Older or incomplete collector records still render. If the index changes, so does the key, and the view is lost.
Tests
The browser regression creates two simulated GPUs, swaps their order, and checks that the existing nodes follow. It also covers removal, reconnection, unsupported readings, and a single GPU. Each check asserts which view belongs to which device. A test that only counted rendered cards would pass with swapped histories.
The fixture uses simulated RTX 5090 and T400 readings. Patch, tests, and validation limits.