2.2 KiB
2.2 KiB
AD-003: Deepen Tracker request intake without changing control-plane semantics
- Status: needs-triage
- Priority: p1
- Dependencies: AD-001, AD-002
- Evidence: Graphify marks
_TrackerHandleras the highest-degree node (93 edges).do_POSTdispatches auth, accounts, billing, registry, raft, gossip, placement, calibration, model, and inference paths;do_GETmixes operational projections and public request paths. Major handlers include proxy chat (CC 127), registration (CC 82), models (CC 43), and network assignment (CC 42).
Objective
Deepen Tracker request intake around existing domain seams so HTTP dispatch stays thin and request-specific policy no longer leaks across unrelated control-plane workflows.
Constraints
- Preserve ADR-0009: Tracker remains a control plane and public inference proxy, never a model host.
- Preserve coverage-first assignment, billing, admission, relay, telemetry, Raft, and existing endpoint contracts.
- Do not create a speculative adapter: each new seam must have at least two real callers/adapters or remain internal.
Acceptance criteria
- Characterization tests pin all affected public endpoint response and error behavior before moving code.
- HTTP dispatch delegates to cohesive intake modules for inference, node/registry lifecycle, and operator projections.
- Route selection, billing attribution, admission, and coverage logic remain backend-agnostic and do not move into the HTTP module.
_TrackerHandlerno longer owns unrelated endpoint policy directly.- Existing routing, capability-admission, billing, account, and consensus tests retain behavior.
pytesttargeted tests andpython -m compileall packages testspass.
Likely files
- Modify:
packages/tracker/meshnet_tracker/server.py - Potentially modify:
packages/tracker/meshnet_tracker/billing.py,accounts.py,capability.py,recipe.py - Modify/add: focused tests alongside
tests/test_tracker_routing.py,tests/test_tracker_capability_admission.py,tests/test_billing_ledger.py, andtests/test_tracker_consensus.py
Non-goals
No redesign of the Tracker architecture, no public endpoint removal, and no change to backend-neutral provider semantics.