Skip to content

Latest commit

 

History

History
206 lines (162 loc) · 12.3 KB

File metadata and controls

206 lines (162 loc) · 12.3 KB

Changelog

Unreleased

v0.8.3

  • feat(pbs): the PBS refresh interval is a free value from 5 minutes to 24 hours, replacing six fixed presets with a 30 minute minimum
  • fix(install): metadata.json is synced on every install rather than only the first; kpackagetool runs once and the incremental sync only covered contents/, so the About tab kept reporting whichever version was current when the plasmoid was first installed

v0.8.2

  • feat(pbs): snapshots are listed across every namespace the token can see instead of the root namespace only; the namespace tree is enumerated once per datastore and each namespace fetched separately, so guests backed up into a non-root namespace now report their backup status (the snapshots endpoint returns only the requested namespace and rejects max-depth, so the tree has to be walked client-side)
  • fix(pbs): a namespace listing that fails or returns nothing usable falls back to the root namespace rather than leaving the datastore with no snapshots, covering tokens without namespace-listing privilege and PBS versions predating the endpoint
  • refactor(pbs): the three tiers of in-flight PBS requests are tracked by one type (PbsRequestTally) that drains a tier and registers the requests it spawned in the same step, so backup correlation cannot run against a partial result
  • refactor(pbs): backup-status key derivation moved into ProxmoxDataUtils::backupStatusKey(); it was previously built from two independent format strings about 2000 lines apart with no test
  • test(pbs): coverage for namespace-response parsing (malformed rows, duplicates and empty payloads all degrading to root) and for request-tier accounting, including a datastore draining fully while another namespace listing is still outstanding
  • fix(pbs): keyring entries are now identified by token identity (pbsTokenSecret:<tokenId>@<host>:<port>) instead of host alone, so two endpoints sharing one PBS server no longer overwrite each other's secrets; PBS secrets stored before this change are not migrated and must be re-entered (old proxmon-pbs-<host> entries are unreachable and can be removed manually with kwalletmanager)
  • fix(pbs): backup-status rows are now scoped by endpoint, so one PBS server holding backups for multiple Proxmox clusters no longer attributes one cluster's backup state to another cluster's VM/CT rows (requires each endpoint's PBS token to be scoped to that endpoint's datastores)
  • fix(config): multi-host PBS secret stash keys on token identity (was host only) and clears each stored entry individually instead of wiping the whole stash
  • fix(controller): multi-host PBS refresh iterates the validated endpoint queue, so endpoints missing a PVE host/token ID are no longer fetched for PBS
  • test(pbs): regression tests for key-identity discrimination (distinct tokens/ports on a shared PBS host) and debug-log redaction of the new key format

v0.8.1

  • feat(configBehavior): add a toggle to enable/disable the stats panel, independent of power actions (defaults on; included in Backup/Restore and defaults)
  • fix(VmRow/LxcRow): action-button reservation width now tracks which features are enabled, so the row tightens up instead of leaving dead space when the stats or power buttons are toggled off

