From efb26dd93fa2da0802d4f4355058afdc2915d988 Mon Sep 17 00:00:00 2001 From: Jean-Pierre Martineau Date: Tue, 14 Jul 2026 18:17:18 -0400 Subject: [PATCH] Trace: drop the 8-byte width from the Path width picker MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The path-hash mode is a four-value enum (1/2/3/4-byte routing hashes), so a device's width never resolves above 4 and 8 was only ever a value you could pick by hand. Eight bytes puts 64 bits of every hop's key on the air per hop — airtime we would never spend for collision resistance a LoRa mesh cannot need. Offer the range that is actually useful (1/2/4); the device default still lands inside it. The wire decoder keeps its 1/2/4/8 flag mapping, so received traces addressed at any width still read back. Co-Authored-By: Claude Opus 4.8 --- meshterm/ui/trace_screen.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/meshterm/ui/trace_screen.py b/meshterm/ui/trace_screen.py index bb3d71d..32c9086 100644 --- a/meshterm/ui/trace_screen.py +++ b/meshterm/ui/trace_screen.py @@ -35,8 +35,8 @@ whatever you make it, and nothing transmits until you say so. An action list dri alternatives). Adopt one directly — or probe them all, one measured trace per candidate, persisted as ``path_candidates`` rows and ranked reliability-first, with the winner offered for adoption. Evidence proposes, measurement decides, you dispose. -* **Path width** floats a small dialog picking the per-hop path-hash width (1, 2, 4, - or 8 bytes — the leading key slice forced hops are addressed by). It seeds from the +* **Path width** floats a small dialog picking the per-hop path-hash width (1, 2, or + 4 bytes — the leading key slice forced hops are addressed by). It seeds from the device's routing width; changing it re-renders a standing forced path at the new width and shapes every spec the composer and explorer emit after it. * **Sample count** floats a dialog picking how many traces one Trace action runs @@ -1317,7 +1317,7 @@ async def _open_session(ctx: "AppContext", target: Optional[str]) -> int: nonlocal width_bytes sample = (target_hash or device_hash or "").lower().removeprefix("0x") items: list = [] - for w in (1, 2, 4, 8): + for w in (1, 2, 4): title = Text(f"{w} byte{'s' if w > 1 else ' '}") if sample: title.append(" ")