Files
neuron-tai/.scratch/distributed-inference-network/issues/24-availability-map.md
Dobromir Popov 2b439e8a5f docs: add US-020–029 issue files, ADR 0011–0014, update prd.json to 29/29
Issue files (.scratch/issues/20-29): retrospective specs for all work
done in the current sprint — hardening, route-timeout, start-layer
protocol, heartbeat stats, availability map, rolling RPM, smart
assignment, throughput routing, routing tests, relay outbound client.

ADRs (docs/adr/0011-0014):
  0011 — Auto-shard from memory budget and tracker network assignment
  0012 — X-Meshnet-Start-Layer overlapping shard execution protocol
  0013 — Rolling RPM statistics, smart assignment scoring, throughput routing
  0014 — Relay outbound client for NAT/internet pipeline hops

prd.json: US-020 through US-029 added, all marked done. ralph_progress.py
now shows 29/29 complete (100%).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-30 22:15:41 +03:00

957 B

US-024 — Enhanced availability map with per-node health details

Status: done Priority: Medium Stage: Implemented

Context

GET /v1/coverage/<model> returns band-level coverage (start_layer, end_layer, node_count) but gives no visibility into which specific nodes are in each band or whether they are alive. Operators debugging a split-model deployment need to see node-level health at a glance.

Format decision

Both: band metadata + node list grouped under each band. Dead nodes included with healthy: false so operators can see them.

Acceptance criteria

  • Each band in the response includes nodes: [{node_id, endpoint, healthy, queue_depth, last_seen_s}]
  • healthy is true iff last heartbeat < heartbeat_timeout seconds ago
  • Existing band fields (start_layer, end_layer, node_count) preserved
  • Tests updated to check band fields individually (not exact dict comparison)
  • python -m pytest passes