Commit Graph
50 Commits
Author SHA1 Message Date
NayaccoandGitHub 1a4032d013 feat: add Lark group bot notifications (#47) 2026-08-17 13:47:10 +08:00
f949001480 fix: support non-Quectel Qualcomm modems and fix 410 dongle AT timeouts (#40)
1. Vendor-neutral modem compatibility:
   - Discovery switched from a vendor-ID whitelist to detecting the QMI
     channel directly (an interface bound to the kernel qmi_wwan driver),
     so SIMCom, Sierra, Telit and other Qualcomm-based modules are found
     automatically while MBIM-only devices stay excluded
   - AT port responses now distinguish an AT command error from firmware
     incompatibility: ERROR / +CME ERROR is returned as a normal response
     (200) instead of being folded into a 502, which only a real transport
     failure produces

2. Fixed the 410 dongle's AT command timeouts:
   - Default WWAN AT port switched from wwan0at0 to wwan0at1: ModemManager
     marks the first AT port that answers its probe as primary (at1 on the
     tested UFI dongles) and closes AT ports once initialization finishes,
     so at1 is the responsive, idle channel for vocat while MM uses the
     QMI port for control
   - Drain the WWAN input buffer before each command write, discarding the
     late bytes of a previous timed-out command so they cannot pollute the
     next response's parsing
   - AT+CGSN now uses an independent short timeout instead of inheriting
     the refresh's 30s deadline (on MHI modems it returns the IMEI line
     but never a final OK). Previously every refresh held the device lock
     for the full 30s, queueing AT terminal commands behind it for 10-20s
   - The QMI UIM ICCID fallback only runs when AT+CPIN? already proved a
     READY card, so a SIM-less slot no longer blocks refresh waiting out
     its long timeout

Tests: added WWAN drain cleanup, drain-before-write ordering, CGSN timeout
bound, skip-QMI-ICCID-without-SIM, CommandError-as-200, WWAN at1 port
selection and vendor-neutral discovery cases. go vet and go test ./... pass.

Co-authored-by: Test <[email protected]>
2026-08-16 23:34:12 +08:00
bfda29193a feat: add operational health and metrics endpoints (#37)
Co-authored-by: Meng Meng <[email protected]>
2026-08-16 21:28:01 +08:00
Rain SevenandGitHub f84a1f99b1 feat: verify SOCKS5 with real UDP round trip (#35) 2026-08-16 21:24:14 +08:00
MengMengCodeandClaude Opus 4.8 115598757a feat: dashboard host, performance, task, and online-rate cards
Add four cards to the dashboard:

- Host hardware card (CPU / motherboard / memory / disk model) backed by
  a new GET /api/dashboard/host endpoint that probes /proc and /sys once
  and caches the identities. x86 hosts read cpuinfo model name, DMI board
  data, dmidecode DIMM info, and block device models; ARM boards compose
  the device-tree SoC with the Cortex part name and fall back to memory
  capacity.
- Performance card with live CPU / memory / disk usage bars and real-time
  network up/down rates. Rates derive from cumulative kernel counters
  sampled on demand by dashboard polling (no background goroutine), with
  bridge/tunnel/vocat virtual interfaces excluded to avoid double
  counting.
- Upcoming scheduled tasks card listing the next three enabled automatic
  tasks with their run times.
- Module online rate card aggregating all recognized modules into one
  large percentage colored by four levels (red/orange/yellow/green).

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-08-16 17:46:38 +08:00
Rain SevenandGitHub 82494f519b feat: auto-detect DJI 4G modules (#32) 2026-08-16 17:08:51 +08:00
MengMengCode 5eee89a92a feat: Enhance SIM identity handling and carrier profile integration
- Added support for reading SIM metadata (SPN, GID1, GID2) in EC20 and Native QMI adapters.
- Refactored ePDG resolver to utilize carrier profiles for DNS resolution.
- Introduced automatic legacy proposal fallback in IKE provider based on negotiation failures.
- Updated IMS provider to cache transport settings per SIM identity and implement transport fallback logic.
- Enhanced SMS center retrieval to fall back to carrier profiles when no explicit configuration is found.
- Updated state management to include carrier profile information.
- Improved integration tests to cover new transport caching and SMS center logic.
- Added UI components to display carrier profile and match source in the device overview.
- Updated internationalization files to include new labels for carrier profile and match source.
2026-08-16 16:10:53 +08:00
MengMengCode ae3a2a6eea FIX #29 2026-08-16 15:16:45 +08:00
MengMengCode 505ee1eac0 FIX #27 2026-08-16 13:49:42 +08:00
MengMengCode b19ae2240a FIX #25 2026-08-16 13:33:55 +08:00
MengMengCode 68813198f9 fix: complete native 410 eSIM and VoWiFi flow 2026-08-16 02:54:38 +08:00
MengMengCode 38b4264133 Merge branch 'master' of https://github.com/MengMengCode/VoCat 2026-08-15 23:48:35 +08:00
MengMengCode df9dbfee74 feat: implement fresh device discovery and update UI for device refresh 2026-08-15 23:48:32 +08:00
8dc6d4f620 feat: add native OpenStick 410 modem support (#23)
* build: add QMI dependency and license attribution

* feat: add native OpenStick 410 modem support

---------

Co-authored-by: w0x41en <[email protected]>
2026-08-15 23:45:15 +08:00
MengMengCode c4c6a6c181 fix: support Fake-IP notifications and resilient updates 2026-08-14 22:59:46 +08:00
Meng MengandGitHub 540a967f96 fix: remove CLI credential timeout and password complexity limits (#20) 2026-08-14 22:46:37 +08:00
Meng MengandGitHub fcf57ffec9 Feat/admin credentials pr limit (#19)
* feat: reset admin credentials without requiring current password and update related prompts

* feat: update password requirements to a minimum of 6 characters for admin credentials
2026-08-14 21:52:53 +08:00
MengMengCode 083a952480 feat: add notification destination context for Telegram polling and implement related test 2026-08-14 19:09:31 +08:00
MengMengCode 67f2ddbaeb feat: add home carrier information to ModemSummary interface 2026-08-14 00:22:39 +08:00
MengMengCode e546e810fe Rollback 2026-08-13 23:38:45 +08:00
MengMengCode c7c7174b45 feat: support Sierra EM7430 MBIM modems 2026-08-13 20:05:07 +08:00
MengMengCode c436e12532 fix: discover USB smart card readers without pcscd 2026-08-13 10:53:56 +08:00
MengMengCode d0fd59a2a4 Enforce hard limits and hide unavailable task paths 2026-08-12 17:24:39 +08:00
MengMengCode 8ff337001e Add PC/SC backend support for USB SIM readers
- Implemented a new `unsupportedBackend` in `backend_stub.go` to handle unsupported platforms.
- Created a `Service` struct in `service.go` to manage interactions with smart cards, including session management and identity reading.
- Added methods for reading identity, checking readiness, and authenticating with USIM applications.
- Introduced a `scriptedCard` for testing purposes in `service_test.go` to simulate card responses.
- Defined necessary types and error handling in `types.go` for better clarity and usability.
- Developed a `PCSCAdapter` in `vowifi/pcsc_adapter.go` to integrate PC/SC service with Wi-Fi calling functionalities.
- Added a new SVG icon for USB SIM readers in `public/sim-reader.svg`.
- Implemented tests to ensure correct functionality and error handling in various scenarios.
2026-08-12 02:33:32 +08:00
MengMengCode 09cdd8c102 fix: update expected local time format in WeCom SMS values test 2026-08-11 23:06:48 +08:00
Meng MengandGitHub 154eb24700 Merge pull request #2 from zAhYAng/feat/wecom-notifications
feat: add WeCom message push notifications
2026-08-11 22:56:19 +08:00
zAhYAng 9a0f8f4b79 fix: polish WeCom notification settings 2026-08-11 22:28:36 +08:00
MengMengCode e4434bbfbf feat: add custom phone number support to card policies
- Introduced a new field `custom_phone_number` in the CardPolicy model and database schema.
- Updated the API to handle custom phone number input, including validation and normalization.
- Modified the CardPolicyPanel component to allow users to set and save a custom phone number.
- Enhanced the settings API to include the custom phone number in responses and updates.
- Added tests to ensure the correct functionality of custom phone number handling.
- Removed hardcoded environment variable for VOCAT_ADDR in service files.
2026-08-11 21:58:28 +08:00
zAhYAng 4f7873f3b1 feat: dispatch WeCom notifications 2026-08-11 21:39:53 +08:00
zAhYAng 8bb20aa9f0 feat: configure WeCom notifications 2026-08-11 21:38:09 +08:00
zAhYAng 342d88e0cf feat: add WeCom payload renderer 2026-08-11 21:33:38 +08:00
MengMengCode 30afe090d3 feat: enhance email validation to prevent injection attacks and improve related tests 2026-08-11 19:41:06 +08:00
MengMengCode ede7a8aa19 feat: implement automatic task recovery logic and enhance related tests 2026-08-11 19:32:22 +08:00
MengMengCode 177dde48b0 feat: enhance security by preventing exposure of sensitive credentials in logs and errors 2026-08-11 19:07:58 +08:00
MengMengCode 07e47d012d feat: implement eSIM notification handling and email message construction
- Add eSIM notification management in `esim_notifications.go` with functions to retrieve, list, and remove notifications.
- Implement parsing logic for pending notifications and notification metadata.
- Create tests for eSIM notification parsing and request handling in `esim_notifications_test.go`.
- Introduce email message construction in `email_message.go` to securely format and send emails.
- Add tests for email message encoding and validation in `email_message_test.go`.
- Enhance the CardPolicyAPN component to manage APN configurations, including adding, editing, and deleting custom APNs.
- Implement UI for displaying and managing APN settings with appropriate validation and user feedback.
2026-08-11 18:58:32 +08:00
MengMengCode ecf36a8f2e feat: enhance URL validation and email address parsing; refactor related components 2026-08-11 02:02:55 +08:00
MengMengCode be174d09ae feat: update schema version and refactor proxy binding logic
- Increment schema version from 11 to 12.
- Modify ProxyResolver to use ICCID for device proxy binding resolution.
- Update tests to reflect changes in proxy binding logic using ICCID.
- Enhance DeviceBindingsDialog to manage eSIM profile bindings instead of device bindings.
- Update UI components and translations to reflect the new profile binding terminology.
- Implement pagination for automatic task runs in AutomaticTasksPage.
- Create a new Pagination component for better navigation in lists.
2026-08-11 01:23:04 +08:00
MengMengCode e9d8dbf996 update 2026-08-11 00:22:54 +08:00
MengMengCode f4aaa3cfdd Implement automatic task management with CRUD operations and UI integration
- Added `automatic_tasks.go` and `automatic_tasks_test.go` for backend logic and testing of automatic tasks.
- Created `automatic_tasks_test.go` to validate task claiming and deletion behavior.
- Developed `AutomaticTasksPage.tsx` for frontend management of automatic tasks, including task creation, editing, and execution.
- Integrated device and eSIM profile selection for task configuration.
- Implemented automatic task scheduling and retry logic in the backend.
2026-08-10 22:15:54 +08:00
MengMengCode 70191ce1e3 feat: enhance Telegram call handling with VoWiFi and cellular support 2026-08-10 06:07:56 +08:00
MengMengCode 7dfdf8fcc8 feat: expand device networking and management 2026-08-10 03:27:43 +08:00
MengMengCode f1b7fc3c56 fix: expose IMS call failures and allow unlimited calls 2026-08-09 21:52:25 +08:00
MengMengCode 6d451ca9a3 fix: route calls only through ready IMS sessions 2026-08-09 21:31:24 +08:00
MengMengCode 42a21c6dc2 fix: redact Telegram tokens from errors 2026-08-09 21:14:07 +08:00
MengMengCode 6882b04fda feat: add Telegram AT and USSD commands 2026-08-09 21:06:35 +08:00
MengMengCode a8e8caf78d fix: redirect expired sessions to login 2026-08-09 20:47:53 +08:00
MengMengCode 670b029b38 fix: revoke sessions after updates 2026-08-09 20:23:00 +08:00
MengMengCode f3e4b675fb feat: add Telegram API URL handling and version comparison utilities
- Implemented `telegramAPIURL` and `validateTelegramAPIURL` functions for constructing and validating Telegram API URLs.
- Added semantic versioning utilities in `version.go` to compare versions and validate semantic version formats.
- Created tests for version comparison logic in `version_test.go`.
- Introduced IMS call handling in `call_runtime.go`, including methods for dialing, answering, and hanging up calls.
- Added tests for incoming call handling and validation in `call_runtime_test.go`.
- Developed a new `PluginsCard` component for managing plugins via URL or file upload in the web interface.
- Implemented plugin management functions in `extensions.ts` and created an `ExtensionPage` for displaying plugin contributions.
2026-08-09 19:28:12 +08:00
MengMengCode a5dd0bf088 Initial 2026-08-09 14:43:34 +08:00
MengMengCode 7c3c0ebb4b Initial 2026-08-09 05:33:21 +08:00