mirror of
https://github.com/ipnet-mesh/meshcore-hub.git
synced 2026-08-07 01:13:11 +02:00
chore(routes): default packet_count_threshold=5 and clear multiplier=3x
Change the new-route defaults so the create modal, REST API, YAML import, and preview helper pre-fill packet_count_threshold=5 instead of 3, and bump the effective-clear auto-multiplier from 2x to 3x so the default comfort bar tracks to 15 for a default threshold of 5. Schema/model/cli/preview: - schemas/routes.py: RouteCreate + RoutePreviewRequest packet_count_threshold default 3 -> 5 (clear_threshold stays None) - models/route.py: Route INSERT default 3 -> 5 (clear_threshold stays nullable, no default) - collector/cli.py: YAML import fallbacks 3 -> 5 - collector/routes.py: preview helper fallback 3 -> 5; module constant CLEAR_DEFAULT_MULTIPLIER 2 -> 3 (drives effective_clear_threshold) - api/metrics.py: route_clear gauge help text 2x -> 3x UI: - web/spa/pages/routes.js: new-route modal pre-fills packet_count_threshold=5; placeholder shows 3x threshold; parseInt fallback 3 -> 5. clear_threshold field unchanged (clearing still sends null for the auto-tracking behaviour). Docs: - docs/routes.md defaults table: window_hours 24->48, threshold 3->5, clear (2x)->(3x), max_hop_span (unlimited)->8. Previous four entries now match the shipped defaults (some were stale from #316). - docs/seeding.md YAML example: window_hours 24->48, threshold 3->5, commented clear_threshold example 10->15 with 3x note. No migration: packet_count_threshold uses Python-side default= (no server_default), so existing rows keep their stored values. Existing routes with clear_threshold=NULL continue to track via the new 3x multiplier at evaluation time.
This commit is contained in:
+4
-4
@@ -17,10 +17,10 @@ Each route carries these knobs:
|
||||
| Field | Default | Description |
|
||||
| --- | --- | --- |
|
||||
| `match_width` | `1` | Path-hash prefix width in bytes (1/2/3). Higher widths disambiguate nodes that share a short public-key prefix. |
|
||||
| `window_hours` | `24` | Rolling lookback window for the live status card. |
|
||||
| `packet_count_threshold` | `3` | Distinct matching packets at/above which the route is `healthy`. "Distinct" is per underlying event, not per transmission — see [How health is evaluated](#how-health-is-evaluated) above. |
|
||||
| `clear_threshold` | _(2× threshold)_ | Comfort bar for the `clear`/`marginal` split. Omit/null to use twice the threshold. |
|
||||
| `max_hop_span` | _(unlimited)_ | Caps the position gap between the first and last matched node, to reject matches that wander too far. |
|
||||
| `window_hours` | `48` | Rolling lookback window for the live status card. |
|
||||
| `packet_count_threshold` | `5` | Distinct matching packets at/above which the route is `healthy`. "Distinct" is per underlying event, not per transmission — see [How health is evaluated](#how-health-is-evaluated) above. |
|
||||
| `clear_threshold` | _(3× threshold)_ | Comfort bar for the `clear`/`marginal` split. Omit/null to use three times the threshold. |
|
||||
| `max_hop_span` | `8` | Caps the position gap between the first and last matched node, to reject matches that wander too far. |
|
||||
| `reversible` | `true` | Also match the path in reverse direction. |
|
||||
| `enabled` | `true` | When `false`, the route is skipped by the evaluator and reports `unknown`/`no_coverage`. |
|
||||
|
||||
|
||||
+3
-3
@@ -126,9 +126,9 @@ routes:
|
||||
description: A140 corridor route
|
||||
visibility: community
|
||||
match_width: 1
|
||||
window_hours: 24
|
||||
packet_count_threshold: 3
|
||||
# clear_threshold: 10 # optional; omit/null = 2x threshold
|
||||
window_hours: 48
|
||||
packet_count_threshold: 5
|
||||
# clear_threshold: 15 # optional; omit/null = 3x threshold
|
||||
# max_hop_span: 8 # optional; omit/null = unlimited
|
||||
enabled: true
|
||||
reversible: true # match both directions (A->B and B->A)
|
||||
|
||||
Reference in New Issue
Block a user