mirror of
https://github.com/gadgethd/ukmesh.git
synced 2026-09-02 09:23:44 +00:00
2.5 KiB
2.5 KiB
Pathing
Purpose
Pathing resolves packet routes into confident relay chains. The production
pipeline (2026-08) is the Viterbi champion (vit_src) from the pathing
experiment: it walks a candidate trellis built from 1-byte hop prefixes and
scores emissions/transitions from seven calibrated signals, including
positional prefix-frequency priors, corridor interpolation, and ITM
terrain feasibility (no hop is placed where line-of-sight physics rules it
out). Measured on the gold holdout set: 97.27% route accuracy / 99.24%
hop accuracy.
Main layers
backend/src/path-beta/- resolver implementation (
resolver.ts) — Viterbi candidate trellis - worker pool
- geometry helpers (terrain-aware arcs)
- fallback logic
- resolver implementation (
backend/src/pathing/- service/repository orchestration for API-facing pathing endpoints
pathingPublicDto.ts— the public DTO projector. Any new resolver field must be added here or the API silently drops it.
backend/src/pathing/pathingService.ts- cache and resolver orchestration
Production behaviour (2026-08-06)
- Slow-mode resolution: packets wait out their propagation window before
the path is finalised (
469c84e), so late observations don't re-shape a settled route. - Physics gates + held-path refinement (
5dd15d9): candidate hops that violate physical feasibility are gated; held paths are refined in place. - Canonical path DTO:
canonicalPathis the authoritative route in API responses; the frontend renders it as blue paths. Path identity colours live-path arcs by the resolved packet (f6f8290). - Terrain-aware live paths + airborne-hop markers (
a76ab1e); live path arcs stay above terrain (7bcabcc).
Evidence priorities
In practice the resolver should rank evidence roughly like this:
- physically plausible link support (ITM/LOS)
- multibyte path evidence
- radio-neighbour evidence
- weaker observational hints
API ownership
backend/src/api/routes/pathing.ts- thin HTTP wrapper
backend/src/pathing/pathingService.ts- cache and resolver orchestration
backend/src/pathing/pathingRepository.ts- DB-backed path history and learning queries
Contributor rule
If a path looks wrong, first determine whether the issue is:
- evidence weighting
- physical graph quality (ITM feasibility)
- ambiguous short-hash matching
- cache reuse
- a missing field in the public DTO projector (
pathingPublicDto.ts)
Do not debug path rendering as if it were a frontend-only problem.