]> ###2026.03.07.16 - Improved update-banner changelog loading so it reads from multiple installed manifest locations (not only one path). - Added changelog fallback logic: - if notes for the installed version are unavailable locally, show the latest available changelog entry instead. - Added automatic update-category detection from changelog content: - Feature Update, - Bug Fix Update, - Security Update, - Performance Update, - UI/UX Update, - Maintenance Update, - Mixed Update. - Added a category+headline summary block in the `What changed` panel above the bullet list. - Added optional fallback context text when notes are sourced from a different changelog version. - Added regression tests for categorized update notes backend payload and settings UI rendering. ###2026.03.07.15 - Switched request-token guard mode from `compat` to `strict` for mutation endpoints. - Hardened custom icon upload endpoint: - added per-client upload rate limiting, - added maximum stored icon count guard, - expanded SVG sanitization to block external/protocol references. - Removed third-party icon API `baseDir` disclosure from the folder listing response. - Added `noopener noreferrer` protections to external `_blank` links and popup actions. - Extended regression tests for strict token mode, endpoint hardening, and safe external link handling. ###2026.03.07.14 - Added a signature-based Docker template metadata cache in `readInfo(full)` to avoid reparsing unchanged XML templates on every refresh. - Added Tailscale helper optimization: - short-lived cache for container TS IP/FQDN lookups, - skip `docker exec tailscale ...` when a container is not running. - Added lazy Docker tooltip payload build: - tooltip content now renders on first open instead of prebuilding for every container row. - Added chunked import apply execution for large imports so progress updates stay responsive during long runs. - Added Advanced Diagnostics performance panel with in-session timing samples for Docker/VM refresh and import operations (last/avg/max). - Added regression coverage for template cache, Tailscale cache/guard, lazy tooltip build, import chunking, and diagnostics panel wiring. ###2026.03.07.13 - Performance update pass across server/runtime paths: - added short-lived `read_info` caching for full and lightweight state payloads, - added state-mode polling for live refresh so full list re-render only runs when signatures change, - added precomputed folder membership caches for Docker/VM rendering in Docker, VMs, and Dashboard views, - added third-party icon directory scan caching for faster icon picker loading with large icon libraries, - narrowed row-centering observer scope to Docker table roots and tightened folder status icon observation, - added regression coverage for the new performance guards. ###2026.03.07.12 - Setup Assistant phased overhaul: - added step-level validation gates with required blockers before `Next`/`Apply`, - added richer review impact cards (prefs/import/rule totals), - added draft save + auto-resume with one-click `Start fresh`, - added built-in dry-run apply mode for preview-only setup runs. - Added environment presets (`Home Lab`, `Production`, `Media Stack`) with optional behavior defaults. - Added starter-rule preview matching text so suggested regex rules show current sample matches. - Added Setup Assistant keyboard/focus accessibility improvements: - focus trap, `Esc` close guard, and progress `aria-live` updates. - Added post-apply verification summary reporting persisted mode/setup flags and checkpoint status. - Added UI regression guards for new Setup Assistant runtime and styling hooks. ###2026.03.07.11 - Replace the old quick-setup prompt with a full multi-step Setup Assistant: welcome, profile, import, rules, behavior, and review/apply. - Add guarded first-run completion markers so setup only auto-runs for true first installs. - Add rollback-backed apply flow with import planning for Docker/VM and starter rule bootstrap. - Add responsive Setup Assistant overlay UI with progress tracking and one-click undo option. ###2026.03.07.10 - Reduced Advanced header compact-toggle button size for a cleaner icon-only control. - Added default-sized advanced module viewports with auto vertical scrolling only when content exceeds the module height. - Applied overflow guard to all advanced modules (including Docker/VM backup modules) so long content no longer runs indefinitely down the page. - Added regression assertions for advanced module sizing/scroll behavior. ###2026.03.07.09 - Refined VM `Resources` chips to a more modern chip style (aligned with Docker health chip visual quality): - dedicated CPU and RAM chip themes, - stronger value emphasis and icon-led scanning, - improved tooltip readability for totals and per-VM averages. - Updated Advanced mode header compact control: - compact toggle is now icon-only, - hover tooltip now shows `Compact tab`, - retained accessible aria label behavior for compact/expand state. - Updated responsive styling so icon-only compact control remains clean on smaller viewports. ###2026.03.07.08 - Improved VM `Autostart` chip clarity in Basic table: - `All auto X/Y` when all VMs autostart, - `Mixed X/Y` when some autostart, - `Manual 0/Y` when none autostart, - `Empty` for folders with no VMs. - Added autostart state icons and richer autostart tooltips with member previews. - Improved VM `Resources` column presentation: - split into compact `CPU` and `RAM` chips for easier scanning, - added detailed tooltip with total and per-VM average resources. - Added UI smoke assertions for new VM autostart/resource chip classes to reduce regressions. ###2026.03.07.07 - Fixed Status column scrollbar issue in Basic tables: - removed per-row horizontal scrollers from status chips, - kept chips left-to-right without forcing a row-level scroll bar. - Rebalanced table column widths so the Status column has enough space for side-by-side chips. - Tightened status chip spacing/padding for better fit while preserving readability. ###2026.03.07.06 - Fixed Status chip spacing regression in Basic tables (Docker and VMs): - status chips now stay left-to-right in a single row, - removed vertical wrapping behavior that stacked chips up/down. - Kept per-state chip behavior and targeted attention styling while improving horizontal alignment. - Added regression coverage for no-wrap status-chip layout. ###2026.03.07.05 - Refined Basic table `Status` column to render separate status chips per folder state instead of a single combined badge. - Each folder now shows only relevant chips: - `Started`, `Paused`, and `Stopped` chips for active states, - `Empty` chip for folders with no members. - Attention styling now applies only to the state chip that needs it (for example, stopped risk on the `Stopped` chip), not the whole status block. - Status-chip filtering now works by clicked state chip: - click a state chip to filter folders by that state, - click again to clear and show all. - Added layout polish for multi-chip status rendering and trend badge alignment. ###2026.03.07.04 - Upgraded the Basic `Status` column with richer, user-controlled behavior: - added `Summary` vs `Dominant` display modes, - added optional trend indicators to show status movement between renders, - added optional attention accent for high-risk states. - Added per-type global status warning thresholds (Docker and VM) in settings. - Added per-folder status warning threshold override in folder editor: - optional `Status warn threshold (%)` (blank uses global threshold). - Added exact click-to-filter behavior on Status chips: - clicking a status now filters to only that status group, - clicking again clears that status filter. - Added detailed status tooltips with counts, member samples, threshold source, and filter hint text. - Added status snapshot/compare plumbing and normalization guards to reduce future regressions. ###2026.03.07.03 - Fixed Health chip filtering behavior in Docker folder table: - clicking `Good` now filters to only `Good`, - clicking `Warn` now filters to only `Warn`, - clicking `Critical` now filters to only `Critical`, - clicking `Empty` now filters to only `Empty`. - Clicking the same Health chip again clears that specific Health filter and returns to all folders. - Kept the clear-filters fallback action for empty results to ensure recovery without page refresh. ###2026.03.07.02 - Fixed Docker Health chip filter workflow: - added a `Clear filters` fallback action when a filter combination returns no rows, - prevents getting stuck in an empty table state after enabling health-only filtering. - Improved settings action-pill UX: - unsaved-change status now only appears when there are unsaved changes, - moved status into a separate floating chip above the button pill so it no longer stretches the action bar. ###2026.03.07.01 - Overhauled Docker folder `Health` column with clearer score chips: - `Good`, `Warn`, `Critical`, and `Empty` states. - Health severity now factors in update risk: - update availability contributes to warning/critical escalation. - Added reason tooltips for Health chips: - shows stopped/paused totals, update counts, and threshold source. - Added click-to-filter on Health chips: - toggles table view between all folders and Warn/Critical folders only. - Added per-folder health warning threshold override in folder editor: - optional `Health warn threshold (%)` field (blank uses global threshold). - Added regression guards for new health column logic and folder setting hooks. ###2026.03.06.33 - Fixed Docker `Updates` column counting regression: - now uses the exact Unraid Docker condition for update-ready containers, - counts only containers where `State.manager === "dockerman"` and `State.Updated === false`. - Prevented false positives where folders appeared to have updates when containers were already up to date. - Added regression assertion to lock this condition and prevent future drift. ###2026.03.06.32 - Refined Docker `Updates` column UX: - state-based chips (`Up to date`, warning, high-attention), - clear icons per state and fixed chip width for visual stability. - Added update-details tooltip for quick context: - shows containers with updates (with `+N more` when needed). - Added click-to-filter behavior on Docker update chips: - click updated folder chip to show only folders with updates, - click again to return to full folder list. - Added regression checks for new update-chip behavior hooks/styles. ###2026.03.06.31 - Added new high-value Basic columns with type-aware rendering: - shared: Last changed, Pinned, - Docker: Updates, Health, - VMs: Autostart, Resources. - Added folder metadata tracking for timestamps: - folder updates now persist `createdAt` and refresh `updatedAt`, - Last changed uses this metadata for per-folder visibility. - Extended VM info payload with runtime capacity fields: - `vcpus` and `memoryKiB` for aggregate folder resource summaries. - Added/updated regression checks for new column hooks and metadata wiring. ###2026.03.06.30 - Basic table action buttons are now visually consistent in size: - pin, export, delete, and copy-ID all use the same compact button dimensions. - Added a new folder row action: - copy folder ID to clipboard (clipboard icon button) for Docker and VM tables. - Kept folder ID discoverable in the Name cell tooltip while adding one-click copy. ###2026.03.06.29 - Basic folder tables (Docker + VMs) updated to reduce clutter and improve signal: - removed ID as a dedicated column, - added dedicated Members, Status, and Rules columns, - kept Order and Actions for fast management workflows. - Name column now focuses on icon + folder name, with folder ID shown as tooltip metadata. - Added runtime status chips with clear state coloring (started/paused/stopped/empty). - Added folder-level rules count visibility: - shows active/total when disabled rules exist, - keeps quick at-a-glance rule coverage per folder. ###2026.03.06.28 - Add server-persisted import presets: - save custom presets in plugin preferences (not local browser storage), - keep per-type default preset selection across browsers/sessions. - Improve import preview workflow: - live selected-operation counters and action totals as checkboxes change, - clearer selected counts by Create/Update/Delete in the preview summary. - Expand backup compare: - optional "include preferences" mode in Docker/VM compare, - show structured preference-level diffs in compare results. - Add large-library performance guardrails: - paginate import and backup-compare diff tables, - include pager controls for faster rendering on large datasets. - Add regression coverage for the new import preset, compare, and paging paths. ###2026.03.06.27 - Add import presets in the import preview dialog: - built-in presets for merge/replace/skip and dry-run merge, - custom preset save/delete, - per-type default preset selection. - Add backup snapshot compare tools for Docker and VM backups: - compare backup-to-backup or backup-to-current live folders, - show row-level create/update/delete diffs with changed field details. - Add backup endpoint snapshot-read action used by compare UI. ###2026.03.06.26 - Complete compatibility-safe security rollout: - load request-header client on Docker, VMs, Dashboard, and Folder editor pages, - keep token enforcement in compat mode for legacy browser/client safety. - Add security regression tests to prevent drift: - token/meta/backup-download guards and output sanitization checks. ###2026.03.06.25 - Security hardening (compatibility-safe): - add `X-Content-Type-Options: nosniff` and no-store JSON response headers, - add safer API exception handling + server-side error logging. - Request token rollout (compat mode): - auto-create token file, - emit `fv-request-token` meta tag on plugin pages, - keep compatibility fallback for older clients. - Backup download hardening: - add POST + guarded `download_post` path, - keep legacy GET download as temporary fallback. - UI injection hardening: - escape folder name/icon rendering in Docker, VMs, and Dashboard views, - escape custom action names in folder editor output. ###2026.03.06.24 - Automated release metadata update. ###2026.03.06.23 - Automated release metadata update. ###2026.03.06.22 - Automated release metadata update. ###2026.03.06.21 - Automated release metadata update. ###2026.03.06.20 - Automated release metadata update. ###2026.03.06.19 - Automated release metadata update. ###2026.03.06.18 - Automated release metadata update. ###2026.03.06.17 - Automated release metadata update. ###2026.03.06.16 - Automated release metadata update. ###2026.03.06.15 - Automated release metadata update. ###2026.03.06.14 - Automated release metadata update. ###2026.03.06.13 - Automated release metadata update. ###2026.03.06.12 - Automated release metadata update. ###2026.03.06.11 - Automated release metadata update. ###2026.03.06.10 - Automated release metadata update. ###2026.03.06.09 - Automated release metadata update. ###2026.03.06.08 - Automated release metadata update. ###2026.03.06.07 - Automated release metadata update. ###2026.03.06.06 - Automated release metadata update. ###2026.03.06.05 - Automated release metadata update. ###2026.03.06.04 - Automated release metadata update. ###2026.03.06.03 - Automated release metadata update. ###2026.03.06.02 - Automated release metadata update. ###2026.03.06.01 - Automated release metadata update. ###2026.03.14.11 - Automated release metadata update. ###2026.03.14.10 - Automated release metadata update. ###2026.03.14.9 - Automated release metadata update. ###2026.03.14.8 - Automated release metadata update. ###2026.03.14.7 - Automated release metadata update. ###2026.03.14.6 - Automated release metadata update. ###2026.03.14.5 - Automated release metadata update. ###2026.03.14.4 - Automated release metadata update. ###2026.03.14.3 - Automated release metadata update. ###2026.03.14.2 - Automated release metadata update. ###2026.03.05 - Automated release metadata update. ###2026.03.14.1 - Move 3rd-party icon storage to a packaged image path: - use `/usr/local/emhttp/plugins/folderview.plus/images/third-party-icons/`, - keep built-in icons in `/usr/local/emhttp/plugins/folderview.plus/images/icons/`. - Add packaged folder stub: - `images/third-party-icons/README.txt` with structure and extension guidance. - Update 3rd-party icon picker labels/help text to the new `images/third-party-icons` path. ###2026.03.13.9 - Add `3rd Party icons` browser in Folder settings: - new button next to `Built-in icons`, - lists user folders from `/boot/config/plugins/folderview.plus/third-party-icons`, - click a folder to reveal and pick icons within that folder. - Add secure server endpoint: - `server/third_party_icons.php` supports folder listing, icon listing, and safe image serving, - blocks path traversal and only allows common image extensions. ###2026.03.13.8 - Tighten folder-editor left alignment again: - force all text/number/select controls to anchor left (no auto-centering margins), - force switch-button wrappers to anchor left as well, - apply the same rules in runtime JS guard for theme/plugin CSS overrides. ###2026.03.13.7 - Re-harden folder editor left alignment after settings layout drift: - switch runtime force-layout to a stable grid-based left column guard (`fv-force-left-v3`), - remove legacy float/margin offset behavior that could push setting values right, - keep mobile behavior as a stacked single-column layout. ###2026.03.13.6 - Add built-in icon catalog support for folder edit pages: - ship local icons in `/plugins/folderview.plus/images/icons/` with manifest `icons.json`, - add searchable icon picker in Folder editor while keeping URL/manual icon input support. - Replace modal-only update notes with a persistent settings panel: - show “What changed” after update until user explicitly dismisses that version, - include quick changelog link and “hide for now” action. ###2026.03.13.5 - Refresh folder icon asset in both source and packaged plugin image paths. - Release bump so Unraid can pull and apply the updated icon package. ###2026.03.13.4 - Use packaged image filename for plugin and page icons: - set plugin manifest icon to `folder-icon.png`, - set all settings/page `Icon` headers to `folder-icon.png`, - continue shipping icon file under `/plugins/folderview.plus/images/folder-icon.png`. - Keeps icon sourcing inside plugin package instead of repository root `/img`. ###2026.03.13.3 - Stabilize icon rendering in Unraid UI: - use supported Font Awesome icon class in plugin manifest (`folder-open-o`), - avoids broken image icons in Plugins tab caused by image-src handling differences. ###2026.03.13.2 - Fix icon rendering regression: - restore page/menu `Icon=` headers to supported Unraid icon class (`folder-open-o`) to prevent fallback/default icons, - switch plugin card icon to direct GitHub image URL for reliable image rendering in Plugins tab. ###2026.03.13.1 - Wire plugin icon to packaged PNG asset: - add `/plugins/folderview.plus/images/folder-icon.png` to installed plugin files, - update plugin manifest icon and page headers (Docker, VMs, Dashboard, Folder, Settings) to use the PNG path. - Release bump to ensure Unraid pulls and applies icon change in GUI. ###2026.03.12.9 - Release bump for validation rollout through Unraid update flow. - Includes latest repository asset updates and metadata refresh. ###2026.03.12.8 - Improve Docker/VM sort/settings UX: - convert each sort/settings block into a collapsible panel, - default state is collapsed for cleaner settings pages. - Add one-time "Updated to VERSION" popup in settings: - shown after plugin version changes, - pulls current-version CHANGES lines from local manifest for quick "what changed" visibility. ###2026.03.12.7 - Move Docker/VM settings controls panel below the action buttons in plugin settings: - panel now starts at the left under `Export all / Import / Restore latest backup / Clear`, - panel spans full width left-to-right for cleaner layout. - Apply the same layout structure to both `Docker` and `VMs` sections. ###2026.03.12.6 - Add update-safe advanced-section expansion guard: - newly introduced advanced sections now auto-expand once after plugin updates, - existing user collapse choices remain respected for previously known sections. - Add persistent advanced-section discovery tracking to prevent future regressions where new settings land collapsed after update. ###2026.03.12.4 - Add full Folder Health feature set in settings: - new `Folder health cards` section with Docker/VM health summaries (empty/stopped/conflict/regex issues, pinned/rules, stopped ratio), - card-level quick filters (`All`, `Attention`, `Empty`, `Stopped`, `Conflict`) that immediately filter folder tables, - quick actions from cards to jump to table view, run conflict scan, and run diagnostics. - Add new Docker/VM health preferences in settings cards: - `Show health cards`, `Runtime summary badge`, `Compact card layout`, and `Warn stopped (%)`. - Add optional runtime summary badge support in Docker and VM tab scripts (controlled by per-type health prefs). - Extend preference schema + diagnostics snapshot to persist/report health settings safely across updates. - Add utility test coverage for new health preference normalization behavior. ###2026.03.12.2 - Fix pinned folder ordering in runtime views: - apply prefs-based folder slot ordering (including `pinnedFolderIds`) in `Docker`, `VM`, and `Dashboard` scripts before row creation, - apply same ordering logic for fallback folders not present in saved UI order. - Result: pinning in settings now moves folders to top in Docker/VM views as expected. ###2026.03.12.1 - Increase top-left settings title size again for stronger visual hierarchy and readability. - Keep subtitle and toolbar layout behavior unchanged. ###2026.03.11.9 - Increase settings header visual prominence: - larger, bolder top-left title sizing for better readability. - Fix pin/unpin ordering regression in settings: - stop mutating in-memory folder map during table render, - after pin/unpin, refresh from server so unpinned folders return immediately to normal order without page reload. - Add test coverage for unpin behavior returning to base/manual order. ###2026.03.11.8 - Improve top-left settings title legibility: - switch to heading-style title (`FolderView Plus`) with larger scale, - add subtitle (`Plugin settings`) for clearer context, - keep responsive behavior so title remains readable on smaller widths. ###2026.03.11.7 - Add a clear top-left settings title in the plugin toolbar: `FolderView Plus Settings`. - Keep existing controls on the right and preserve responsive behavior on smaller widths. ###2026.03.11.6 - Advanced tab numbering cleanup: - tab badges now show unique step order (`1..N`) left-to-right, - remove duplicate-count behavior that caused repeated numbers. - Advanced section expansion behavior update: - all advanced sections now default to expanded, - keep per-section compact toggles, - add `Compact tab` / `Expand tab` action in the advanced header. - Migrate advanced expand-state storage key to reset old collapsed defaults safely. ###2026.03.11.5 - Split settings into clearer mode workspaces: - `Basic` now shows only `Docker` and `VMs`. - `Advanced` now shows `Customizations` plus advanced tab groups. - Keep mode/search/wizard controls always visible by mounting the settings toolbar outside section visibility rules. - Preserve unsaved form state while switching between Basic and Advanced views in the same settings page. ###2026.03.11.4 - Advanced settings layout refactor to prevent UI crowding: - add advanced tab groups (`Automation`, `Recovery`, `Operations`, `Diagnostics`), - default advanced sections to collapsed with per-section toggles, - persist last active advanced tab/section and expanded section state. - Search behavior update: - default search scope is current advanced tab, - add `Search all advanced` toggle for cross-tab matching. - UI polish: - add dedicated advanced nav bar and section collapse styling. ###2026.03.11.3 - Reliability and release hardening: - add install smoke test script and wire it into CI + release workflows, - add release metadata helper and release-prep automation script, - add optional local pre-push hook installer to block unsafe pushes. - Test coverage expansion: - add Docker/VM end-to-end workflow tests covering create/edit/delete, import merge/skip/replace, backup/restore, and order persistence. - New rollback UX: - add global rollback checkpoints for Docker + VM folders and preferences, - add one-click rollback to previous snapshot in settings. ###2026.03.11.2 - Fix release package layout for CI/installer parity: - rebuild archive with canonical `./usr/local/...` paths, - keep request-guard compatibility fix from `2026.03.11.1` unchanged. ###2026.03.10.9 - Security hardening pass: - add centralized mutation request guard (POST-only + trusted request context + optional token support), - move mutating endpoints from `$_REQUEST` to explicit `$_POST`, - convert folder delete API usage in Docker/VM/Dashboard/settings flows from GET to POST. - Input safety improvements: - add folder payload size limits and nested content normalization/sanitization before write, - reject invalid folder payloads instead of silently storing malformed content. - Endpoint hardening: - modernize read/sync endpoints with explicit JSON responses and structured error handling, - replace `cpu.php` shell command usage with direct `/proc/cpuinfo` parsing. ###2026.03.10.8 - Redesign Docker/VM settings cards for cleaner readability: - split into `Layout`, `Folder badges`, and `Runtime` mini-panels, - compact sort row with inline help chip, - improved spacing/alignment for toggles and numeric controls. - Runtime quality-of-life: - show `Interval (sec)` only when `Live auto-refresh` is enabled, - show `Lazy threshold` only when `Lazy previews` is enabled. ###2026.03.10.7 - Force another version bump to bypass stale cache paths that still deliver `2026.03.10.5` on some systems. - Contains the same payload as `2026.03.10.6` (including removal of `Jump to section`). ###2026.03.10.6 - Remove the `Jump to section` dropdown from Customizations as requested. - Keep `Reset section` functional by auto-targeting the first visible section in current mode/search. - Move clear-search (`X`) next to `Search settings` and simplify toolbar layout/docs. ###2026.03.10.5 - Force version bump so Unraid installs latest package cleanly when `2026.03.10.4` is already cached/considered installed. - Includes the `Jump to` label cleanup from `2026.03.10.4`. ###2026.03.10.4 - Fix `Jump to` section labels so they no longer include status badge text (`all good`, `N changed`, etc.). - Dropdown now shows clean section names only (for example: `Customizations`, `Docker`, `VMs`). ###2026.03.10.3 - Reorder customization header controls for clearer right-side flow: - `Search settings` now sits directly to the left of `Basic/Advanced`, - `Wizard` now sits to the right of `Basic/Advanced`. - Split toolbar controls into explicit left/right groups to prevent spacing drift and keep alignment stable. ###2026.03.10.2 - Reorder top settings controls to improve flow: - `Search settings` and `Jump to` are now left-side tools, - `Wizard` + `Basic/Advanced` mode switch are grouped on the far right. - Remove the `X advanced sections hidden` helper text from the top control bar for a cleaner header. - Improve desktop/mobile spacing behavior so toolbar controls stay aligned without wrap regressions. ###2026.03.10.1 - Persist quick-setup completion and selected mode in server-side prefs (`setupWizardCompleted`, `settingsMode`) so updates do not re-trigger onboarding. - Auto-mark onboarding complete for existing installs with current folder/rule/pin data to avoid false first-run prompts. - Keep true first-run behavior for clean installs (prompt shown only when no saved setup state exists). ###2026.03.09.9 - Move settings quick controls inline with the `Customizations` header and right-align them on desktop. - Simplify and declutter the top controls layout: - compact single-row mode/search/jump/wizard controls, - cleaner spacing and responsive wrap behavior on smaller screens. ###2026.03.09.8 - Phase-based settings UX overhaul: - add top-level `Basic / Advanced` mode switch (default: Basic) with persistent preference, - add global settings search + section jump navigation, - add section health badges (`all good`, `N changed`, `N invalid`) and invalid field highlighting, - add sticky action bar (`Save`, `Save and Close`, `Cancel`, `Reset section`) for faster workflow control, - add regex preset chips + live match counters for Docker/VM auto-assignment rule editors, - improve import safety UX with dry-run default and clearer merge/replace/skip labeling, - add first-run quick setup wizard and quick re-run button in settings. ###2026.03.09.7 - Fix package archive path layout to install files under `/usr/local/...` (active Unraid plugin path). - Prior package variants wrote to `/local/...`, which updated plugin version but did not replace active runtime files. ###2026.03.09.6 - Replace folder editor alignment fallback with float-based forced left column: - force `dt` label width and `dd` left margin directly inline (`!important`) for reliable legacy UI behavior, - add runtime marker `fv-force-left-v2` for on-server verification. ###2026.03.09.5 - Harden folder editor alignment fallback compatibility: - remove `:scope`-based selectors from runtime layout enforcement, - keep left-column inline layout forcing compatible with older browser engines used by Unraid. ###2026.03.09.4 - Add JS-enforced left-alignment fallback for folder editor settings: - apply inline left-column layout rules after form render and on setting changes, - re-apply on resize and delayed passes to override late-loaded theme/Dynamix styles. ###2026.03.09.3 - Enforce left-aligned folder edit layout with fixed label/value columns: - replace inherited centered form-row behavior with explicit two-column grid rows, - keep responsive single-column layout on small screens. ###2026.03.09.2 - Fix folder editor field alignment: - force all Docker/VM folder edit rows to anchor to the same left column, - override centered Dynamix `dl` layout so Name/Icon/WebUI/Preview blocks align consistently. ###2026.03.09.1 - Major feature expansion and quality pass: - add folder pinning and optional hide-empty folder behavior in settings/runtime views, - add runtime action planner (preview + apply) for folder-level Docker/VM start/stop/pause/resume, - add change-history panel and one-click undo to latest transaction/undo backup, - add stronger diagnostics integrity checks (pinned IDs, icon path format) and richer update-check telemetry, - add release guardrails script and enforce guard checks in CI/release workflows, - expand utility/settings tests for new prefs/runtime planning behavior. ###2026.03.08.9 - Full bugfix pass for regressions and stability: - scope custom-action dialog styling to its own dialog widget (no global `.ui-dialog` side effects), - fix delayed refresh calls by passing `loadlist` to `setTimeout` instead of invoking it immediately, - harden Docker folder row centering logic to detect folder rows/cells even when clone markup differs, - add input guards and JSON error responses for create/update/delete server endpoints. ###2026.03.08.8 - Fix import preview dialog UI polish: - stabilize import-selection scroll position while toggling items, - improve selection list layout/overflow styling in merge mode, - remove conflicting titlebar close button on this dialog to prevent top-right overlap with action controls. ###2026.03.08.7 - Make Docker clone-row matching independent of table IDs/classes: - treat rows with `folder-preview` as canonical source rows, - treat rows without `folder-preview` as clone rows, - sync clone heights by folder id, then folder name, then index fallback. ###2026.03.08.6 - Improve clone-row height matching reliability for Docker folder left column: - match clone rows to main rows by folder id, then folder name, with index fallback, - source canonical heights from `#docker_list` rows only, - keep main rows natural while applying synced heights to clone rows for true visual centering. ###2026.03.08.5 - Rework Docker left-column centering sync to match by folder id content: - derive folder id from row class or hidden `folder-(id)` marker, - map source heights from real `#docker_list` rows, - apply height sync only to non-main clone rows and keep main rows at natural compact height. ###2026.03.08.4 - Fix Docker folder left-column centering regression while keeping compact spacing: - use absolute vertical centering for folder label block on both row render paths, - retain clone-row-only height sync to avoid reintroducing oversized row gaps. ###2026.03.08.3 - Refine Docker left-column alignment logic: - keep natural compact layout for main preview rows, - apply absolute vertical-centering only to fixed-column clone rows, - preserve compact spacing while restoring visual middle alignment. ###2026.03.08.2 - Tighten Docker row-height syncing to restore compact spacing: - keep natural height on main folder rows (with preview content), - only sync explicit height on fixed-column clone rows, - clear prior forced main-row heights and remove extra minimum height on folder label wrapper. ###2026.03.08.1 - Replace Docker folder left-column centering strategy with height-sync + flex alignment: - remove absolute-position centering for folder name block, - compute/sync row height across folder row clones and apply that height to folder cells, - keep observer-driven re-apply for late fixed-column/table clone renders. ###2026.03.07.9 - Harden Docker folder vertical centering for fixed-column render paths: - center all folder name cells (`td.ct-name.folder-name`) regardless of table clone/source, - add MutationObserver + deferred re-apply to catch late DOM/table clone rebuilds. ###2026.03.07.8 - Fix Docker folder row vertical alignment in fixed/clone table layouts: - widen centering selectors to all folder rows instead of only `#docker_list`, - apply runtime centering styles to every matching folder row copy after render. ###2026.03.07.7 - Add runtime-enforced Docker folder row alignment fallback in `docker.js`: - apply inline `vertical-align: middle !important` to folder row cells after render, - force left folder cell content block to centered positioning after insertion and after full folder build. - Keep CSS centering rules in place, with JS fallback overriding any theme/custom style collisions. ###2026.03.07.6 - Rework Docker folder left-cell vertical centering using explicit in-cell absolute centering, avoiding inherited top alignment from Unraid table styles. ###2026.03.07.5 - Tighten Docker folder row centering fix: - force vertical middle alignment on all folder row cells, - remove top/bottom padding from the folder name cell, - enforce a minimum height on the left folder content block to match preview row height. ###2026.03.07.4 - Fix Docker folder row alignment: folder cells are now vertically centered relative to the container preview row. ###2026.03.07.3 - Update plugin metadata author to `alexphillips-dev` so Unraid displays the correct repository owner. ###2026.03.07.2 - Runtime defaults hardening: - set `Live auto-refresh` default to OFF, - set `Performance mode` default to OFF, - set `Lazy previews` default to OFF. - Add runtime preference schema guard so older installs are migrated to safe OFF defaults on update instead of auto-starting runtime features. - Tighten runtime checks so lazy-preview behavior only activates when explicitly enabled. - Update settings rendering to treat runtime toggles as opt-in (`true` only), not enabled-by-missing. ###2026.03.07.1 - Fix folder editor row alignment so settings blocks are left-anchored with section headers instead of centered. - Keep nested preview/advanced controls aligned to the same left column for consistent spacing. ###2026.03.06.9 - Phase 1 folder editor overhaul: - add section navigation (General, Members, Preview, Actions, Automation, Advanced), - add compact live summary panel with preview/context/member status insight. - Phase 2 usability/safety upgrades: - replace drag-only member ordering with explicit up/down controls, - add member search + filter controls (all/included/excluded/regex/manual), - add inline validation for folder name, regex, WebUI URL, and graph time, - add unsaved-changes indicator with unload/cancel protection and reset action. - Phase 3 live diagnostics inside editor: - add regex simulator with single-name probe and match-count preview across current members. - Add `Save as copy` workflow in folder editor with automatic non-colliding copy names. ###2026.03.06.8 - Add full rules simulator for Docker/VM to preview assignment outcomes across all items. - Upgrade import preview with row-level diffs (action, id, name, changed fields). - Add cron-backed scheduled backup runner so backup schedules execute without opening the plugin settings page. - Add large-library performance controls: - new lazy preview toggle + threshold in settings, - runtime lazy preview behavior for Docker/VM/Dashboard when folders exceed the threshold. - Add bulk rule/template operations (enable/disable/delete/export for rules; delete/export for templates). - Add quick search filters for folders, rules, backups, and templates in settings. - Add diagnostics quality-of-life: - copyable issue report text for GitHub issues, - recent timeline data in diagnostics snapshots. - Expand CI test coverage with additional utility tests and settings binding smoke tests. ###2026.03.06.7 - Complete the advanced settings update set: - add folder templates API/UI (save/apply/delete), - add conflict inspector report UI, - add support-bundle export flow with Full/Sanitized mode selection. - Expand runtime preferences support: - add live auto-refresh timers honoring per-type interval and enable toggles, - add performance mode behavior on Docker/VM/Dashboard by disabling heavy folder preview features at runtime. - Expand diagnostics and compatibility foundations: - add path repair action endpoint integration, - add advanced rule kinds/effects plus exclude precedence consistency in JS/PHP decision logic, - add richer prefs schema normalization (runtime + backup schedule fields) and test coverage. ###2026.03.06.6 - Add compatibility migration for legacy Folder View installs: - auto-import folder data from `/boot/config/plugins/folder.view3` and `/boot/config/plugins/folder.view2` when `folderview.plus` data is empty/missing, - migrate legacy type prefs (`*.prefs.json`) when current prefs are still defaults. - Add legacy Docker label compatibility so folder assignment by label works with `folder.view3`, `folder.view2`, and `folder.view` labels in addition to `folderview.plus`. - Load custom override scripts/styles from legacy config directories so older customizations continue to apply after upgrade. ###2026.03.06.5 - Restore diagnostics export mode popup so users can choose `Full` or `Sanitized` export at click time. - Start diagnostics file download immediately based on the selected popup action. ###2026.03.06.4 - Fix diagnostics export reliability by restoring direct-download behavior. - Export now defaults to sanitized diagnostics immediately and falls back to cached/latest data if live diagnostics refresh fails. ###2026.03.06.3 - Expand diagnostics export to schema v2 with richer bug-fixing data: - `integrityChecks` per type (duplicate names/assignments, orphaned members, invalid regex/rules, manual-order gaps), - `stateSnapshot` per folder (computed started/paused/stopped totals, effective status text, badge visibility, status colors), - `environment` block (Unraid/PHP/server/request context), - key file SHA-256 hashes for folder/prefs JSON files. - Add diagnostics history tracking (`importExportHistory`) with persistent event log for import/export/clear/reorder/backup actions. - Add diagnostics privacy modes: - default `sanitized` export (redacted paths and request-identifying details), - optional `full` export from the UI for deep support cases. ###2026.03.06.2 - Fix folder editor alignment for the status color controls so they line up with the rest of the settings form. ###2026.03.06.1 - Release version bump to ensure Unraid update detection from `2026.03.05.10`. - No functional code changes from the prior build. ###2026.03.05.10 - Add per-folder status color controls in the folder editor for `started`, `paused`, and `stopped`. - Apply custom folder status colors to status icon + text across Docker, VMs, and Dashboard. - Add safe color normalization/default reset behavior to keep settings valid during edit/import flows. ###2026.03.05.9 - Color-code folder state text for faster scanning: - white for `started`, - dark gold for `paused`, - red for `stopped`. - Apply status text coloring to both Docker and VM folder views. ###2026.03.05.8 - Improve folder status labels to show explicit state totals: - `X/N started` when any items are running, - `X/N paused` when none are running but one or more are paused/suspended, - `X/N stopped` when all items are stopped. - Apply the same status logic to both Docker and VM folder views. ###2026.03.05.7 - Fix folder status display so fully stopped folders still show `0/N started` instead of appearing blank when the stopped badge is disabled. - Keep badge toggles functional while preserving readable status text in Docker and VM views. ###2026.03.05.6 - Add full Import Preview + selective apply with merge modes (replace/merge/skip) and schema metadata validation. - Add one-click Undo backups for risky operations (import, clear/delete, bulk assign, and restore actions). - Add rule priority controls with up/down ordering and a rule tester for Docker/VM matching. - Add bulk assignment workflows for Docker/VM with multi-select item targeting. - Add backup management UI for create/list/restore/download/delete operations. - Add diagnostics panel with health report, repair actions, and diagnostics JSON export. - Add folder badge preference handling in settings and runtime for running/stopped/update visibility. ###2026.03.05.5 - Move VMs directly below Docker in settings for clearer top-to-bottom workflow. - Move Docker and VM auto-assignment rule editors into a single dedicated section at the bottom. - Keep existing rule behavior and IDs while improving visual grouping. ###2026.03.05.4 - Rework Docker/VM settings layout into clearer sections: actions, sort controls, folder table, and auto-assignment rules. - Replace stretched full-width controls with grouped, consistent button rows and responsive spacing. - Improve auto-assignment UX with clearer rule context text and tighter rule editor/table alignment. ###2026.03.05.3 - Improve Name column alignment with a centered fixed-width layout and left-aligned icon/text content. ###2026.03.05.2 - Always show settings reorder arrows. - Auto-switch to manual mode when a reorder arrow is used. ###2026.03.05.1 - Re-release of 2026.03.04.10 fixes using a version string that avoids Unraid comparison edge cases. - No functional changes from 2026.03.04.10. ###2026.03.04.10 - Remove drag-and-drop in settings ordering. - Use dedicated button-based ordering with server-side order persistence for higher reliability. ###2026.03.04.9 - Add move up/down controls for settings manual ordering so reordering works even where drag is unreliable. - Preserve drag reorder support while making manual ordering independent from browser drag event behavior. ###2026.03.04.8 - Fix plugin settings drag-and-drop reorder using jQuery UI sortable with non-blocking fallback. - Add stronger reorder save error handling and visual placeholder styling. ###2026.03.04.7 - Fix folder visibility regression by adding runtime `utils` fallback bindings on Docker/VM/Dashboard pages. - Make prefs loading non-blocking so folders still render if prefs request fails. ###2026.03.04.6 - Add schema-aware import/export metadata and import validation. - Add import preview with merge modes, automatic backups, restore action, sort controls, and auto-assignment rules. - Add update-check endpoint/action and CI guardrails with basic utility tests. ###2026.03.04.5 - Pretty-print exported JSON files for readable multi-line formatting. ###2026.03.04.4 - Change export filenames to use plugin branding (`FolderView Plus Export...`) instead of `Docker.json` / `VM.json`. ###2026.03.04.3 - Remove all legacy compatibility paths and manifests. - Enforce clean `folderview.plus` naming for plugin identity, paths, and labels. ###2026.03.04.1 - Hard rename runtime/config/plugin paths to `folderview.plus`. ###2026.03.03.1 - Fix Docker folder ordering by rebuilding placeholder order from folder definitions. - Sync Docker order immediately after deleting one/all folders. ###2026.02.26.5 - Improve release metadata handling for update detection. https://raw.githubusercontent.com/&github;/main/archive/&name;-&version;.txz &md5; mkdir -p /boot/config/plugins/&name;/styles mkdir -p /boot/config/plugins/&name;/scripts rm -f $(ls /boot/config/plugins/&name;/&name;*.txz 2>/dev/null | grep -v '&version;') echo "&version;" > /boot/config/plugins/&name;/version echo "*/5 * * * * root /usr/local/bin/php /usr/local/emhttp/plugins/folderview.plus/scripts/scheduled_backup.php >/dev/null 2>&1" > /etc/cron.d/folderview.plus chmod 644 /etc/cron.d/folderview.plus /etc/rc.d/rc.crond restart >/dev/null 2>&1 || true echo "" echo "----------------------------------------------------" echo " &name; has been installed." echo " Version: &version;" echo "----------------------------------------------------" echo "" removepkg &name;-&version; || true rm -f /etc/cron.d/folderview.plus /etc/rc.d/rc.crond restart >/dev/null 2>&1 || true rm -rf &plugdir; rm -rf /boot/config/plugins/&name;