88 Commits

Author SHA1 Message Date
Lloyd fcaad1dacf feat: add ensure_service_user_home function to manage service user home directory 2026-06-26 13:49:54 +01:00
Yellowcooln 11f8ea2f43 Revert "fix: repair updater venv pip shim" 2026-06-25 22:13:42 -04:00
yellowcooln af6bea5bbe fix: repair updater venv pip shim 2026-06-25 22:04:25 -04:00
yellowcooln 42340f683f fix: update updater GitHub repository 2026-06-25 21:32:52 -04:00
Lloyd 9748058010 fix: update virtual environment pip usage in manage.sh 2026-06-25 23:32:19 +01:00
Lloyd cc0dc2ffd6 fix: virtual environment creation logic in manage.sh 2026-06-25 23:13:28 +01:00
Lloyd 08b4667b2c refactor: disable legacy pymc services and normalize paths in management scripts 2026-06-25 00:00:28 +01:00
Lloyd 16e88579ae refactor: migrate legacy pymc paths to openhop and clean up system packages 2026-06-24 23:49:08 +01:00
Lloyd ffb083652f refactor: update legacy paths and cleanup in management scripts 2026-06-24 23:37:14 +01:00
Lloyd 2b67dea96b refactor:rename-project-to-openhop 2026-06-24 23:27:49 +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
Joshua Mesilane 3f7b6d5cdc fix: add smbus2 dependency, i2c-tools, and use hex I2C addresses in docs
- Add smbus2>=0.4.0 to pyproject.toml core dependencies so it is always
  present in the venv rather than relying on runtime auto-install
- Add i2c-tools to apt-get installs in both install and upgrade paths
  so /dev/i2c-* devices are accessible and i2cdetect is available for
  diagnostics (service user was already being added to the i2c group)
- Switch ENS210 config examples to hex I2C address notation (0x43) to
  match datasheets and i2cdetect output; update contributor docs guidance
  accordingly

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-13 11:54:32 +10:00
Lloyd 71595c9226 Update pymc_core dependency to version 1.0.10 and correct installation messages to reflect PyPI source 2026-04-24 16:13:17 +01:00
Rightup 799a85ddf9 fix: remove --no-index from R2 pip install so pyyaml resolves from PyPI 2026-04-19 19:34:26 +01:00
Rightup dfe9ba20f3 Fix R2 wheels installation path for improved dependency resolution 2026-04-18 23:15:34 +01:00
Rightup d336c72625 Enhance installation process with R2 wheels support for ARM devices 2026-04-18 23:15:13 +01:00
Joshua Mesilane a9590fac01 Fix the headless install option 2026-04-18 21:09:01 +10:00
Joshua Mesilane 7ba26b72cb Fix for polkit version detection 2026-04-18 17:39:35 +10:00
Joshua Mesilane 8ebcb09eff Headless install fix 2026-04-18 17:12:06 +10:00
Joshua Mesilane 4e3b2bbc9a Updates to support installs on the LuckFox platform 2026-04-18 16:50:44 +10:00
Lloyd f2a72eb203 feat: migrate to virtual environment and clean up system-level packages 2026-04-15 09:37:26 +01: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 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 0ed78a2eed Update pip install command format for hardware dependencies in management scripts 2026-03-09 11:03:49 +00:00
Lloyd 437d526085 Add OTA update functionality with new API endpoints and upgrade script 2026-03-09 10:31:36 +00:00
Lloyd 72d4650323 Refactor manage.sh to install pymc_repeater with fresh dependencies from pyproject.toml, ensuring no stale modules from pymc_core. 2026-03-06 21:34:07 +00:00
Lloyd 5c3b2eff2a Update manage.sh to uninstall existing pymc_core and install fresh version from GitHub 2026-03-06 15:34:13 +00:00
Lloyd 9000d83754 Remove cached pymc_core installation before package updates to prevent stale module issues 2026-03-06 14:52:27 +00:00
Lloyd f63b001ca7 fix typos in manage.sh 2026-03-06 14:40:15 +00:00
agessaman c150b9a9bf Merge upstream/feat/newRadios into dev-companion-v2-cleanup
- Keep our Vite-built assets and index.html script (index-DyUIpN7m.js)
- Remove upstream-only asset chunks and RoomServers-BxQ-0q-x.js
- README: keep two-backend intro, add upstream CAUTION/compatibility table
- manage.sh: keep dialog/gauge UX and .[hardware]; add CH341 udev, sudoers, libusb, polkit, silent upgrade
- sqlite_handler: add crc_errors table, index, and cleanup from upstream
- engine: add validate_packet and mark_seen in direct_forward; keep our path hash_size/hop_count logic
- advert: keep comment, use current_time = now
- api_endpoints: use restart_service() from service_utils
- config merge: strip user config comments before yq merge (upstream)