v0.8.0

  • fix(console): honor configured trusted CA on VNC/LXC WebSocket connections (single-host, multi-host shared or per-endpoint), matching the API path; previously only the ticket-fetch request used it
  • fix(controller): auto-retry timer now actually schedules the retry after the computed backoff (previously only the banner text was set)
  • fix(controller): wire lowLatency setting through to request timeouts (10s → 5s when enabled)
  • fix(main): stop killing errorMessage/retryStatusText property bindings with imperative writes (explicit propagation via Connections)
  • fix(config): KCM Restore Defaults no longer enables Ignore SSL (cfg_ignoreSslDefault now matches main.xml)
  • fix(controller): collapse duplicate PBS refresh at startup (cert setters routed through the existing debounce)
  • chore(main): drop dead onPbsTestSucceeded/onPbsTestFailed handlers (leftover from removed PBS test button)
  • fix(main): coerce host-shell visible binding to bool (silences undefined-to-bool warning at load)
  • docs: sync ARCHITECTURE/developer notes with current code; drop completed multihost-models handoff; correct QtKeychain license file name (BSD-3-Clause)
  • feat(configGeneral): Backup / Restore section: export all settings to a versioned JSON file and import them back with schema validation and a confirm prompt; token secrets are never exported (whitelist + serialized-output guard) and matching keychain entries are picked up automatically after Apply
  • refactor(configGeneral): Default Settings now uses the same export-envelope format as Backup/Restore and captures all settings (previously a flat 6-field single-host file); legacy flat seeds are still read via a dedicated fallback (tokenSecret in them is never applied) and rewritten in the new format on next save
  • refactor(main.qml): startup defaults seed applies the full validated envelope to Plasmoid.configuration (drops binding-breaking direct assignments)
  • test(configportability): QML logic suite (qmltestrunner) wired into CTest covering round-trip, secret exclusion, import validation, needsSecrets detection and the legacy defaults reader
  • feat(stats): add per-VM/CT stats panel: CPU/mem sparkline from RRD history (last hour, 10-minute grid) plus best-effort IP address (QEMU guest agent for VMs, /interfaces for LXC); IP anonymized in dev mode
  • fix(NodeSection): add missing right margin on node card to match the VM/LXC list's scrollbar reserve

v0.7.3

  • fix(proxmoxclient): isolate task poll requests from refresh cancellation to prevent stuck busy spinner
  • fix(main): add action busy guard on status change; clears spinner via checkStateChanges if onActionReply never fires
  • fix(config): UI alignment and field sizing across all config tabs for consistent cross-distro rendering
  • fix(configGeneral): move SSL toggles into single/multi-host sections; PBS fields hidden when disabled
  • fix(configGeneral): add Delete Default button to defaults section
  • fix(configBehavior): align labels and dropdowns consistently
  • fix(configAppearance): fix label vertical alignment against spinboxes
  • refactor(NodeSection): node header status pill → 10×10 dot; computer-symbolic → vm icon; font size bumps
  • chore: remove legacy secret key candidate fallback chain
  • refactor(vncclient): drop remote resize (SetDesktopSize) and desktopsize encoding
  • fix(vnckeysym): recover base keysym from Qt key code when modifiers suppress text (ctrl+key)
  • fix(vncclient): use explicit_bzero for ticket zeroization; null client-data slot before free to close GetPassword race
  • chore(icons): update lxc/vm icons

v0.7.2

  • fix(VmRow/LxcRow): bundle JetBrains Mono for consistent cross-distro font metrics
  • fix(VmRow/LxcRow): fix monospace text vertical centering

Tested on Ubuntu 26 (KDE 6.6.4), Fedora 44 (KDE 6.6.5), Manjaro (KDE 6.6.5), openSUSE Tumbleweed (KDE 6.6.5)

v0.7.1

  • fix(VmRow/LxcRow): normalize row spacing, monospace stats labels at 12px, wider containers, vertical centering
  • fix(VmRow/LxcRow): add left margin to power buttons; reduce row left margin 8→4px
  • fix(VmRow/LxcRow): tighten stats block (90→80px) and mem label (46→34px) to close PBS-to-stats gap
  • fix(proxmoxcontroller): extend backup age display to weeks (7d+) and years (52w+)
  • fix(install): checksum-based sync; skip kpackagetool re-register if already installed
  • fix(configGeneral): remove notification toggle; bind via bool prop
  • fix(proxmoxclient): treat task WARNINGS as non-fatal
  • chore(main.qml): comment cleanup and dead code removal
  • docs(README): tighten security and SSL wording

v0.7.0

  • Feat: power actions toggle: enable/disable start/stop/restart buttons per endpoint
  • Fix: collapse backup status row layout when hidden (VmRow, LxcRow)
  • Fix: TapHandler hitbox by setting explicit width/height on compact representation root
  • LXC terminal: rework data path and add copy/paste support
  • UI: SSL warning text now uses bright red; security warnings added to ignore SSL toggles
  • UI: rename Console section to Features in behavior settings
  • Install: extend auto-rebuild watcher to cover Qt6, libvncclient, qtermwidget6, and additional libraries
  • Install: add --no-watcher flag to skip auto-rebuild watcher setup
  • Build: add mold linker support
  • Docs: script cleanup and security section trimmed to keychain and loopback limitation
  • Docs: add LXC terminal resize reflow known limitation

