Commit Graph

825 Commits

Author SHA1 Message Date
Lloyd c5dbfdcd4b Merge branch 'pr-284' into dev
# Conflicts:
#	README.md
2026-06-09 08:55:34 +01:00
Lloyd f4533e5ef6 Merge branch 'pr-285' into dev 2026-06-09 08:54:41 +01:00
Yellowcooln d5001a235d docs: remove docker readme edits 2026-06-08 20:31:32 -04:00
Yellowcooln 1569b11690 docker: default compose image to main 2026-06-08 20:27:48 -04:00
Yellowcooln 77480c6c1c docker: use named volumes by default 2026-06-08 20:22:45 -04:00
Yellowcooln ca50656560 docs: remove fork image from env example 2026-06-08 20:22:45 -04:00
Yellowcooln d333deb1e5 docker: clarify compose env setup 2026-06-08 20:22:45 -04:00
Yellowcooln 7015e0eb15 docs: document docker gpio gids 2026-06-08 20:22:45 -04:00
Yellowcooln b5df705b87 docs: clarify docker setup config steps 2026-06-08 20:22:45 -04:00
Yellowcooln 9e8c152f0b docker: tolerate read-only config during merge 2026-06-08 20:22:45 -04:00
Yellowcooln a308ddc00d docker: add gpio and spi groups 2026-06-08 20:22:45 -04:00
Matt 5dfa98c57c Rewrite README with expanded docs and images
Added:
- Supported hardware table with links to products
-
- New screenshots
- Web setup walkthrough
- Policy engine and example
- Updated docker with image
- Cleaned formatting
- Updated pyMC Core and MeshCore Discord links
2026-06-08 14:13:58 -04:00
Lloyd 00682e8086 Merge pull request #282 from agessaman/companion/advanced-settings 2026-06-06 18:09:00 +01:00
agessaman f3146ebc14 fix(companion): clean up ruff errors 2026-06-06 09:44:55 -07:00
agessaman ea6e660f34 refactor(api_endpoints): improve sqlite_handler retrieval logic
- Updated the logic for retrieving the sqlite_handler in APIEndpoints to use a safer approach with getattr, ensuring compatibility with the daemon_instance.
- Adjusted test case to include an additional parameter in the sqlite.companion_push_message assertion for consistency.
2026-06-06 09:39:30 -07:00
agessaman dac60443f0 feat(companion): implement contact trimming and retention policies
- Introduced `enforce_companion_contact_capacity` to manage contact limits during companion loading, with an option to trim non-favourite contacts when exceeding capacity.
- Updated `SQLiteHandler` to support message retention limits, allowing for automatic trimming of older messages based on `offline_queue_size`.
- Enhanced API endpoints to handle contact trimming on overflow, providing feedback on trimmed contacts during updates.
- Added utility functions for selecting and trimming contacts while preserving favourites.
- Improved logging for contact management actions and errors related to capacity.
2026-06-05 21:39:11 -07:00
Lloyd af603d78d0 feat:new menu change 2026-06-05 16:38:29 +01:00
Lloyd 879aac1556 Merge branch 'pr-280' into dev 2026-06-05 16:26:22 +01:00
Lloyd b3119f97f4 Merge branch 'pr-281' into dev 2026-06-05 16:25:15 +01:00
Lloyd da95c67cef fix: improve error logging for invalid policy entries and adjust test configuration 2026-06-05 16:23:18 +01:00
Yellowcooln 767c070384 Update broker host and audience in tests 2026-06-05 11:22:44 -04:00
Yellowcooln 8926b3d593 Fix URL in test_get_preset_meshmapper_is_single_broker_mc2mqtt
Update the URL in the MeshMapper preset test docstring.
2026-06-05 11:06:42 -04:00
Yellowcooln b5b2c60eb6 Update MQTT host and audience to meshmapper.net 2026-06-05 11:06:02 -04:00
Lloyd e9a9f21cab feat: update preamble_length to 32 for radio configurations 2026-06-05 16:00:23 +01:00
Rightup 225feda195 feat:ui for policy and logging update 2026-06-04 16:27:35 +01:00
Rightup 14b4804c26 feat: Enhance logging system and introduce policy management endpoints
- Updated LogBuffer to support log entry IDs, enhanced log entry structure with additional metadata, and implemented subscriber management for real-time log streaming.
- Added OpenAPI specifications for new endpoints related to policy management, including retrieval, updating, validation, and group management for network policies.
- Implemented comprehensive tests for new policy endpoints, ensuring correct behavior for creating, updating, validating, and deleting policy groups and entries.
- Introduced policy evaluation tests to validate the functionality of the PolicyEngine, including various scenarios for action decisions based on defined rules.
- Enhanced packet routing tests to ensure proper handling of policy decisions in packet processing.
2026-06-04 15:53:17 +01:00
Matt 4abc497e83 MeshSmith: Change tx_power from 22 to 18
Testing shows a setting of 18 is sufficient for full output power. May help improve TX signal quality.
2026-06-03 14:34:14 -04:00
agessaman 7fe1b19241 fix: update packet injector to include origin hash for companion bridge 2026-06-02 20:52:22 -07:00
agessaman 499f871262 Merge upstream/dev into companion/advanced-settings
Integrate latest dev while preserving per-companion bridge settings
and contact capacity validation. Resolve import conflicts in main.py
and api_endpoints.py.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-02 15:34:52 -07:00
Adam Gessaman 7d57b34a04 feat(companion): enhance contact capacity management and bridge settings
- Introduced `CompanionContactCapacityError` to handle cases where persisted contacts exceed configured limits.
- Added utility functions for parsing companion bridge settings and validating contact capacity.
- Updated `RepeaterDaemon` to check contact capacity during companion loading and initialization.
- Enhanced API endpoints to validate companion settings and manage contact limits effectively.
- Implemented logging for bridge limits and errors related to contact capacity.
2026-06-02 07:42:40 -07:00
Lloyd cd7058be99 fix: update packet router debugs for less noise and policy prep for advanced filters works 2026-06-02 12:18:17 +01:00
Lloyd 416310befd refactor: improve code readability 2026-06-02 10:31:47 +01:00
Lloyd 9e26068a10 feat: enhance installation process to align web/OTA updates with manage.sh defaults 2026-06-02 10:30:51 +01:00
Lloyd d7e74e0a89 Merge pull request #278 from agessaman/feat/pre-1160-compatibility-sendfix
Feat/pre 1160 compatibility sendfix
2026-06-02 10:26:22 +01:00
agessaman e24cdca055 feat(companion): echo injected TX to companion clients as raw RX (0x88)
Push locally-injected TX packets to connected companion frame server
clients as PUSH_CODE_LOG_RX_DATA (0x88) with snr=0/rssi=0, so apps that
decrypt locally from raw RX (e.g. RemoteTerm) see companion-originated
channel traffic. The originating companion is excluded so a node never
hears its own transmission, matching physical firmware behavior.
inject_packet now takes an origin_hash (threaded per-companion via the
packet_injector partial); _on_raw_rx_for_companions gains exclude_hash
to skip that companion's frame server. OTA RX is unaffected.
2026-06-01 17:05:38 -07:00
Lloyd 2cacb7cfc0 Merge pull request #276 from pyMC-dev/feat-open-api
Feat open api updates
2026-05-31 10:08:03 +01:00
Lloyd 9e1dabddbf feat: add PUT endpoint for updating transport keys in OpenAPI specification 2026-05-31 10:03:39 +01:00
Lloyd 730eaa97f7 Merge pull request #275 from agessaman/fix/binary-persist-1150 2026-05-31 08:22:57 +01:00
agessaman ee92f5b1a9 test: expect True from deferred local TX mock after companion send fix
The merged RepeaterHandler treats a falsy tx_success as failure; update
the duty-cycle deferral test to return True instead of None.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-30 21:43:00 -07:00
agessaman 5a9e1c87cc Merge branch 'fix/companion-message-send' into feat/pre-1160-compatibility-sendfix
Bring in companion transmission handling improvements from RepeaterHandler.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-30 21:42:26 -07:00
agessaman 778adb6917 feat: implement randomized response jitter in DiscoveryHelper to prevent packet collisions
- Added a default upper bound for randomized pre-send jitter in discovery responses to avoid collisions when multiple repeaters respond simultaneously.
- Introduced a new parameter `response_jitter_ms` in the `DiscoveryHelper` constructor to configure the jitter.
- Updated the `_send_packet_async` method to apply the jitter before sending responses.
- Added tests to verify the correct application of jitter and ensure functionality when jitter is disabled.
2026-05-30 18:07:23 -07:00
agessaman 5fcb6255d5 feat: enhance login handler with anonymous request support and region name formatting
- Updated the `LoginHelper` class to wrap the login handler in an `AnonRequestHandler`, allowing for proper handling of anonymous requests.
- Introduced methods for formatting region names based on flood policies and added support for retrieving transport keys from SQLite storage.
- Enhanced the constructor to accept additional parameters for SQLite handler and configuration, improving flexibility for owner-info and feature-flag replies.
- Added tests to validate the new functionality and ensure correct behavior of region name formatting and owner/features callbacks.
2026-05-30 16:19:52 -07:00
agessaman 6295f0fce1 feat: add utility function to restore bytes from JSON and enhance prefs handling in RepeaterCompanionBridge
- Introduced `_prefs_bytes_from_json` to convert JSON hex strings back to bytes for NodePrefs fields.
- Updated `_load_prefs` logic to handle bytes conversion when loading preferences.
- Improved the handling of preferences in the `RepeaterCompanionBridge` class to ensure proper type restoration.
2026-05-30 09:12:45 -07:00
Lloyd 5df8b160e5 Merge pull request #271 from bplein/nebra-duo-hat 2026-05-28 18:58:42 +01:00
Bill Plein 7b224e219a Updated settings for Nebra Hat Duo E22P 1W
The github for this hat recommends max of 18. https://github.com/wehooper4/Meshtastic-Hardware/blob/f9b3bb19bbbae8d556127b5ce5bea224b76681ea/NebraHat/Duo/NebraHat_Duo_E22P.yaml#L7
2026-05-28 12:57:56 -05:00
Lloyd b921160e2b Merge pull request #270 from bplein/nebra-duo-hat 2026-05-28 18:52:45 +01:00
Bill Plein f44d22505d Add support for Nebra Duo Hat, E22P radio only.
Adds support for Nebra Duo Hat, E22P radio only.
2026-05-28 12:49:05 -05:00
Lloyd caf048fbf0 refactor: clean up code formatting in check_openapi_contract.py 2026-05-28 12:17:38 +01:00
Lloyd d1dc57cc58 feat: add OpenAPI contract check script and integrate into pre-commit hooks 2026-05-28 12:02:45 +01:00
Lloyd 0f6a7dc053 feat: support 64-byte identity keys in identity validation and tests 2026-05-28 10:29:35 +01:00