Made-with: Cursor
2026-03-05 16:43:14 -08:00
Lloyd dd81bf94a9 log display in management script with styled output and color-coded messages 2026-03-04 12:43:24 +00:00
yellowcooln 34334c68da Make CLI actions silent while keeping menu dialogs 2026-03-01 17:02:02 -05:00
Lloyd 91d916798b upgrade functions to include conditional polkit installation and improve error handling for missing packages 2026-02-24 12:03:45 +00:00
Lloyd 83a6ae69ae Add sudo and create sudoers directory for service management in install and upgrade functions 2026-02-24 11:36:46 +00:00
Lloyd 74914541f2 Enhance installation and uninstallation scripts with user-friendly messages, add polkit and sudoers configuration for service management, and improve service restart handling in API endpoints. 2026-02-24 11:33:21 +00:00
Lloyd aa75fac7f2 Update Proxmox installer scripts to include CH341 GPIO pin configuration and modify radio type 2026-02-24 11:14:29 +00:00
Lloyd 169ea4b1e4 Refactor config merging process to strip comments and update radio_type in Proxmox installer 2026-02-24 10:59:30 +00:00
Lloyd 0f54a05596 Proxmox installer PW 2026-02-24 09:47:36 +00:00
Lloyd 4d2943087f Refactor user group management and add container detection warnings for udev rules 2026-02-24 09:15:21 +00:00
Lloyd edebea6bda Add user to plugdev group and install udev rules for CH341 during installation and upgrade 2026-02-24 08:49:51 +00:00
Lloyd 8f90cf71b0 Reference for E22p branch 2026-02-23 21:58:15 +00:00
agessaman e9841adeff Merge upstream feat/newRadios (radios, MQTT, SPI)
- Take upstream radio-presets.json and radio-settings.json (Femtofox, AIO v2, CH341).
- config.py: upstream get_radio_for_board (_parse_int, sx1262_ch341, GPIO) + re-add KISS branch.
- config.yaml.example: upstream radio/ch341 + our identities.companions.
- manage.sh: upstream SPI warning prompt.
- main.py: single try/finally with companion shutdown and _shutdown().
- letsmesh_handler: upstream UTC fallback and MQTT v5 reason code handling.
- storage_collector, api_endpoints: upstream storage_dir_cfg; apply_setup_wizard supports KISS and sx1262_ch341/ch341.
- airtime.py: upstream bw_hz fix for symbol time.
- pyproject.toml: keep pymc_core dependency (no git pin).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-21 15:59:01 -08:00
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
Lloyd b799a286c2 Enhance SPI check during installation with user prompts for continuation without SPI 2026-02-11 10:53:05 +00: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
theshaun 57a25a2dc0 Add support for Femtofox
- Introduce GPIO chip selection and GPIO backend selection
- Add default Femtofox settings (for SX1262 as LR1121 support may come later)
- Add support for Python 3.10 UTC to reduce footprint
- Fix airtime calculation bandwidth variable naming
- Add service auto-enable when starting
- Add Australia: SA, WA, QLD radio preset
- Add Snyk security instructions

Co-authored-by: theshaun <theshaun@users.noreply.github.com>
Based on PR #69
2026-02-03 22:34:14 +00:00
Lloyd 9256ba9c35 Remove force-reinstall option from pip install command in install_repeater function 2026-02-02 10:44:39 +00:00