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>
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user