Afri
2d4bb23b5a
web: route-labelled requests, scrape-time node series, true node count ( #1034 )
2026-10-11 11:54:55 +02:00
Afri
bf5225359d
web: the node overlay reads roles from the dashboard's node registry ( #1033 )
2026-10-11 11:05:54 +02:00
Afri
260c229fcd
web: canonical aggregate windows, rx_time predicates, bounded keys ( #1038 )
2026-10-11 10:56:53 +02:00
Afri
fe51353f93
data: debug capture keeps metadata only and rotates ( #1032 )
2026-10-11 10:56:01 +02:00
Afri
5edf941a4c
web: map tooltips build on open, one shared segmenter ( #1031 )
2026-10-11 08:40:38 +02:00
Afri
9dbd027d5f
web: bound the Meshtastic payload decoder per request and process ( #1027 )
2026-10-11 08:35:12 +02:00
Afri
1333967f2f
web: the node filter repaints once typing pauses ( #1030 )
2026-10-10 18:48:33 +02:00
Afri
91a4bb7d7d
web,data: bound neighbor and trace lists, coordinates, and odd sections ( #1028 )
2026-10-10 18:41:30 +02:00
Afri
cbf88a39e4
web: atomic instance rows, crawl survives bad entry, keyfile fails loud ( #1029 )
2026-10-10 16:48:48 +02:00
Afri
1bffd87ede
web: a reused packet id never rewrites another node's rows ( #1026 )
2026-10-10 16:48:35 +02:00
Afri
f69b711aa9
web: CSP and referrer policy, pinned scheme, scrubbed capture env ( #1025 )
...
* web: CSP and referrer policy, pinned scheme, scrubbed capture env
* web: inline script finder matches any case and end-tag form (CodeQL)
2026-10-10 16:40:51 +02:00
Afri
e3333693fb
data: MeshCore contacts post once per connect ( #1024 )
2026-10-10 11:00:43 +02:00
Afri
7986742ad6
web: one Log line anatomy, kind words, folded bursts ( #1022 )
...
* web: one Log line anatomy, kind words, folded bursts
* web: one visible-text helper for the Log tests (CodeQL)
2026-10-09 12:53:23 +02:00
Afri
fa8bb0f44c
web: nodes table and static pages fit phones with long words ( #1021 )
2026-10-09 09:08:27 +02:00
Afri
f333f653fd
web: banner and meta row keep the gutter, one footer row on desktop ( #1020 )
2026-10-08 23:42:08 +02:00
Afri
d9a459b6d5
data: MeshCore scope table adds five German community regions ( #1016 )
2026-10-08 23:35:07 +02:00
Afri
949821d7f3
chore: remove the Flutter app and its CI ( #1015 )
2026-10-08 20:51:52 +02:00
Afri
488f4c0f49
web: quiet map legend, themed zoom, role words, one overlay chrome ( #1014 )
2026-10-08 18:18:44 +02:00
Afri
f4daac7b8d
chore: bump version to 1.0.0 ( #1011 )
2026-10-08 17:15:16 +02:00
Afri
ff278b6147
web: honour hidden, 44px touch targets, focus ring, named live toggle ( #1009 )
2026-10-08 17:14:52 +02:00
Afri
a8fe2962c0
web: unpin the phone footer, list pages in the menu, fix banner/header ( #1013 )
2026-10-08 17:14:31 +02:00
Afri
6fad2c81c1
web: chat lines lead with the time and text; tidier tab bar and panel ( #1012 )
2026-10-08 17:14:06 +02:00
Afri
b06238119a
web: put table units in headers, align node views, fit phones ( #1010 )
2026-10-08 17:13:39 +02:00
Afri
ddae287ee6
data: keep snapshot node ages when the radio clock is off ( #1007 )
...
* data: keep snapshot node ages when the radio clock is off
* data: add the snapshot clock unit tests left out of the first commit
2026-10-08 15:55:12 +02:00
Afri
d11e84862d
web: draw the page chrome from one grey family of tokens ( #1008 )
2026-10-08 15:47:08 +02:00
Afri
86c7f52a69
data: keep CodeQL off a blank UDP group and a test channel name ( #1006 )
2026-10-08 15:41:08 +02:00
Afri
6c9e0bad52
data,web: queue uploads per instance and retry each on its own ( #1005 )
2026-10-08 15:39:44 +02:00
Afri
7c82ff655c
web: hide the unverified marker, show ?? for unknown scope, space legend ( #1004 )
2026-10-08 12:32:47 +02:00
Afri
0a9764e3f7
data: lock mesh.sh venv installs and skip pip when nothing changed ( #1003 )
2026-10-08 12:25:48 +02:00
Afri
7426276964
data: log why a Reticulum ingestor hears nothing; close failed connects ( #1002 )
2026-10-08 12:25:31 +02:00
Afri
438596c6d2
data: name MeshCore flood scopes from a built-in region table ( #1001 )
2026-10-08 10:14:15 +02:00
Afri
1dbcdc3606
web: fetch each federation peer once per crawl and cooldown ( #1000 )
2026-10-08 00:35:43 +02:00
Afri
49323d3809
data: let operators limit which hosts may send UDP packets ( #995 )
2026-10-08 00:35:19 +02:00
Afri
cc75dd0088
web: sandbox the OG capture and harden frontend escaping and lookups ( #994 )
2026-10-08 00:35:02 +02:00
Afri
597dda7357
web,matrix: mark name-matched MeshCore senders as unverified ( #999 )
2026-10-08 00:34:44 +02:00
Afri
e52797a78b
web: serve no row of a hidden client in private mode ( #993 )
2026-10-08 00:34:26 +02:00
Afri
95ff69f6cb
web,data: cap ingested strings by column and check node ids ( #997 )
2026-10-08 00:34:08 +02:00
Afri
5e0deb8a46
data: check MeshCore RX-log adverts against their signatures ( #996 )
2026-10-08 00:33:48 +02:00
Afri
3a07231e6e
data,web: bind node rows to their key and records to their sender ( #998 )
2026-10-08 00:33:21 +02:00
Afri
501662ab58
data,web: use the receive time when the radio clock is off; cap battery ( #987 )
2026-10-07 10:59:50 +02:00
Afri
586545fa4b
data,web: put the Reticulum host on the map from its RNS config ( #991 )
2026-10-07 10:59:33 +02:00
Afri
861379b4c8
web: check relayed federation records against the domain's key ( #989 )
2026-10-07 10:59:16 +02:00
Afri
db792318a3
web: keep federation peers for 7 days; pin 24-hour counts ( #990 )
2026-10-07 10:58:52 +02:00
Afri
53f36fe697
web: stack the Reticulum legend group under MeshCore ( #986 )
2026-10-07 10:58:34 +02:00
Afri
eae3f75162
web: keep map overlays open and repaint only what changed ( #881 ) ( #988 )
2026-10-07 10:57:58 +02:00
Afri
aeabeec7e3
web: keep the chat reader's place across live refreshes ( #881 ) ( #992 )
2026-10-07 10:57:25 +02:00
Afri
bc92cb5ab7
web: keep nodes-table rows and their state across live refreshes ( #881 ) ( #985 )
...
* web: keep nodes-table rows and their state across live refreshes (#881 )
* web: keep the test DOM parser's tag regex linear
2026-10-07 10:57:02 +02:00
Afri
1aaee489d2
web: scope Reticulum destination counts and floor /api/destinations ( #982 )
2026-10-06 18:45:23 +02:00
Afri
9f988d2d90
data,web: capture MeshCore message path, RSSI and scope ( #765 ) ( #984 )
2026-10-06 18:41:35 +02:00
Afri
88900e6689
web: list only protocols in view in the map legend ( #983 )
2026-10-06 18:36:52 +02:00
Afri
4b318129e9
web: keep opted-out nodes out of /metrics ( #981 )
2026-10-06 18:36:22 +02:00
Afri
e2b33a1cf9
repo: move .claude to the spec tree ( #976 )
2026-10-06 15:28:17 +02:00
Afri
ea8d618489
ci: upload test results with codecov-action v7 and move to checkout v7 ( #975 )
2026-10-06 15:27:55 +02:00
Afri
2f4330b629
app: use caret ranges for the shared_preferences platform deps ( #974 )
2026-10-06 15:27:47 +02:00
Afri
61072fde6f
docs: describe the RA10/RE10 placeholder rules where they changed ( #973 )
2026-10-06 14:46:47 +02:00
Afri
da1fdda104
web: drop potatomesh.jmrp.io as federation seeds ( #972 )
...
* web: add mesh.dmz.pt as a federation seed node
* web: drop potatomesh.jmrp.io as federation seeds
2026-10-06 11:26:02 +00:00
Afri
4835fe06ef
web: add mesh.dmz.pt as a federation seed node ( #971 )
2026-10-06 13:13:28 +02:00
Afri
27eac3d4e5
web,data: stop Reticulum destination placeholders from renaming ( #968 )
2026-10-06 13:06:43 +02:00
Afri
326a6ab608
web,matrix,app: name Reticulum as a known protocol in every consumer ( #967 )
2026-10-06 12:56:25 +02:00
Afri
18178e7939
matrix: bump axum to 0.8.9 ( #970 )
2026-10-06 12:54:00 +02:00
Afri
c681fb2cd7
docs: scope Reticulum as experimental and announce-only ( #966 )
2026-10-06 12:44:57 +02:00
Afri
1aa45073a2
tests: make the Reticulum host-id canonicalisation check able to fail ( #965 )
2026-10-06 12:44:10 +02:00
Afri
0831912dfa
data: refresh the Reticulum host's own destinations every hour ( #969 )
2026-10-06 12:29:24 +02:00
Afri
fe9e46ef67
data: ingest only RNode interfaces by default under PROTOCOL=reticulum ( #964 )
2026-10-06 08:57:10 +02:00
Afri
5f03f7d024
nix: add rns to the flake ingestor and update the nixpkgs pin ( #963 )
2026-10-06 08:56:09 +02:00
Afri
d3cbb1443b
chore: bump version to 0.8.0 ( #946 )
2026-10-05 13:34:05 +02:00
Afri
9ff4c32c96
app: bump flutter_local_notifications to 22.3.1 ( #945 )
2026-10-05 13:32:47 +02:00
Afri
c1a4cf9e9b
data: retry the Reticulum host id through the provider every loop ( #944 )
2026-10-05 12:56:17 +02:00
Afri
0eacbf5cfd
web: honor the node opt-out marker on /api/destinations ( #943 )
2026-10-05 12:55:59 +02:00
Afri
ce0fdd4391
data,ci: run the ingestor image on Python 3.13 and test 3.13 and 3.14 ( #942 )
2026-10-05 12:55:39 +02:00
Afri
af4e939a34
chore: bump version 0.7.6 ( #927 )
2026-10-05 10:27:08 +02:00
Afri
186b2ad0bd
ci,deps: run Dependabot for every ecosystem and lock production builds ( #915 )
...
* ci,deps: run Dependabot for every ecosystem and lock production builds
* web,ci: run the web image on Ruby 3.4 and drop the Ruby 3.3 CI leg
2026-10-05 00:27:11 +02:00
Afri
7b0176df93
web: dedup MeshCore channel copies whose sender resolved differently ( #880 ) ( #914 )
2026-10-04 21:25:57 +02:00
Afri
b144b44e82
web,data: stop MeshCore chat text from minting or reviving nodes ( #883 ) ( #912 )
2026-10-04 16:41:58 +02:00
Afri
a59bd33e02
data,web: honor channel filters on every packet and the node list; add DROP_VIA_MQTT ( #784 , #884 ) ( #913 )
2026-10-04 16:39:17 +02:00
Afri
816ae1c1d1
matrix: add crates.io package metadata ( #879 ) ( #911 )
2026-10-04 16:34:23 +02:00
Afri
44fab19bf3
data: listen on both Meshtastic UDP multicast groups by default ( #903 ) ( #909 )
2026-10-04 15:51:58 +02:00
Afri
58ca8350c5
web: keep the mobile channel select alive across live refreshes ( #882 ) ( #910 )
2026-10-04 15:39:59 +02:00
Afri
c83ca0c301
data,docs: pipe MESHCORE_TELEMETRY_POLL_24H_EXEMPT through every deployment ( #908 )
2026-10-04 15:38:58 +02:00
Afri
c831e86bfe
docker,docs: resync the root Dockerfile and add a security policy ( #907 )
2026-10-04 15:18:55 +02:00
l5y
3d89366e89
docs: trim operator docs to instructions, close doc/behavior drift ( #904 )
...
* docs: trim operator docs to instructions, close doc/behavior drift
* docs: strip em-dashes and bold from operator docs; trim changelog
2026-09-06 13:04:20 +02:00
l5y
deaf89b1bd
web: fix SSRF guard bypass via IPv6 transition addresses ( #902 )
2026-09-01 10:26:28 +02:00
l5y
39e5d01d26
data,web: Reticulum finalization — radio metadata, chat tags, federation zeros ( #900 )
...
* data,web: Reticulum finalization — radio metadata, chat tags, federation zeros
* web: purge destinations with their nodes
2026-08-31 12:01:36 +02:00
l5y
d61cca93c0
web: reticulum aspects, identity groups, identity page, honest detail views ( #899 )
...
* web: reticulum aspects, identity groups, identity page, honest detail views
* web,data: fix staging findings, naming, row controls, transport gate
* web,data: fix Reticulum naming, row controls, and the transport gate
* web,data: fix Reticulum naming, row controls, and the transport gate
* web: cover the identity-group wiring and destination fetchers
2026-08-29 17:13:35 +02:00
l5y
96e0dbfd05
data,web: key Reticulum nodes on identity; discover host aspects ( #897 )
...
* data,web: key Reticulum nodes on destinations; fix e2e field findings (#888 )
* data,web: key Reticulum nodes on identity; discover host aspects
* data,web: restore announced names and interfaces on host destinations
* data,web,docs: fix review findings on identity-keyed Reticulum nodes
2026-08-28 21:11:31 +02:00
l5y
5294261892
web: add reticulum frontend support ( #894 )
...
* web: add reticulum frontend support
* docs: update readme
* web: address ui review comments
2026-08-27 12:15:05 +02:00
l5y
4b586316ae
fix reticulum protocol loose ends from #888 review ( #893 )
...
* fix reticulum protocol loose ends from #888 review
* data: fix quoted Compose defaults blacking out every channel
* data,web: fix four defects found reviewing this PR
2026-08-27 08:04:08 +02:00
l5y
40dfa14dfa
chore: release 0.7.5 ( #892 )
...
* chore: release 0.7.5
* app: raise iOS deployment target to 15.0; stop mobile CI failing fast
2026-08-24 19:48:29 +02:00
l5y
24a9226df4
data: gate every ingestor transmission behind TX_ENABLED/TX_ANNOUNCE ( #891 )
2026-08-24 17:18:19 +02:00
l5y
f43270d351
web: fix waypoints shipped-review audit findings ( #878 )
2026-07-30 21:58:43 +02:00
l5y
179cc5c198
web: LCP critical-path refinements (icon caching, preconnect, chat-tabs reflow) ( #877 )
2026-07-30 19:48:50 +02:00
l5y
882bbc4d97
web: bump sqlite3 to 2.9.5 for use-after-free advisory ( #876 )
2026-07-30 09:50:48 +02:00
l5y
0b93eb8169
web,docker: bake git APP_VERSION into image for immutable asset caching ( #875 )
...
* web,docker: bake git APP_VERSION into image for immutable asset caching
* web,docker: bake git version + uniform v-prefixed APP_VERSION
2026-07-29 18:59:26 +02:00
l5y
a676a2997e
data,web: Meshtastic waypoints as a first-class POI layer ( #874 )
...
* data,web: Meshtastic waypoints as a first-class POI layer
* web: re-roll waypoint UI to signed-off variants + node-page section
* web: reconcile stats-pushdown plan spec with the five-table W9 umbrella
* web: legend waypoint sample follows the 1c-B teardrop marker
2026-07-29 18:22:08 +02:00
l5y
ad1dd5843b
perf(web): index-seek /api/stats telemetry umbrella to end GVL stall ( #873 )
2026-07-29 13:20:16 +02:00
l5y
f6945e5a08
web: immutable cache-control for versioned assets + configurable stats TTL ( #868 )
...
* web: immutable cache-control for versioned assets + configurable stats TTL
* web: address #868 review — git-gate immutable, scope to JS/CSS
* fix(spec): make the asset Cache-Control test mode-aware
2026-07-29 00:20:25 +02:00
l5y
4fb11d237c
web: cap the node table render to the top N with a show all control ( #869 )
...
* web: cap the node table render to the top N with a show all control
* web: address #869 review — style the show-all control, fix hover, re-arm cap
2026-07-28 22:36:57 +02:00
l5y
c5bde6280b
docs: document reverse-proxy deployment, asset caching, and scaling ( #872 )
2026-07-28 21:57:00 +02:00
l5y
5d2790bb48
data: harden MeshCore subscribe against unknown EventType ( #867 )
2026-07-28 12:55:55 +02:00
l5y
d501aeb4eb
web: frontent performance fixes ( #864 )
...
* web: de-jank cold-load backfill + scope module preload to the view
* web: defer Leaflet, lazy-load node overlay, skip data pipeline off-dashboard
* web: address review of frontend-perf fix
2026-07-28 09:15:14 +02:00