v0.6.1

  • Fixed VNC crash and deadlock when closing console mid-connection
  • Fixed PBS in-flight request abort on cancelAll()
  • Fixed per-endpoint certificate passing to VNC/TTY proxy in multi-host mode
  • Gated verbose debug logging behind developer mode

v0.6.0

  • Added VNC console and LXC terminal support
  • Added PBS (Proxmox Backup Server) backup status integration
  • Added per-endpoint SSL certificate support for multi-host mode
  • Added tag and VMID exclusion filters for PBS
  • Refactored plasmoid controller logic from QML to C++
  • Added GPU-accelerated frame renderer for VNC
  • Hardened secret storage and keyring handoff
  • Added journalctl-based debug log capture
  • Fixed multi-host notification batching

v0.5.1

  • Added PBS backup status integration
  • Added tag and VMID exclusion filters for PBS
  • Added PBS trusted cert config fields and error surface path
  • Fixed PBS startup race condition, double-fetch, and cancelAll bugs
  • Fixed PBS config reload and interval default causing breakage

v0.5.0

  • Refactored plasmoid controller logic from QML to C++
  • Shifted secret, refresh, and action orchestration into C++ controller
  • Hardened secret storage and keyring handoff
  • Added basic appearance color controls and config tab icons
  • Added per-host enable toggle for multi-host mode
  • Fixed multi-host notification batching and compact time display
  • Fixed action task follow-through to final success or failure
  • Fixed KWallet qdbus fallback to be fully asynchronous
  • Fixed keyring write confirmation before marking secrets ready
  • Removed legacy plaintext secret migration paths

v0.4.3

  • Fixed multi-host key autodetect stability and label preservation
  • Fixed multi-host config refresh and key migration alignment
  • Fixed notification and endpoint namespace collisions
  • Fixed compact CPU%, wildcard regex, and keyring error path
  • Fixed verbose debug logging gated behind developer mode
  • Fixed node header text overflow and empty state label centering
  • Added transfer timeout for stalled connections

v0.4.1

  • Added two-click action confirmation overlay
  • Added identity redaction toggle for notifications
  • Added warning hint for host/token refresh issues
  • Pinned VM action buttons with tooltips and hover state
  • Fixed CPU/RAM label alignment
  • Fixed in-flight reply handling

v0.4.0

  • Added multi-host mode with per-host enable toggle (up to 5 hosts)
  • Added notification filtering with whitelist/blacklist and wildcard support
  • Added KWallet auto-restore on widget re-add
  • Added auto-retry with exponential backoff
  • Added low latency mode for LAN setups
  • Added graceful per-node failure handling
  • Added two-click power action confirmation
  • Fixed compact representation click area
  • Fixed scrollbar gutter overlap with action buttons
  • Fixed cfg_* key bindings for config persistence

v0.3.3

  • Added QtKeychain secure credential storage
  • Added DBus notifier for state change notifications
  • Improved HTTP error reporting
  • Fixed KCM/native plugin decoupling
  • Dropped plaintext secret storage

v0.3.2

  • Added compact representation with animation
  • Added developer mode for verbose logging
  • Added logging levels and timestamps
  • Improved height calculation and layout
  • Fixed icon animations

v0.3.1

  • Added Kirigami migration for Plasma 6.6.2 compatibility
  • Fixed PlasmaCore.Units/Theme deprecation warnings

v0.3.0

  • Added AppArmor documentation
  • Added cross-distro install script with auto dependency detection
  • Added auto-update mechanism with systemd integration
  • Added visual tokens and refined theming

v0.2.0

  • Added remote power actions (start, stop, reboot, suspend)
  • Added KWallet/QtKeychain secure credential storage
  • Added SSL certificate trust support
  • Added per-node request failure tolerance

v0.1.0

  • Initial release
  • Basic Proxmox VE node, VM, and LXC monitoring
  • Single-host connection with API token authentication