Skip to content

feat(place/driver_health): include driver processes running on edges - #2

Merged
viv-4 merged 1 commit into
masterfrom
feat/edge-driver-health
Aug 27, 2026
Merged

viv-4 merged 1 commit into
masterfrom
feat/edge-driver-health

Conversation

@viv-4

@viv-4 viv-4 commented Aug 27, 2026

Copy link
Copy Markdown
Owner

A core node already reports the processes on each edge attached to it, in the same responses we were making, but only the local half was being read. So a driver running only on an edge was invisible, and one running on both a node and an edge was reported for the node alone.

Now the union of loaded.local and every loaded.edge entry is walked, and a state is emitted per location a driver runs in, taking memory from status.local or status.edge[edge_id] as appropriate. This costs no extra requests, a single driver status response covers the node and all of its edges.

Edge processes are named <edge id>.<driver>. Results are deduplicated by name, so an edge reported by more than one core node is counted once.

A core node already reports the processes on each edge attached to it, in the
same responses we were making, but only the `local` half was being read. So a
driver running only on an edge was invisible, and one running on both a node and
an edge was reported for the node alone.

Now the union of `loaded.local` and every `loaded.edge` entry is walked, and a
state is emitted per location a driver runs in, taking memory from `status.local`
or `status.edge[edge_id]` as appropriate. This costs no extra requests, a single
driver status response covers the node and all of its edges.

Edge processes are named `<edge id>.<driver>`. Edges aren't queried directly and
the node an edge happens to be attached to isn't part of the path to it, so
neither the edge hostname nor the core hostname belongs in the name. Results are
deduplicated by name, so an edge reported by more than one core node is counted
once.

Not yet exercised against a live edge, the spec covers it with fake core nodes.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@viv-4
viv-4 force-pushed the feat/edge-driver-health branch from fcf1aa0 to 092c56c Compare August 27, 2026 03:13
@viv-4
viv-4 merged commit b9b2d82 into master Aug 27, 2026
@viv-4
viv-4 deleted the feat/edge-driver-health branch August 27, 2026 03:16
viv-4 added a commit that referenced this pull request Aug 27, 2026
)

A core node already reports the processes on each edge attached to it, in the
same responses we were making, but only the `local` half was being read. So a
driver running only on an edge was invisible, and one running on both a node and
an edge was reported for the node alone.

Now the union of `loaded.local` and every `loaded.edge` entry is walked, and a
state is emitted per location a driver runs in, taking memory from `status.local`
or `status.edge[edge_id]` as appropriate. This costs no extra requests, a single
driver status response covers the node and all of its edges.

Edge processes are named `<edge id>.<driver>`. Edges aren't queried directly and
the node an edge happens to be attached to isn't part of the path to it, so
neither the edge hostname nor the core hostname belongs in the name. Results are
deduplicated by name, so an edge reported by more than one core node is counted
once.

Not yet exercised against a live edge, the spec covers it with fake core nodes.

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
viv-4 added a commit that referenced this pull request Aug 27, 2026
) (PlaceOS#628)

A core node already reports the processes on each edge attached to it, in the
same responses we were making, but only the `local` half was being read. So a
driver running only on an edge was invisible, and one running on both a node and
an edge was reported for the node alone.

Now the union of `loaded.local` and every `loaded.edge` entry is walked, and a
state is emitted per location a driver runs in, taking memory from `status.local`
or `status.edge[edge_id]` as appropriate. This costs no extra requests, a single
driver status response covers the node and all of its edges.

Edge processes are named `<edge id>.<driver>`. Edges aren't queried directly and
the node an edge happens to be attached to isn't part of the path to it, so
neither the edge hostname nor the core hostname belongs in the name. Results are
deduplicated by name, so an edge reported by more than one core node is counted
once.

Not yet exercised against a live edge, the spec covers it with fake core nodes.

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant