Skip to content

feat(packets): connect retained reports to observers and path maps - #83

Open
n30nex wants to merge 6 commits into
MeshCore-Beacon:devfrom
n30nex:codex/beacon-packet-investigation
Open

n30nex wants to merge 6 commits into
MeshCore-Beacon:devfrom
n30nex:codex/beacon-packet-investigation

Conversation

@n30nex

@n30nex n30nex commented Sep 27, 2026 •

Copy link
Copy Markdown
Contributor

Adds a compact Reception evidence section to the packet analyzer. It groups retained reports by complete path bytes and hash width, keeps the selected group open, and links each report to observer inspection and its own map. Copied packet links retain the report selection; invalid/expired selections are explicit instead of silently switching reports. The primary packet → observer dashboard → Back journey preserves packet, report and filters. New/revised controls are English/French.

The map now uses only uniquely resolved valid locations, breaks lines at unresolved/unlocated gaps, and suppresses live animations across uncertain chains. This intentionally draws fewer speculative paths. Stale map selections no longer fall back to all paths, and shared-link restoration cannot borrow another packet's pending analyzer detail. Packet labels use the existing Noto Sans font stack. TRACE intended routes and raw-prefix grouping are explicitly distinguished from proven physical routes or delivery.

Closes #82; related #12 remains partial. Depends on #81 at 2f76286ec89c81db0345937b8c1712f363bd2e43. Focused diff.

No server migration, endpoint, dependency or per-report fetch loop is added. Known-route-to-retained-packet evidence needs the next bounded API slice; arbitrary overlay-to-dashboard return contexts beyond the canonical packet URL remain a later navigation slice. The current review candidates stay in the Pi composition; maintainers control merging and production release.

Original feature validation before this base refresh: native Pi build/lint and all 906 tests (103 files) pass; Windows build/lint and focused regressions pass. That feature candidate was deployed to the Pi preview, with verified public index/assets/source, both MQTT feeds connected and all 23 containers unchanged. Prior web 42ae09b7 is retained for frontend rollback. Exact-head build CI passes; upstream web CodeQL remains skipped. Focused regression tests cover grouping/width/missing paths, unavailable selections, compact rendering, packet/observer Back, shared-link races, map gaps and candidate ambiguity. Desktop and 390px phone checks cover both languages, keyboard activation and actual clipboard paste. External basemap emoji-glyph/sprite fallback warnings were observed; packet overlays render and application errors were not captured.

AI-assisted implementation under n30nex's approved plan and standing project authorization; no specific human review of this new diff is claimed.

Current integration (28 September): the queue is refreshed onto accepted web dev 17f48fb9. Parent 2f76286ec89c81db0345937b8c1712f363bd2e43, published head 0787e5b5fdb1d8d47aefcbb20e816ba280a2ebe2. Focused diff. Build/lint/tests pass for this refreshed tree and actual-head build CI passes (repository CodeQL skipped). The full web composition 6b688495 is now deployed on Pi server 2ed2e031, retaining every candidate. Its native build/lint and all 935 tests pass; all 18 public assets and both source archives match. Web assets are byte-identical to the previously geometry-tested build; fresh English desktop/French phone and Public-message packet inspection pass. Current evidence and recovery. Earlier feature-specific validation above is historical. No feature behavior changed in this base refresh.

@n30nex

n30nex commented Sep 27, 2026

Copy link
Copy Markdown
Contributor Author

@MrAlders0n, please review this packet-investigation slice with Claude at 1d5d65e. It follows #81; the focused parent-to-head diff is in the PR description. Closes #82 when accepted; #12 remains partial.

The exact candidate passes all 906 tests natively on the Pi, build/lint and current-head build CI. It is live at https://canadaverse.org/beacon-dev/?tab=Packets with updated changelog/source. Existing server #166/#167/#169 and web #75/#79/#80/#81 remain included. Frontend publication preserved all 23 containers and retained web 42ae09b for rollback; no backend/database change or production switch.

Please pay particular attention to the evidence boundaries: equal path prefixes are not confirmed physical routes; TRACE uses intended-route wording; the map no longer chooses arbitrary ambiguous candidates or bridges unresolved locations. This deliberately shows fewer speculative lines/animations. Packet→observer dashboard→Back and selected packet/path share links passed real desktop/390px phone, English/French and keyboard checks. External basemap emoji/sprite fallbacks remain a known limitation.

The shared roadmap in docs #5 now puts the bounded known-route-to-retained-packet/report API next, after review feedback. Broader overlay return navigation is a later slice; the MeshMapper scope catalogue remains a separate draft pending its API contract.

@n30nex
n30nex force-pushed the codex/beacon-packet-investigation branch from 1d5d65e to 0787e5b Compare September 28, 2026 22:38
@MrAlders0n

Copy link
Copy Markdown
Member

Good change. Only drawing a hop when it resolves with high confidence to a single located node is the right call. One regression:

  • App.tsx:206 + PacketAnalyzerDrawer.tsx:325-326: once ?observation= is in the URL it takes priority over selectedObservationId, but choosing a report in the expanded row only sets state. Steps: Inspect report C, close the drawer, click report D in the row. The drawer reopens on C while the row highlights D. Please write or clear observation when a report is picked in the row, and add a test.

Minor:

  • packet-path.ts:227: in a hop sequence A, ?, A, B the gap flag isn't cleared, so the real A–B segment is dropped. It fails safe, just noting it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Connect packet reception evidence to observer and selected-path investigation

2 participants