mirror of
https://github.com/gadgethd/ukmesh.git
synced 2026-09-04 14:23:43 +00:00
- split backend API into route/service/repository boundaries across stats, owner, and pathing\n- extract shared API bootstrap and helper modules\n- reduce MapLibreMap into smaller frontend map modules with extracted builders, config, popup UI, and types\n- continue worker modularization by extracting RF terrain/tile helpers alongside RF config and loss helpers\n- add repo-local architecture, DB lifecycle, link model, pathing, frontend map, and contributing docs\n\nThis is the verified refactor checkpoint: backend and frontend builds passed, worker syntax checks passed, affected containers were rebuilt, and /healthz is OK.
1.0 KiB
1.0 KiB
Link Model
Purpose
node_links represents the physical or physically-rated link graph used by the map and the path resolver.
Evidence layers
The model distinguishes between:
- physical feasibility
- terrain
- path loss
- LOS tolerance
- radio-neighbour evidence
- repeater-reported neighbour quality
- packet evidence
- strongest: multibyte path evidence
- weaker: generic packet observation
Worker ownership
The worker computes:
- terrain profile
- total path loss
- viability
- coverage polygons
Relevant files:
viewshed-worker/rf/config.pyviewshed-worker/rf/loss.pyviewshed-worker/rf/terrain.pyviewshed-worker/worker.py
Practical tuning knobs
LINK_LOS_MAX_VDEFAULT_USABLE_PATH_LOSS_DB- calibration controls in
rf/config.py - frontend display bands in
frontend/src/components/Map/mapConfig.ts
Contributor rule
Do not treat packet observation counts as if they are the same thing as physical feasibility. If a change affects topology definition, make sure the evidence class is explicit.