Commit Graph
234 Commits
Author SHA1 Message Date
Afri e3333693fb data: MeshCore contacts post once per connect (#1024) 2026-10-10 11:00:43 +02:00
dependabot[bot] a4dadb191d build(deps-dev): bump black from 26.5.1 to 26.10.0 in /data (#1018)
Bumps [black](https://github.com/psf/black) from 26.5.1 to 26.10.0.
- [Release notes](https://github.com/psf/black/releases)
- [Changelog](https://github.com/psf/black/blob/main/CHANGES.md)
- [Commits](https://github.com/psf/black/compare/26.5.1...26.10.0)

---
updated-dependencies:
- dependency-name: black
  dependency-version: 26.10.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-08 23:40:58 +02:00
dependabot[bot] 77d9b8fb50 build(deps): bump rns from 1.5.6 to 1.5.7 in /data (#1017)
Bumps [rns](https://github.com/markqvist/Reticulum) from 1.5.6 to 1.5.7.
- [Release notes](https://github.com/markqvist/Reticulum/releases)
- [Changelog](https://github.com/markqvist/Reticulum/blob/master/Changelog.md)
- [Commits](https://github.com/markqvist/Reticulum/commits)

---
updated-dependencies:
- dependency-name: rns
  dependency-version: 1.5.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-08 23:36:50 +02:00
Afri d9a459b6d5 data: MeshCore scope table adds five German community regions (#1016) 2026-10-08 23:35:07 +02:00
Afri f4daac7b8d chore: bump version to 1.0.0 (#1011) 2026-10-08 17:15:16 +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 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 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 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 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 61072fde6f docs: describe the RA10/RE10 placeholder rules where they changed (#973) 2026-10-06 14:46:47 +02:00
Afri 27eac3d4e5 web,data: stop Reticulum destination placeholders from renaming (#968) 2026-10-06 13:06:43 +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 d3cbb1443b chore: bump version to 0.8.0 (#946) 2026-10-05 13:34:05 +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 44fab19bf3 data: listen on both Meshtastic UDP multicast groups by default (#903) (#909) 2026-10-04 15:51:58 +02:00
Afri c83ca0c301 data,docs: pipe MESHCORE_TELEMETRY_POLL_24H_EXEMPT through every deployment (#908) 2026-10-04 15:38:58 +02:00
Nic Jansma 0c81dbe073 Add MESHCORE_TELEMETRY_POLL_24H_EXEMPT cooldown exemption for contact telemetry (#905) 2026-09-07 08:18:52 +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 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
Edwin Knuth dc0679234f data: derive the Reticulum ingestor's own node id; scope CONNECTION out (#888) (#896)
Answers the two questions left open on #888 after #893.

INGESTOR_NODE_ID was required for PROTOCOL=reticulum because a passive
announce listener has no handshake revealing "our" node id. The premise
holds; the conclusion did not follow. The ingestor now owns an RNS
identity, generated on first run and stored 0600 as potato_mesh_identity
inside the app-owned RETICULUM_CONFIG_DIR, and derives its !xxxxxxxx
through the same identity-hash mapping applied to every peer, so its own
row is shaped like any other Reticulum row. A plain PROTOCOL=reticulum
deployment brings up the heartbeat, and so the reticulum packets/hour
scope, unaided; the variable still overrides, which also means no key is
generated for a deployment that does not need one. The identity is local
and never announced, so nothing new transmits. Persist-or-nothing is
deliberate: an unstorable identity would be regenerated per start and
each generation is a different node id, filing one orphan ingestor row
per restart, so the provider reports no id and warns instead. An existing
but unreadable key file is never overwritten. The startup warning #890
emitted for an unset INGESTOR_NODE_ID is removed.

CONNECTION and RETICULUM_CONFIG_DIR/RETICULUM_INTERFACES are disjoint
rather than in conflict: CONNECTION names one serial, TCP, or BLE
endpoint and an RNS stack has no such thing, which is why connect() has
always ignored it. What was wrong was the silence, since the image sets a
serial default for every protocol. connect() now says once at info that
the value is dropped and names the two variables that do apply. The image
default stays: removing it would change how meshtastic and meshcore
containers resolve their port, and a Reticulum follow-up is the wrong
change to carry that.

SPEC RN9/RN10, ACCEPTANCE RN-A9/RN-A10; CONTRACTS, README and
.env.example reconciled. 100% line and branch coverage on the provider;
pytest 1442 passed, rspec 1717 examples 0 failures.
2026-08-28 10:16:56 +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
Edwin Knuthandoregonknuths a25140ee57 Add Reticulum announce ingestor provider (#888) (#890)
Co-authored-by: oregonknuths <159513803+oregonknuths@users.noreply.github.com>
2026-08-24 21:41:16 +02:00
Edwin Knuthandoregonknuths ace03b6807 Add Reticulum protocol support to the web tier (#888) (#889)
Co-authored-by: oregonknuths <159513803+oregonknuths@users.noreply.github.com>
2026-08-24 21:34:39 +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