# Changelog
All notable changes to ProxMorph will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
## [2.7.3] - 2026-06-12
### Fixed
- **All themes** — Task Viewer window no longer loses its scrollbar. The blanket `.x-window .x-panel-body { overflow: visible !important }` rule was overriding ExtJS's own inline `overflow: auto` on scrollable panel bodies (`.x-scroller`). Fixed by scoping the rule to `:not(.x-scroller)`. Issue [#49](https://github.com/IT-BAER/proxmorph/issues/49)
- **All themes** — CT and VM creation dialog tabs are no longer pushed off-screen. `position: relative !important` on `.x-tab` was overriding ExtJS box layout's absolute positioning, causing each tab's offset to double-count (natural flow position + intended left = tabs spreading ~1.5× wider than the container). Removed the offending declaration. Issue [#50](https://github.com/IT-BAER/proxmorph/issues/50)
- **Catppuccin Latte** — Text on colored elements (progress bar fill, active buttons, badges) is now visible. `--ctp-on-accent` was set to `var(--ctp-base)` (`#eff1f5`, near-white), which is invisible on the light Latte background. Changed to `#ffffff` for proper contrast against vivid Latte accent fills (mauve, red, yellow). Issue [#51](https://github.com/IT-BAER/proxmorph/issues/51)
## [2.7.2] - 2026-04-16
### Fixed
- **Sensors** — Added pre-patch Perl syntax check on Nodes.pm before applying the sensor patch. If Nodes.pm is already broken (e.g. from the v2.7.0 APT-hook heredoc bug), the user now gets an actionable error: *"Run 'apt install --reinstall pve-manager' to restore it, then re-run ProxMorph install."* instead of a misleading post-patch rollback message. Issue [#47](https://github.com/IT-BAER/proxmorph/issues/47)
- **Sensors** — Rollback on post-patch syntax failure now restores from `Nodes.pm.original` backup when available, falling back to sed marker removal only if no backup exists.
## [2.7.1] - 2026-04-05
### Fixed
- **APT Hook** — Fixed broken heredoc escaping in `post-update.sh` that caused the Nodes.pm sensor patch to be injected as a single malformed line, breaking Perl syntax and preventing `pveproxy` from starting after a PVE update. Issue [#45](https://github.com/IT-BAER/proxmorph/issues/45)
- Added Perl syntax check (`perl -c`) after patching with automatic rollback if validation fails
## [2.7.0] - 2026-04-01
### Added
- **Sensor Selector** — Interactive per-sensor filtering for hardware monitoring. Issue [#44](https://github.com/IT-BAER/proxmorph/issues/44)
- `enumerate_sensors()` discovers all available sensors (CPU, NVMe, HDD, Fan) via `sensors -j`
- `configure_sensor_filter()` interactive multi-select menu to choose which sensors to display
- Filter stored in `/opt/proxmorph/.sensors-filter` (chip:label format), synced to cluster nodes
- `manage-sensors` menu gains option 4) Configure sensor selection
- `sensors configure` CLI subcommand for non-interactive reconfiguration
- Backwards-compatible: missing/empty filter file shows all sensors
- **proxmorph-sensors.js** (v1.2.0) — Client-side sensor filtering
- Reads `sensorsFilter` from API on each render (no first-load flash)
- CPU cores shown individually when filter selects specific cores without Package sensor
- APT hook updated to persist filter across PVE updates
## [2.6.0] - 2026-03-16
### Added
- **Proxmox Datacenter Manager (PDM) Support** — Full theme support for PDM 1.x:
- New `install.sh` product detection: auto-detects PDM alongside PVE and PBS
- 22 PDM-specific CSS override themes injected as `` tags into `index.hbs`, activated via JavaScript based on `localStorage` selection
- `proxmorph-pdm-base.css` — always-on component styling (rounded corners, shadows, button/panel/grid refinements)
- `pdm-theme-selector.js` — MutationObserver-based patch that injects ProxMorph themes into PDM's native Theme dialog dropdown alongside built-in Desktop/Crisp options
- PDM themes use CSS custom property overrides to remap `--pwt-color-*` tokens from the WASM-loaded base theme
- Inline `