Traversal v1 (3/4): metagraph traverse and the experimental /resolve and /traverse routes
Third of four stacked PRs for labeled traversal, on #709.
server_query --experimental-traverse serves three routes on one index: POST /resolve, POST /traverse and GET /traverse/capabilities. Without the flag they do not exist. metagraph traverse [--resolve] runs the same requests from a JSON file. Requests are strict: an unknown field is a 400. --traverse-max-seeds, --traverse-max-time-ms and --traverse-max-seed-bp bound a request.
test_mini_refseq and traverse_parity.py run in a new CI job on the published mini RefSeq index (42 records, pinned checksum). The parity script compares the responses with recorded answers of Gunnar's prototype.
Compared with the prototype's routes, /resolve has no select.policy, candidates or selection counts, and /traverse takes the strategy fields that the staging walk preset sets.
Co-authored-by: Gunnar Rätsch
🤖 Generated with Claude Code