Skip to content

Add optional attributed repeater telemetry and availability filtering for dev1 - #185

Draft
n30nex wants to merge 32 commits into
dev1from
codex/release-telemetry-20261021
Draft

n30nex wants to merge 32 commits into
dev1from
codex/release-telemetry-20261021

Conversation

@n30nex

@n30nex n30nex commented Oct 21, 2026 •

Copy link
Copy Markdown
Collaborator

This is the optional collected-telemetry layer above core #182/#183. It integrates #180 while preserving current upstream virtualization, exact pagination, retry/error behavior, basic Atlas and the enhanced Topology renderer.

Nodes gains an on-demand availability filter keyed by full repeater identities. Node details and Atlas show attributed battery and environmental readings, retaining channel 2 and explicit zeros. Sparklines distinguish measured segments from gap estimates. A capped history is labeled rather than presented as a complete 30-day series; legacy capped responses are handled conservatively. Optional-service failure remains visible and retryable.

Targeted telemetry/filter/coverage tests and build passed. Current native CI and the paired public preview checks pass; fresh browser/device qualification remains pending. The intake remains optional for all core views. No physical mobile polling or overnight background qualification is claimed by web tests.

This dependent branch contains core ancestry until core is accepted. Review optional changes against codex/release-core-20261021. No production deployment or review request is made by this draft.

This target presents the same optional head against dev1; the core migration/client integration must be qualified first.

Current qualification and promotion gates - 23 October

The full project roadmap, issue/PR disposition and staged promotion plan are in docs #43, tracked by docs #45. Core server #266/#267 and web #182/#183 are one paired candidate; optional server #268/#269, web #184/#185, docs #44 and Flutter #11 remain a separate rollout.

Current application heads pass native CI. Canadaverse now runs server 054e08de7d7fd581e55544e0326ca92596b9a990 and web 8dcb7f2f233c8ac4086c1ebe02f81d348630321b (2.5.1-n30nex.1), including preview extras. Its complete native frontend suite passed 1,560 tests in 172 files. Public verification matched all 34 assets and both source archives, with both MQTT brokers connected, six retained telemetry histories, and invalid-signature/unenrolled submission rejection. Preview artifacts are local builds of exact clean native-CI-qualified source; this is not a stable release.

On a restored snapshot, the committed global Topology query median improved from 1.3691 s to 0.9836 s (28.2%), with the same 9,975 edges. All six unique-traffic raster cases retained identical pixels. These are query/CPU-raster checks, not browser/GPU FPS or production throughput measurements. The later public 24h sample returned the same 9,346 links in 5.619 s cold and 0.191 s warm; earlier severe shared-host I/O pressure caused timeouts. Cold-load capacity, target-browser/device checks and production-shaped migration/recovery soak remain acceptance gates.

Production/dev/dev1 were inspected read-only. Dev1 services are stopped. This preview update changed no schema, retention, intake/worker, credentials or radio ownership. Prior restored-database qualification is recorded separately; no fresh browser or physical mobile/background qualification is claimed here. Dependency advisories and the separate Vite #186 candidate still need their own resolution and qualification. No org merge or release approval is implied.

Review the optional-only delta: codex/release-core-20261021...codex/release-telemetry-20261021 . This PR retains its requested dev1 target.

n30nex and others added 28 commits October 13, 2026 03:57
…171)

* Add live map lit-node and label helpers

* Add solid lit icons with a built-in ring

* Light crossed nodes as solid icons, newest on top

* Show idle repeaters and companions as dots in Live Map

* Disable the clustering control during Live Map

* Turn clustering off while Live Map is on

* Keep the live map helpers lint-clean

* Let a click on a lit icon win over the dot beneath it

* Tidy live map clicks, comments and filtered selection
* Speed up the Nodes table: mount only on-screen rows and sort with a shared collator

* Fit the Nodes table beside the detail panel and tidy virtualization

Name takes a 22% share and the table's floor drops to 52rem, so 1280 and
1366 px laptops no longer scroll sideways with a node open. Long names get
a title. Card dividers follow list position so heights stay put, cards and
rows cache sizes apart, getItemKey stays stable, and the table reports its
full row count to screen readers. Tests share one layout stub instead of a
global offsetHeight shim.
Chrome on macOS lays an emoji out 1em wide but paints Apple's about 1.25em
wide at small sizes on standard-density screens, so it overlapped the next
letter (☠️Grunt, 🍓Strawberry). Each emoji in a node, observer or sender
name, and in channel messages, now sits in its own span that gets 0.3em of
extra room below 1.5x density. Retina screens render unchanged.
Map and Nodes fetch a region at the server's 200 cap instead of 50, a
quarter of the requests. A 429 now pauses paging until Retry-After and
retries the refused page, instead of stopping with "Some nodes failed to
load".
* Send pageCursor next to cursor for packets, nodes and observers

* Page nodes by the exact cursor when the server sends one

* Page packets by the exact cursor when the server sends one

* Retry a busy 503 or a 429 after the server's Retry-After

* Bump version to 2.1.0

* Recover from an invalid pageCursor; cap 503 waits
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.

2 participants