Commit Graph

494 Commits

Author SHA1 Message Date
Lloyd 8babc375f2 Merge pull request #160 from agessaman/feat/companion-timeout-change
fix: update default client idle timeout to 8 hours in RepeaterDaemon …
2026-03-26 09:21:26 +00:00
agessaman 3ca9ac56d8 fix: update default client idle timeout to 8 hours in RepeaterDaemon and CompanionFrameServer for improved session management 2026-03-25 16:14:30 -07:00
Lloyd 07a47523ab feat: enhance event loop handling for thread-safe scheduling in MeshCLI 2026-03-24 14:18:12 +00:00
Lloyd 400e707c3f feat: add help command and detailed command descriptions to MeshCLI 2026-03-24 14:12:32 +00:00
Lloyd 91918e7cfc feat: add CLI command endpoint and standalone CLI client for pyMC Repeater 2026-03-24 14:02:51 +00:00
Lloyd d82c90a04d fix: MQTT schedule the reconnect timer before calling disconnect(), so by the time _on_broker_disconnected fires, the pending reconnect is already visible. 2026-03-24 12:33:33 +00:00
Lloyd 7fcad04f49 feat: enhance graceful shutdown handling in RepeaterDaemon and improve stale dist-info cleanup with sudo support 2026-03-24 10:02:43 +00:00
Lloyd 7bcab773dd feat: add default security configuration for repeater in load_config to fix from previous versions. 2026-03-24 09:23:16 +00:00
Lloyd c35733e8c4 Merge pull request #159 from agessaman/feat/companion-dedup
feat: implement duplicate packet recording for UI visibility in RepeaterHandler
2026-03-24 09:13:51 +00:00
agessaman 744826199e feat: implement duplicate packet recording for UI visibility in RepeaterHandler
- Added record_duplicate method to RepeaterHandler to log known duplicate packets without forwarding.
- Enhanced RepeaterDaemon to subscribe to raw packets for deduplication logging, ensuring all path variants are visible in the UI.
- Updated recent_packets management to group duplicates under their original packets for better tracking.
2026-03-23 17:02:29 -07:00
Lloyd 369b420ae3 feat: enhance RepeaterHandler with duplicate packet limit and cache cleanup, add graceful shutdown handling in RepeaterDaemon, and increase PacketRouter queue size 2026-03-23 14:30:01 +00:00
Lloyd 7d73ca0df6 show full path hop hex and normalize case for traces and add new config observer UI 2026-03-22 22:52:16 +00:00
Lloyd d11d957318 Merge pull request #158 from agessaman/feat/companion-traces
Fix multibyte trace handling for companion/repeater and exclude trace packets from _record_for_ui
2026-03-22 22:44:10 +00:00
agessaman c5c94fe60a feat: exclude TRACE packets from logging in RepeaterHandler and PacketRouter
- Updated record_packet_only method to skip logging for TRACE packets, as TraceHelper manages trace paths.
- Enhanced documentation to clarify the handling of TRACE packets in the web UI.
- Added tests to ensure TRACE packets are not recorded, maintaining data integrity.
2026-03-22 15:26:28 -07:00
Lloyd 55fe9feddd feat: add useSignalQuality utility for signal strength evaluation 2026-03-22 22:26:18 +00:00
agessaman 3cb27d3310 feat: enhance trace processing and path handling in RepeaterDaemon and TraceHelper
- Added local_identity parameter to RepeaterDaemon for improved trace path matching.
- Refactored trace path handling in TraceHelper to support multi-byte hashes and structured hops.
- Updated methods to ensure compatibility with new trace data formats and improved logging.
- Enhanced tests to validate new trace processing logic and path handling.
2026-03-22 14:34:04 -07:00
Lloyd 0444f01280 Merge pull request #152 from agessaman/feat/companion-namefix 2026-03-22 10:39:25 +00:00
agessaman 2e25467c5d feat: enhance companion identity management and API documentation
- Added functionality to heal companion registration names with empty values.
- Improved handling of identity keys and public key derivation for companions.
- Updated API endpoints to support companion identity lookups using name, lookup_identity_key, or public_key_prefix.
- Enhanced OpenAPI documentation to clarify requirements for identity creation, updates, and deletions, including trimming whitespace from names.
2026-03-21 17:24:14 -07:00
Lloyd ddaa62fa9e update UI with extra modes monitor/forward/no tx 2026-03-16 10:17:07 +00:00
Lloyd 24e003b677 Merge pull request #148 from agessaman/feat/companion-modes
feat: improve repeater TX mode functionality so companion tenants can TX while in monitor mode
2026-03-16 10:06:34 +00:00
agessaman 7558c5604c feat: enhance repeater TX mode functionality so companion tenants can TX while in monitor mode
- Modify TX modes: forward, monitor, and add no_tx, allowing for flexible packet handling.
- Updated configuration and API endpoints to support the new modes.
- Adjusted logic in RepeaterHandler to manage packet processing based on the selected mode.
- Enhanced CLI commands to reflect the new mode settings.
- Added tests for each TX mode to ensure correct behavior.
2026-03-15 13:03:18 -07:00
Lloyd e0e807f65c Merge pull request #143 from dmduran12/feat/companion-ws-proxy
feat: add /ws/companion_frame WebSocket-to-TCP proxy
2026-03-13 15:55:15 +00:00
dmduran12 4ee2977236 feat: add /ws/companion_frame WebSocket proxy
Bridges browser WebSocket connections to companion TCP frame servers.
Uses configured bind_address (not hardcoded 127.0.0.1) so the proxy
works regardless of how the frame server is bound.

- JWT auth (same pattern as PacketWebSocket)
- Resolves companion by name → (host, port) from config
- Raw byte pipe: WS ↔ TCP, no protocol parsing
- Diagnostic logging throughout for troubleshooting

