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>
868 B
868 B
US-020 — Tracker + node hardening: BrokenPipe fix, deterministic node IDs, HF coverage
Status: done Priority: High Stage: Maintenance
Context
First two-machine LAN test (US-018) exposed three reliability issues:
BrokenPipeErrorcrash in tracker_send_jsonwhen a slow-inference client disconnected mid-response- Random UUID node IDs meant every re-registration (after tracker restart) created a phantom entry
GET /v1/coverage/<model>returned no results when called with a short name (Qwen2.5-0.5B) instead of the full HF repo ID
Acceptance criteria
BrokenPipeErrorin tracker and node_send_jsonis silently swallowed- Node IDs are deterministic:
sha256(wallet_address + str(port))[:16] GET /v1/coverage/<model>accepts both short names and fullowner/repoIDspython -m pytestpasses from repo root