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]>
- 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.
- 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.
- 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.