v3.17.0
24 commits since v3.16.0: 11 fix, 5 docs, 4 feat, 2 test, 1 ui, 1 chore. Four feats, so
minor not patch.
A smaller release, mostly fixes for things operators reported on v3.16.0: map markers
that disappeared after a saved map position, an arm64 Docker build that failed, and a
Channels header that covered the list on phones. The new features are optional: a UI on
another origin can talk to the server, the map shows the historical foreign-advert flag,
map links can open a chosen path view, and the Coverage page can point visitors at your
CoreDrive RX deployment.
Read this before upgrading
Nothing to configure and no migration: the databases are not touched. One change is
visible without being asked:
Neighbour reports hide the nodes you hide everywhere else
An observer's neighbour report on its detail page listed every neighbour by name, also
nodes that nodeBlacklist or hiddenNamePrefixes hide on every other page (#2357,
closes #2356). It now applies the same rules, so a hidden node is left out of the list.
The reported totals and the stored reports are unchanged.
Fixes you may have run into
- Map shows no markers after a saved position (#2378). A map position saved with a
longitude past ±180° (after panning around the world) put every marker one world-width
off-screen while the tiles looked fine. Saved positions are now wrapped, and an
invalid one falls back to your configured default. Reported in #2375. - Building the image on arm64 failed (#2359). On a Raspberry Pi 4 or 5 or Apple
silicon,docker buildstopped at the first step withexec format error, because
the Dockerfile forced the amd64 build image. The workaround
--build-arg BUILDPLATFORM=linux/arm64is no longer needed. Published images were
not affected. - Channels on a phone (#2382, closes #2381). The header with the region pills
overflowed onto the channel list and covered its first rows. Title and Add are now on
one row and the region pills scroll sideways on a second. - Live node panel (#2283, closes #2233). The status and Last Activity in a node's
panel on the Live page now use its newest certain activity, as the Nodes page does,
instead of only its last advert. - Tablet slide-overs (#2304, closes #2302). The navigation bar covered the close
button of the slide-over panels on tablets. - Observer detail on a narrow screen (#2344, closes #2341). Chart cards no longer
overflow the page. - Type names (#2374, closes #2373). Node analytics, observer detail, compare, nodes
and map now share one list of payload type names, so GRP_DATA no longer shows as
"Type 6". - Timestamps (#2377, #2387). Last Contact in node analytics shows the full
timestamp on hover, and a timestamp in the future (a node with a wrong clock) gets the
same warning icon on the Nodes, Packets and node analytics pages. - Packets page (#2370). A note under the title says the counts come from the
observer reports this instance received, not from the whole network.
Features
- A UI on another origin (#2362). For operators who serve the CoreScope UI from a
different site (a CDN, Cloudflare Pages) against their own server:
corsAllowedOrigins(orCORS_ALLOWED_ORIGINS) accepts a wildcard such ashttps://*.myproject.pages.dev
for preview deployments, matches exact entries case-insensitively, and exposes the
Retry-AfterandX-CoreScope-Load-Statusheaders the UI reads. Nothing changes
unless you set it. Use a wildcard only over a domain you control. - Historical foreign-advert flag on the map (#2371). Nodes whose advert was once
flagged as outside your configured area get a marker and an explanation in their
popup. It says the flag was set at ingestion, not that the node is there now. - Map links that open a path view (#2376).
#/map?packet=<hash>&paths=allopens
the path picker on All, and&observer=<pubkey or 8+ hex prefix>opens it on that
observer's path, so a shared link shows what the sender saw. - Map and packet shortcuts on node details (#2295, closes #2290). The node page,
side preview and tablet slide-over have Open in Map and View packets. - CoreDrive RX link on the Coverage page (#2389). With
clientRxCoverage.enabled,
setclientRxCoverage.appUrlto the https address of your CoreDrive RX deployment and
the Coverage page shows a QR code and link to it. Without it nothing changes; an
invalid value is ignored with one log line at startup.
Documentation
Readiness responses and ingestor liveness in the API docs (#2358), portable and bounded
scheduled-backup examples (#2353, closes #2352), the Docker minimum split into running
and building the image (#2361), route type values in decoded.proto (#2367, closes
#2363), and approved channels being backfilled (#2385).
Tests and CI
A flaky observer-comparison E2E wait (#2343, closes #2342), partial chart construction
failures (#2354), and local worktree folders ignored by git (#2388).
Issues closed
- #2233 Live node detail ignores recent relay and heard activity
- #2290 Map and packet shortcuts in node details
- #2302 Navigation covers tablet slide-over close controls
- #2341 Chart cards overflow narrow observer detail pages
- #2342 Wait for route focus before observer disposal snapshot (test)
- #2352 Make scheduled backup examples safe and portable
- #2356 Neighbour reports expose filtered node identities
- #2363
decoded.protoroute_type comment does not match the decoder - #2373 Payload label drift: GRP_DATA shows as "Type 6"
- #2381 Channels (mobile): sidebar header covers the first channel rows
Contributors
Pull requests: n30nex (15), efiten (3, maintainer), ppicazo, CoderNemesis26, MarekWo,
SaarMesh-Bot, jade-on-mesh and DSMoyle (1 each).
Issues: n30nex (7), DSMoyle, MarekWo and Nursedude (1 each), and hb9tvw for the map
report in #2375.
Upgrade notes
- Created automatically: nothing new.
- Opt-in:
corsAllowedOriginswildcards,clientRxCoverage.appUrl. - Action needed: none.
What's Changed
- docs(api): describe readiness responses and ingestor liveness by @n30nex in #2358
- docs: make scheduled backups portable and bounded by @n30nex in #2353
- test: cover partial observer chart construction failures by @n30nex in #2354
- fix(observers): honour node visibility in neighbour reports by @n30nex in #2357
- fix(docker): build natively on arm64 hosts by @jade-on-mesh in #2359
- test(e2e): wait for comparison focus before disposal assertions by @n30nex in #2343
- docs(proto): correct route_type values to match the decoder (#2363) by @SaarMesh-Bot in #2367
- fix(packets): explain observer-report coverage by @n30nex in #2370
- fix(nodes): show timestamp context for Last Contact by @n30nex in #2377
- fix(ui): route remaining payload label surfaces through payload-labels.js (#2373) by @MarekWo in #2374
- feat(map): deep-link the route path picker by observer or All view by @CoderNemesis26 in #2376
- feat(map): identify historical foreign-advert flags by @n30nex in #2371
- fix(map): normalize saved viewport longitudes by @n30nex in #2378
- feat(cors): let a UI on another origin connect, static host previews included by @ppicazo in #2362
- docs(accounts): approved channels are backfilled since #2133 by @efiten in #2385
- chore: ignore root local worktree directories by @n30nex in #2388
- fix(ui): share timestamp cells and retain future-clock warnings by @n30nex in #2387
- fix(observers): keep charts and controls within narrow pages by @n30nex in #2344
- ui(nodes): add direct map and packet navigation by @n30nex in #2295
- fix/channels-mobile-header-overflow by @DSMoyle in #2382
- docs: split the Docker minimum into running and building the image by @efiten in #2361
- fix(live): show the newest certain node activity by @n30nex in #2283
- fix(ui): keep slide-over close controls above navigation by @n30nex in #2304
- feat(rx-coverage): QR code and link to the operator's CoreDrive RX deployment by @efiten in #2389
- docs(release): v3.17.0 release notes and changelog entry by @efiten in #2390
New Contributors
- @jade-on-mesh made their first contribution in #2359
- @ppicazo made their first contribution in #2362
- @DSMoyle made their first contribution in #2382
Full Changelog: v3.16.0...v3.17.0