Commit Graph

58 Commits

Author SHA1 Message Date
agessaman c2f8a2e3cd refactor: companion FrameServer and related (substantive only, no Black)
Reapply refactor from ce8381a (replace monolithic FrameServer with thin
pymc_core subclass, re-export constants, SQLite persistence hooks) while
preserving pre-refactor whitespace where patch applied cleanly. Remaining
files match refactor commit exactly. Diff vs ce8381a is whitespace-only.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-21 15:35:47 -08:00
agessaman 22e337a707 Add CompanionAPIEndpoints integration in APIEndpoints class
- Introduced CompanionAPIEndpoints to handle routes under /api/companion/*.
- Enhanced the APIEndpoints class to create a nested companion object for improved modularity and organization of companion-related API functionality.
2026-02-15 22:10:23 -08:00
agessaman 15299bf374 Add companion module and API integration
- Add repeater/companion with frame server and constants
- Extend config, sqlite_handler, mesh_cli, packet_router for companion
- Update api_endpoints and auth_endpoints; adjust main entry

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-13 16:07:43 -08:00
agessaman 878ff8dc51 Enhance configuration and setup for KISS modem support
- Added support for Meshcore KISS modem firmware in configuration, allowing users to set `radio_type: kiss` and configure serial port and baud rate.
- Updated `config.yaml.example` to include KISS modem settings.
- Modified `manage.sh` to install with hardware extras for KISS support.
- Enhanced `setup-radio-config.sh` to prompt for radio type and KISS modem settings.
- Updated API endpoints to handle KISS modem configurations and hardware options.
- Improved error handling for missing configuration sections.

This update improves flexibility for users utilizing KISS modems alongside SX1262 hardware.
2026-02-03 16:20:51 -08:00
dmduran12 047b983497 Add timestamp filtering to bulk_packets endpoint
Add start_timestamp and end_timestamp parameters to the bulk_packets API
endpoint to allow time-range filtering for bulk packet retrieval.

Co-Authored-By: Warp <agent@warp.dev>
2026-02-03 11:03:05 -08:00
Lloyd b0e19b13af Add bulk packet retrieval API with gzip compression and pagination support. 2026-02-03 10:21:59 +00:00
Lloyd d28ddcc34c reorganize hardware configuration for sx1262 settings 2026-01-22 13:29:05 +00:00
Lloyd 267b8e2a1c fix setup fields 2026-01-22 13:10:07 +00:00
Lloyd 599e4628d9 Changes include:
Features

Neighbour details modal with full info and map view

WebSocket support with heartbeat and automatic reconnection

Improved signal quality calculations (SNR-based RSSI)

Route-based pagination for faster initial loads

UI

Mobile sidebar tweaks (logout, version info, lazy-loaded charts)

Sorting added to the neighbour table

Packet view now shows multi-hop paths

CAD calibration charts respect light/dark themes

Statistics charts now show the full requested time range

Performance

Reduced polling when WebSocket is active

Lazy loading for heavier components

Noise floor data capped to keep charts responsive

Technical

Improved type safety across API responses

Contrast improvements for accessibility

Cleaner WebSocket and MQTT reconnection handling

Additional metrics added to heartbeat stats

Bug fixes

Corrected noise floor history query

Fixed authentication for CAD calibration streams

Nothing major required from users — just update and carry on.
As always, shout if something looks off.
2026-01-18 20:15:50 +00:00
Lloyd 7bd5b6f13d Add UTF-8 validation for node name length and improve hardware file loading logic 2026-01-09 16:44:05 +00:00
Lloyd d7a886d0e5 Update file paths for radio settings and presets to use config-based directory 2026-01-09 12:14:38 +00:00
Lloyd 3011706102 feat: Update hardware and presets file loading to check installed location first 2026-01-05 10:57:40 +00:00
Lloyd 8b8edb9929 add pymc console endpoints and ui 2026-01-02 16:35:18 +00:00
Lloyd 7d4a779939 feat: Enhance filtered_packets endpoint to support additional query parameters for improved packet filtering 2026-01-02 11:01:01 +00:00
Lloyd 2ba7be974d feat: Add CORS support for OPTIONS requests in filtered_packets endpoint 2026-01-02 10:40:32 +00:00
Lloyd 734b59dc3c fix: Update hardware and radio presets file paths for improved accessibility 2026-01-01 22:37:41 +00:00
Lloyd b6f30d59e1 fix: Remove sudo from systemctl command for service restart 2025-12-30 22:37:47 +00:00
Lloyd c24c39eab2 fix: Update directory names and permissions in post-install script 2025-12-30 22:34:28 +00:00
Lloyd 7112da98c2 feat: Add authentication endpoints and JWT support
- Implemented JWT authentication with auto-generated secret if not provided.
- Added API token management functionality.
- Created authentication endpoints for login, token refresh, verification, and password change.
- Introduced API documentation endpoints for Swagger UI and OpenAPI spec.
- Enhanced CORS support for API and documentation endpoints.
- Updated OpenAPI specification to include new authentication and system endpoints.
2025-12-30 00:10:48 +00:00
Lloyd 98b425f444 added CLI 2025-12-29 14:37:54 +00:00
Lloyd d417fed51a feat(api): Enable CORS for multiple API endpoints 2025-12-29 11:05:27 +00:00
dmduran12 2ab4a62011 feat(api): Add POST /api/update_radio_config endpoint
Adds a new endpoint to update radio and repeater configuration via HTTP API,
supporting both persisted storage and live in-memory updates.

Supported settings:
- Radio: tx_power (2-30 dBm)
- Delays: tx_delay_factor, direct_tx_delay_factor, rx_delay_base
- Repeater: node_name, latitude, longitude, max_flood_hops,
  flood_advert_interval_hours, advert_interval_minutes

Features:
- Validates all input parameters with appropriate ranges
- Saves to config.yaml for persistence
- Updates daemon's in-memory config for immediate effect (no restart needed)
- Returns live_update status so clients know if restart is required

This enables web dashboards like pyMC Console to configure the repeater
without requiring SSH access or service restarts for most settings.

Co-Authored-By: Warp <agent@warp.dev>
2025-12-27 19:47:49 -08:00
Lloyd d321612670 Add node name lookup by public key and enhance CORS handling in API endpoints 2025-12-18 21:26:31 +00:00
Lloyd c98a33eda5 Refactor security configuration handling: update LoginHelper to retrieve security settings from the correct config path and adjust max_clients default value; modify APIEndpoints to ensure distinct admin and guest passwords, and enhance identity key validation logic in API responses. 2025-12-18 15:02:23 +00:00
Lloyd ccc908ce32 Update server message handling: use room server's public key for system messages and improve identification for clients 2025-12-18 13:35:22 +00:00
Lloyd 36a730f656 Refactor Swagger UI integration: load HTML template from file and remove inline styles 2025-12-18 12:28:50 +00:00
Lloyd 8ee83d70c7 Add ACL endpoints for managing access control lists and client information 2025-12-18 12:22:01 +00:00
Lloyd c08d72a247 Remove custom styling for the Swagger UI topbar in API documentation 2025-12-18 12:10:43 +00:00
Lloyd f068ca5db2 API documentation: update OpenAPI spec with new endpoints for packet statistics, noise floor history, CAD calibration, and room messaging; improve response schemas and descriptions 2025-12-18 12:06:21 +00:00
Lloyd 289922e91b Update OpenAPI spec: add new endpoints for duty cycle management and room message retrieval, enhance existing paths with detailed descriptions and examples 2025-12-18 11:40:42 +00:00
Lloyd 59a34205cd Encode OpenAPI spec and error messages in UTF-8 for proper response handling 2025-12-18 11:23:35 +00:00
Lloyd 9cd98cd7ad Add room server messaging endpoints and database functions
- Implemented functions to retrieve, post, delete, and clear messages in room servers.
- Added API endpoints for room message retrieval, posting, and management.
- added OpenAPI documentation to include new room server functionalities.
2025-12-18 11:21:38 +00:00
Lloyd 174c1309fc identity management: update security handling in room servers to use settings section and improve identity key update logic 2025-12-17 22:30:36 +00:00
Lloyd d85244b7e0 Enhance identity management: consolidate registration logic and add auto-generation for identity keys 2025-12-17 22:09:18 +00:00
Lloyd 73d5250560 Add identity management endpoints for API 2025-12-16 22:58:14 +00:00
Lloyd 52e4f6bef5 add hardware statistics collection to StorageCollector and API endpoints 2025-11-29 23:03:15 +00:00
Lloyd 748ecf33b3 hardware statistics integrate with storage collector 2025-11-29 22:42:15 +00:00
Lloyd 330d97d862 add hardware statistics collection and new API endpoints for hardware stats 2025-11-29 22:13:53 +00:00
Lloyd 0184cdd325 added remove nodes from neighbors 2025-11-25 00:08:46 +00:00
Lloyd 788db09b59 feat: add delete advert functionality to SQLiteHandler and API endpoints 2025-11-24 21:27:12 +00:00
Lloyd 34a775925b feat: implement server-level CORS support and cleanup CORS handling in API endpoints 2025-11-24 00:11:32 +00:00
Lloyd 7f00575aa9 feat: implement CORS tool for handling preflight requests and adding headers 2025-11-23 23:03:28 +00:00
Lloyd 2137e6a1c6 Refactor code structure for improved readability and maintainability 2025-11-22 22:07:46 +00:00
Lloyd 732466eabf feat: enhance global flood policy endpoint to update and save configuration 2025-11-16 22:06:33 +00:00
Lloyd 9e65a02273 feat: add global flood policy configuration and API endpoint for updates 2025-11-16 21:43:35 +00:00
Lloyd deaed4b376 feat: implement transport key generation and update API endpoints for optional transport key handling 2025-11-16 21:37:17 +00:00
Lloyd da4006d230 feat: add transport key management methods and API endpoints 2025-11-16 20:56:29 +00:00
Lloyd 2acd44bcf8 add get_route_stats method to StorageCollector and corresponding API endpoint for packet stats 2025-11-12 07:08:09 +00:00
Lloyd 49de8e5180 add route_stats endpoint and implement get_route_stats method in SQLiteHandler 2025-11-11 20:54:59 +00:00
Lloyd 9f5a459134 feat: update packet_type_graph_data to accept parameters for hours, resolution, and types 2025-11-10 22:13:20 +00:00