Files
neuron-tai/.scratch/routing-compatibility-regression/issues/01-legacy-registration-precision-fallback.md
2026-07-13 10:27:45 +03:00

2.9 KiB

RCR-001 — Legacy registration precision fallback

Status: ready-for-agent Priority: Critical

Problem

The tracker now filters proxy and pinned-route candidates through _quantization_satisfies(node.quantization, requested_quantization). A registration produced before the protocol added singular quantization is normalized to quantizations=["bfloat16"], but leaves node.quantization is None; routing then fails every request, including the default bfloat16 request.

The defect is therefore at protocol normalization: registration correctly records an available plural capability but never chooses a compatible active precision for the legacy entry.

This is inconsistent with the explicit capability admission rollout policy: an absent capability report is routable under compat. Logs show capability=absent routable=True, while /v1/chat/completions returns 503 or a pinned route returns 409 because the separate precision gate excludes the same legacy node.

Evidence

Representative tight repros fail on current master:

  • tests/test_billing_ledger.py::test_proxy_chat_bills_credited_client_and_credits_node → HTTP 503
  • tests/test_tracker_routing.py::test_tracker_proxy_accepts_hf_model_alias_from_quickstart → HTTP 503
  • tests/test_manual_route_benchmark.py::test_pinned_route_uses_named_node → HTTP 409
  • tests/test_model_speed_latency.py::test_tracker_records_increasing_hop_latency_for_model_and_hardware → HTTP 409 for every parameter

Each fixture registers a complete, healthy legacy node without quantization; tracker registration logs show it as routable under compat.

Acceptance criteria

  • Legacy nodes omitting the quantization field are treated as the historical default precision for compatibility purposes.
  • Explicit null, invalid, or unsupported declared precision never receives that fallback and remains excluded from routing, assignment, and coverage calculations, including after managed shard assignment/rebalancing.
  • Raft replication preserves singular quantization and plural quantizations; follower routing has identical precision eligibility to the leader.
  • capability_policy=enforce still excludes absent capability reports regardless of precision fallback.
  • Automatic proxy routing, pinned routes, benchmark routes, and route-stat sampling use the same compatibility rule.
  • Add behavior-level tracker HTTP tests for legacy omission and explicit invalid declaration.
  • Targeted billing, routing, benchmark, model-speed, pricing, forfeiture, and TOPLOC dispatch tests pass.
  • Run the full suite and document any failures not caused by this issue.

Implementation notes

Keep the compatibility decision at the protocol-normalization boundary, not scattered into individual route paths. A normalized legacy default can preserve existing _quantization_satisfies semantics while differentiating an omitted field from an explicitly invalid value.