2.0 KiB
2.0 KiB
Status: ready-for-agent
04 — Tracker validated-capability registration and routing gate
What to build
Extend Node registration, tracker state, network-map visibility, and route selection so a candidate is eligible only when it presents a successful capability report matching the route Model Artifact and Shard. Treat recipe/backend/capability data as evidence, not a trusted performance assertion. Preserve legacy behavior only through an explicit, documented compatibility policy; no new paid route may rely on an absent proof once admission is enforced.
Code refs:
packages/tracker/meshnet_tracker/server.py—/v1/nodes/register, tracker node state, route selection, network maptests/test_tracker_routing.py— registration and route testspackages/node/meshnet_node/startup.py— registration payload producerdocs/adr/0011-auto-shard-and-network-assignment.md— tracker-owned assignment contextdocs/adr/0013-rolling-stats-smart-routing.md— performance routing context
Test-first
- Red: a node with no/failed/mismatched capability report can register as route-eligible for a model/shard.
- Red: route selection includes a candidate whose report is for a different arbitrary model or shard.
- Green: valid matching candidates route normally; network map exposes only sanitized admission status.
Acceptance criteria
- Registration validates the generic capability-report schema and records sanitized capability state
- Route selection excludes invalid, absent, failed, stale, model-mismatched, shard-mismatched, recipe-mismatched, or catalogue-version-incompatible candidates
- Valid matching candidates retain normal coverage-first and throughput routing behavior
- Network map/operator view exposes an actionable admission state without raw exceptions or secrets
- Protocol compatibility policy for older Nodes is tested and documented
- Deterministic tracker tests cover arbitrary model IDs, not a Qwen fixture
Blocked by
01-generic-capability-report.md, 03-fail-closed-startup-admission.md.