* feat(container): support local image uploads and improve import task logs
* feat(container): support local image uploads and improve import task logs
* fix(container): remove duplicate image load response helper
The closable card tabs animated the close icon width between active and inactive tabs, so each tab switch reflowed the tab bar and caused the page to jitter. Reserve the close icon slot and toggle it with opacity instead, matching the terminal tab implementation.
Replace database rule synchronization with native rule operations and file-based backup, import, and recovery. Update firewall management views, descriptions, whitelist handling, and translations.
Include terminal reconnect fixes and xpack build tags for Darwin build targets. Remove temporary regression test files before committing.
- new export tab between monitor and settings with time range, metric,
device/interface/gpu selection and format choice
- files are generated in the browser from existing monitor apis; no new
backend endpoints
- csv with utf-8 bom, escaping and formula sanitization; multiple metrics
are zipped; xlsx uses one worksheet per metric with real date cells and
row-limit warnings; json emits flat row objects
- share downloadBlob in utils/file with delayed url revocation
- use the 60s monitor timeout and node header for gpu queries
Co-authored-by: ssongliu <sloooop1x@gmail.com>
* perf(monitor): improve monitor query and chart performance for large ranges
- enable LTTB sampling in the shared line chart to bound rendered points
- empty io/network in monitor search now means no name filter, returning
all device rows in one query instead of fanning out per device
- merge device names recorded in the monitor db into io/network/gpu
options so removed devices stay selectable; move logic to service layer
- add composite indexes (name, created_at) on monitor_ios/monitor_networks
and (product_name, created_at) on monitor_gpus
- stop migrating the unused MonitorGPU model into MonitorDB
- fix the memory param which was compared against "mem" and never matched
* chore(monitor): remove monitor test fixtures
---------
Co-authored-by: ssongliu <sloooop1x@gmail.com>
The SSH log page formatted dates with the browser timezone, so logs looked shifted when the client timezone differed from the server. Format the timestamp with the offset returned by the API so the page matches auth.log, the terminal and the CSV export. Refs #13860.