Co-Authored-By: Oz <oz-agent@warp.dev>
2026-03-13 08:52:08 -07:00
Lloyd 810743fbf2 fix setup race between service restart and login redirect. 2026-03-13 09:15:28 +00:00
Lloyd b35b964dbb Merge pull request #142 from agessaman/dev-companion-v2-cleanup
Add Companion seeding from repeater advert database, add companions connection status to sessions panel
2026-03-13 09:08:29 +00:00
Lloyd 07c6f14b4b Merge branch 'feat/companion' into dev-companion-v2-cleanup 2026-03-13 09:07:34 +00:00
Lloyd d40f39fa87 add seed ui 2026-03-13 09:06:57 +00:00
Lloyd c8b7082d37 Merge pull request #141 from dmduran12/feat/companion-ws-proxy
feat: add /ws/companion_frame WebSocket proxy
2026-03-13 09:03:04 +00:00
agessaman 985e0c829f Add companion identity handling and statistics tracking for ACL endpoints. 2026-03-12 20:57:13 -07:00
dmduran12 2b4012eeb6 feat: add /ws/companion_frame WebSocket proxy
Dumb byte pipe between browser WebSocket and companion TCP frame server.
Allows browser clients to speak the MeshCore companion frame protocol
directly — all parsing lives client-side.

New file: repeater/web/companion_ws_proxy.py
- ws4py handler with JWT auth (same pattern as PacketWebSocket)
- Resolves companion_name → TCP port from config
- Bidirectional byte forwarding: WS ↔ TCP

http_server.py: mount at /ws/companion_frame alongside /ws/packets

Co-Authored-By: Oz <oz-agent@warp.dev>
2026-03-12 17:50:20 -07:00
agessaman 9326868f6e Implement contact import functionality for companions
- Added `companion_import_repeater_contacts` method in `SQLiteHandler` to import repeater adverts into a companion's contact store, with options for filtering by contact types, last seen hours, and import limits.
- Introduced `_get_sqlite_handler` method in `CompanionAPIEndpoints` to ensure the SQLite handler is available for contact import operations.
- Created `import_repeater_contacts` endpoint to handle POST requests for importing contacts, validating input parameters, and returning the count of successfully imported contacts.
- Updated the frontend to reflect changes in the contact import process, ensuring a seamless user experience.
2026-03-12 15:39:04 -07:00
Lloyd 289fdb1a16 Add warning for trace responses with RSSI=0 in TraceHelper 2026-03-12 13:50:36 +00:00
Lloyd bc19c0fd9b update UI for web updater 2026-03-11 15:54:45 +00:00
Lloyd 596c96d1f4 Extend test to: serialization/deserialization with multi-byte paths
- Functionality of Packet.apply_path_hash_mode and get_path_hashes
- Engine flood_forward and direct_forward with real multi-byte encoded packets
- PacketBuilder.create_trace payload structure and TraceHandler parsing
- Enforcement of max-hop boundaries per hash size
2026-03-11 14:23:29 +00:00
Lloyd 155575865a trace packet path handling to support multi-byte hash mode 2026-03-11 11:19:03 +00:00
Lloyd 362a477cdd exted multibyte to ping api 2026-03-11 11:00:49 +00:00
Lloyd d701342951 add error handling for service file update and migrate service unit to fix PYTHONPATH and WorkingDirectory 2026-03-11 10:27:20 +00:00
Lloyd e6fed7bea1 Add --ignore-installed flag to pip install commands to prevent conflicts with system-managed packages 2026-03-10 21:54:13 +00:00
Lloyd 23463b606d Fix WorkingDirectory in service files to prevent shadowing of pip-installed package 2026-03-10 16:46:13 +00:00
Lloyd f96d64a813 Refactor version retrieval and remove legacy PYTHONPATH from service unit 2026-03-10 15:37:12 +00:00
Lloyd 6c3252e51c fix letmesh logging typo 2026-03-10 13:55:35 +00:00
Lloyd 5e7cf3f315 Refactor setuptools configuration to use package finding options 2026-03-10 13:21:29 +00:00
Lloyd e5e2006bbe update ui to include Github ratelimit warn 2026-03-10 12:50:51 +00:00
Lloyd da3dd470ae Add rate limit handling for GitHub API requests 2026-03-10 12:49:57 +00:00
Lloyd c53e8034e6 update UI update process to attend restart 2026-03-10 12:33:30 +00:00
Lloyd 95e86b5150 Enhance pymc-do-upgrade script to accept an optional pretend-version argument and update version retrieval logic to strip PEP 440 local identifiers from version strings. 2026-03-10 12:08:55 +00:00
Lloyd bf3b4b5b1b Enhance version retrieval logic and add fallback mechanisms in _get_installed_version function 2026-03-10 11:33:49 +00:00
Lloyd cd1c88e9c6 Refactor update version retrieval and cleanup stale dist-info directories 2026-03-10 11:11:01 +00:00
Lloyd 632f1d2d1a Merge pull request #132 from agessaman/dev-companion-v2-cleanup
Update OTA repeater stats to return correct uptime, airtime, packet counts, etc.
2026-03-10 09:32:43 +00:00
agessaman 25c2a14a81 Update OTA repeater stats to return correct uptime, airtime, packet counts, etc.
- Introduced `total_rx_airtime_ms` in `AirtimeManager` to track received packet airtime.
- Added `record_rx` method to log received airtime in `AirtimeManager`.
- Updated `RepeaterHandler` to count received packets and log RX airtime using the new method.
- Enhanced statistics reporting in `get_stats` to include total received airtime.
- Updated `ProtocolRequestHelper` to include total RX airtime in the RepeaterStats structure for better monitoring.
2026-03-09 17:27:51 -07:00