]> ###2026.08.18.08 - Feature: Prefer Unraid GraphQL for Docker runtime-state reconciliation on supported hosts while automatically preserving the established PHP snapshot path for legacy, limited, denied, unavailable, or structurally incompatible API responses. - Feature: Show an accessible, channel-aware Update Available link in FolderView Plus Settings that follows dev or stable manifests and opens Unraid's Plugins page for installation. - Fix: Keep Docker folders rendering during fresh-install startup when native or third-party container rows omit the status or wrapper markup expected by single-row previews, using the model-based preview as a privacy-safe fallback. - Reliability: Add lifecycle ownership, stale-response cancellation, bounded cooldowns, targeted API reads, structural-change fallback, and privacy-safe aggregate diagnostics without exposing container identities or server response details. - Test: Replace live-Unraid scheduled validation and encrypted target secrets with deterministic isolated fixtures covering current, legacy, limited, denied, partial, unavailable, rate-limited, schema-drift, and future-native host profiles. - UI/UX: Polish the Settings update indicator, responsive typography, README badges, banner presentation, rolling clone-traffic badge, and repository analytics while retaining light, dark, mobile, keyboard, and reduced-motion support. - Quality: Expand runtime, browser, localization, privacy, compatibility, packaging, install, release, and workflow coverage for the complete stable promotion. - Docs: Update the Wiki-linked repository documentation, API architecture, compatibility boundaries, prerelease qualification, contribution guidance, and release metadata for the API-first rollout. ###2026.08.18.07 - Fix: Prevent Docker folder startup from failing when a native or third-party container row omits the expected status or wrapper markup used by single-row previews. - Reliability: Resolve preview markup from the already-selected source row, validate it before cloning, and fall back to FolderView Plus's model-based preview without stopping later folder members. - Privacy: Record preview fallback diagnostics using only the numeric preview mode and fixed reason categories; folder and container identities are not included. - Test: Add real-browser coverage for standard Unraid-style rows, missing status markup, missing wrappers, invalid selectors, state-detail trimming, and continued rendering after malformed members. ###2026.08.18.06 - Feature: Use Unraid GraphQL as the preferred Docker runtime-state source on supported hosts while preserving the established PHP snapshot path as an automatic compatibility fallback. - Reliability: Add a single-owner runtime coordinator with capability-gated full and targeted reads, stable PHP-to-API identity matching, stale-response cancellation, bounded retry cooldowns, structural-change fallback, and lifecycle disposal. - Compatibility: Keep Unraid's native Docker controls authoritative, enrich only existing FolderView runtime rows, and leave legacy or API-unavailable hosts fully functional without requiring user configuration or credentials. - Privacy: Expose only aggregate API capability and health evidence in diagnostics; container names, identifiers, query data, tokens, and server error details are not exported. - Test: Replace live-Unraid validation and encrypted target secrets with deterministic isolated GraphQL profiles covering current, legacy, limited, denied, partial, unavailable, rate-limited, schema-drift, and future-native host behavior. - Test: Run the shipped API-first path through browser fixtures, responsive themes, lifecycle reconciliation, accessibility checks, architecture contracts, and release/install guards without contacting a live Unraid system. - Docs: Expand the API integration, runtime architecture, compatibility, prerelease qualification, contributor, and architecture-decision guidance for the API-first rollout and its safe fallback boundaries. ###2026.08.18.05 - Test: Publish a metadata-only dev update so installations on 2026.08.18.04 can exercise the in-plugin Update Available indicator and Plugins-page navigation against a genuine newer dev manifest. - Maintenance: Advance only the dev package metadata, release manifest, archive, checksum, and SBOM; runtime source remains unchanged from 2026.08.18.04. ###2026.08.18.04 - Test: Publish a follow-up dev package so installations pinned to 2026.08.18.03 can exercise the in-plugin Update Available indicator and Plugins-page navigation against a genuine newer dev manifest. - Maintenance: Keep runtime behavior unchanged while advancing dev update metadata and retaining the 2026.08.18.03 archive for the test path. ###2026.08.18.03 - Fix: Make the in-plugin update indicator follow the installed manifest channel so dev installations compare against dev while stable installations continue comparing against main. - Security: Resolve update sources from an explicit dev/main allowlist and fall back to the stable channel when the installed manifest is missing or unrecognized. - Test: Cover XML entity and Community Applications manifest formats, dev and main resolution, and fail-closed behavior before publishing the follow-up dev update used to exercise the indicator. ###2026.08.18.02 - Feature: Show a compact Update Available link beside the FolderView Plus Settings identity when the stable manifest reports a newer plugin version, with one-click navigation to the Unraid Plugins page. - UI/UX: Set both the Plugin settings subtitle and update label to 1.3rem, render the available-update label in bold with an inline SVG download icon, and preserve responsive wrapping across desktop and mobile layouts. - Reliability: Run update detection only after the Settings surface is ready and keep the indicator hidden when no update is available or the optional remote check fails. - Localization: Ship the update label and accessible Plugins-page guidance across all 27 supported locales with complete catalog coverage. - Test: Cover the conditional link contract, accessible SVG and destination, requested typography, localized catalogs, CSP inventory, theme-safe styling, and browser-fixture overflow behavior. ###2026.08.17.01 - Fix: Remove obsolete Docker Start Order styles left behind by the responsive workspace redesign so strict validation no longer reports unused selectors. - Reliability: Recognize the VM translation wrapper and rule-template localization fields as real key references instead of incorrectly flagging their live catalog entries as unused. - Test: Revalidate the Start Order workspace in browser fixtures, all supported locale catalogs, runtime performance budgets, release guards, and install smoke coverage. ###2026.08.12.07 - Fix: Add the complete Docker Start Order message set to the Settings localization catalog so visiting the tab no longer records missing-key diagnostics. - Localization: Ship the 27 Start Order labels in every supported language while preserving English fallback behavior and complete locale coverage. - Reliability: Register the Start Order translation wrapper with the localization usage guard so future missing catalog keys fail validation before release. - Test: Verify every Start Order key exists and is non-empty across all 27 locale catalogs, alongside runtime, browser localization, and responsive Settings coverage. ###2026.08.12.06 - Fix: Detect Docker autostart from the lightweight runtime rows used by Settings so the Start Order summary no longer reports zero enabled containers. - Reliability: Preserve every peer container's actual autostart state when toggling one container instead of treating lightweight rows as disabled. - Compatibility: Keep support for full Docker detail rows while normalizing top-level `autostart` and `autoStart` state representations. - Test: Exercise the production lightweight payload in unit and Chromium fixtures, including visible totals, disabled classification, peer-state mutation preservation, and full-payload compatibility. ###2026.08.12.05 - UI/UX: Load the Docker autostart sequence automatically whenever the Start Order tab is opened while keeping Preview order available as an explicit refresh action. - Performance: Hydrate the preview only once per tab visit, then permit a fresh automatic request after leaving and reopening Start Order. - UI/UX: Keep the active-order notice aligned to the top controls row and size it to its content instead of stretching into an oversized panel with blank space. - Test: Cover preview activation and re-entry, the manual refresh contract, compact notice geometry, responsive overflow, and runtime performance budgets. ###2026.08.12.04 - Accessibility: Raise every visible Docker start-order label, metric, control, table value, badge, chip, and notice to a minimum computed size of 1.2rem. - UI/UX: Restore the Autostart disabled container group as a native collapsible disclosure that is closed by default. - UI/UX: Add a clear disclosure chevron while retaining the existing one-click actions for re-enabling individual containers. - Test: Verify the 1.2rem minimum in a real browser before and after expansion, confirm the disclosure defaults closed, and preserve desktop and mobile overflow checks. ###2026.08.12.03 - UI/UX: Rebuilt the Advanced Settings Docker start-order workspace to match the approved modern mockup with a descriptive header, live container totals, two-column configuration controls, contextual ownership guidance, and dedicated startup-batch actions. - UI/UX: Replaced the dense sequence list with a structured preview table showing order, application icon and name, editable wait time, accessible autostart switch, and compact row affordance. - UI/UX: Reworked disabled-autostart containers into readable action chips and added the next-service-start notice directly beneath the sequence. - Accessibility: Added responsive desktop, tablet, and mobile layouts, contained table scrolling, visible keyboard focus, reduced-motion handling, and contrast-safe text for the orange primary action. - Security: Restrict Docker icon rendering to HTTP(S) or root-relative paths, fall back to the Unraid Docker placeholder for unsafe values, and escape persisted container and batch content before rendering. - Quality: Extracted start-order presentation into a dedicated contracted view module while reducing the mutation workspace controller and the main Settings entrypoint. - Localization: Regenerated all 27 locale catalogs for the updated start-order surface with zero uncovered UI strings. - Test: Added focused rendering, unsafe-value, theme-token, architecture, and desktop/mobile browser-fixture coverage for the redesigned workspace. ###2026.08.12.02 - Feature: Added explicit Docker start-order ownership modes so Unraid order can remain unmanaged, follow the Docker page, or use custom startup batches. - Feature: Added Docker autostart sequence controls with ordered batches, per-item waits, remaining-container policy, preview, and guarded persistence. - Feature: Replaced the single Theme Workspace customization model with named appearance profiles, global and Docker, VM, or Dashboard layers, inactive imports, and scoped preview controls. - Feature: Added atomic appearance-profile create, rename, activate, layer-save, bulk-update, GitHub-import, and delete actions with readback-safe normalization. - Feature: Added reusable, preview-first folder rule templates for common Docker name, image, Compose project, and label patterns while preserving manual membership. - Feature: Added a privacy-safe runtime diagnostics model shared by Docker, VM, and Dashboard, including bounded page captures and sanitized support-bundle summaries. - Feature: Added read-only FolderView3 installed-config discovery and export preview with compatible folder, rule, defaults, start-order, and inactive appearance-profile conversion. - Feature: Added confirmed FolderView3 migration apply with source-digest freshness checks; native Docker autostart replacement remains explicitly opt-in. - Security: FolderView3 custom CSS is bounded and scanned before conversion, preview reports exclude raw target configuration, and migration endpoints use the standard mutation guard. - Reliability: Environment imports and FolderView3 migrations now run under one configuration lock with global and per-type safety backups, exact file snapshots, readback verification, and automatic rollback of folders, preferences, metadata, theme assets, and Docker autostart state. - Quality: Split start-order, rule-template, theme-profile, page-diagnostics, FolderView3 preview, FolderView3 apply, and environment-transaction responsibilities into enforceable browser and PHP module boundaries. - Quality: Expanded generated localization catalogs across all 27 shipped locales for the new workspaces, previews, warnings, and migration states. - Test: Added regression coverage for start-order modeling, autostart workspace behavior, rule conversion/templates, theme profiles/actions, runtime diagnostics, FolderView3 conversion, mutation confirmation, digest validation, failure injection, and full transaction rollback. ###2026.08.12.01 - Maintenance: Synchronized stable source and workflow fixes from main back into dev. - Quality: Rebuilt the dev package so the shipped archive exactly matches the synchronized source. - Test: Revalidated the complete dev state without allowing packaged-source drift. ###2026.08.11.14 ## FolderView Plus 2026.08.11.14 This development build clears the remaining release-blocking localization and CodeQL quality findings after the architecture decomposition work. ### Release checks - Quality: Remove seven obsolete test source reads that became unused after their assertions moved to extracted modules. - Localization: Remove the unused Diagnostics `Check again` message from all 27 locale catalogs and regenerate aggregate catalog metadata. - Reliability: Restore strict language-usage and zero-open-alert readiness without changing plugin runtime behavior. ### Regression coverage - Test: Update the localization surface contract for the reduced 2,060-message catalog and retain zero uncovered UI strings. ###2026.08.11.13 ## FolderView Plus 2026.08.11.13 This development build removes the redundant underline from selected tabs in the modern folder editor and the Advanced Settings workspace. ### Tab selection - UI/UX: Remove the extra underline bar from selected modern folder editor tabs while retaining the selected border, background, text, and shadow treatment. - UI/UX: Remove the matching underline bar from selected Advanced Settings tabs while retaining their highlighted selected state. - Accessibility: Preserve keyboard focus indicators and the existing semantic active-tab state. ### Regression coverage - Test: Add stylesheet contracts that reject either active-tab underline pseudo-element and confirm the highlighted active backgrounds remain present. - Quality: Ratchet the shared stylesheet line budget to its reduced size. ###2026.08.11.12 ## FolderView Plus 2026.08.11.12 This development build corrects a Diagnostics false positive where a successfully auto-healed host-theme accent reduced core health from 6/6 to 5/6. ### Theme diagnostics - Fix: Treat successful compatibility adjustments as informational technical details instead of unresolved theme warnings. - Diagnostics: Keep missing tokens, indistinguishable runtime states, and failed final contrast checks actionable while reporting a fully recovered palette as healthy. - Reliability: Prevent the theme self-heal action from persisting a fallback mode when automatic token correction has already produced a compliant palette. - Accessibility: Preserve the resolver's contrast correction and support-bundle evidence, including the adjusted host accent and final contrast ratios. ### Regression coverage - Test: Add contracts ensuring auto-heal telemetry does not reduce core health while unresolved contrast failures remain warnings. ###2026.08.11.11 ## FolderView Plus 2026.08.11.11 This development build fixes stale Docker folder actions, makes Diagnostics findings actionable, hardens host-theme reconciliation, and prevents successful WebUI popups from being reported as blocked. ### Docker runtime and WebUI actions - Reliability: Reconcile expanded Docker-folder previews after container start, stop, pause, resume, and restart actions so WebUI, console, and log icons leave their busy state when the lifecycle settles. - Reliability: Resolve lifecycle state by canonical container name or normalized container ID and perform a targeted preview refresh instead of leaving stale browser state behind. - Compatibility: Open WebUI tabs through a blank browser-owned handle, isolate `window.opener`, and navigate the accepted handle so browsers that return `null` for `noopener` no longer trigger a false popup-blocked warning. ### Diagnostics and repair guidance - UX: Turn priority findings into focusable controls that reveal the affected health card, technical details, recommended correction, and repair action. - Reliability: Require confirmation before supported repairs and explain that a backup is created before orphaned Docker member references or missing custom-icon references are changed. ### Theme consistency - UI/UX: Add a shared host-theme surface that observes Unraid theme attributes, media-query changes, and extra sample targets across Docker, VM, Dashboard, Settings, and Folder Editor pages. - Accessibility: Auto-heal low-contrast host accents, expose the resolved editor title accent, clean up observers and media listeners on teardown, and align the Folder Editor top chrome with its dark panel surface. ### Regression coverage - Quality: Add lifecycle, popup, Diagnostics action, theme observer, load-order, browser-fixture, and architecture-contract coverage for the corrected behavior. - Security: Refresh the CSP readiness inventory while retaining zero inline events, inline scripts, and style attributes. ###2026.08.11.10 ## FolderView Plus 2026.08.11.10 This development build addresses second-generation JavaScript monoliths by moving shared utility and Docker/VM/Dashboard runtime domains behind bounded modules while preserving their established browser and CommonJS compatibility APIs. ### Shared JavaScript boundaries - Refactor: Split normalization, preferences, ordering, import/export transfer, and runtime-rule logic out of `folderviewplus.utils.js` into five focused foundation modules. - Refactor: Split runtime primitives, diagnostics, and controls out of `docker.runtime.shared.js` into three shared modules used by Docker, VM, and Dashboard surfaces. - Compatibility: Retain the complete 49-name utility facade and the extensible shared runtime namespace used by later feature modules. ### Enforcement and regression coverage - Quality: Reduce `folderviewplus.utils.js` from 2,054 to 88 lines and `docker.runtime.shared.js` from 1,511 to 460 lines. - Quality: Add eight browser-module ownership contracts, explicit page load-order contracts, dependency metadata, and ratcheted file budgets for every extracted module. - Reliability: Add Phase 7 facade and load-order regression coverage, update existing owner-location tests, and exercise the decomposed modules through browser fixtures and runtime-performance budgets. - Security: Refresh the CSP readiness inventory for 207 scanned first-party files while retaining zero inline events, inline scripts, and style attributes. ###2026.08.11.09 ## FolderView Plus 2026.08.11.09 This development build completes the PHP decomposition phase by moving server domains behind enforced request-scoped modules while preserving every public endpoint, request guard, response shape, and compatibility function name. ### PHP compatibility boundaries - Refactor: Split release metadata, durable storage, theme workspace and GitHub import, environment transfer, backup scheduling and snapshots, folder rules and mutations, Docker ordering, custom-icon storage, and runtime information out of `server/lib.php`. - Refactor: Split diagnostics redaction, integrity collection, summary modeling, and support-bundle assembly out of `server/lib.diagnostics.php`. - Refactor: Keep `server/upload_custom_icon.php` as a thin compatibility dispatcher backed by separate foundation, validation, and action modules. - Reliability: Preserve the exact 30-endpoint API manifest and all 276 core, 74 diagnostics, and 56 custom-icon public function names. ### Enforcement and regression coverage - Quality: Reduce `server/lib.php` from 7,556 to 2,649 lines, `server/lib.diagnostics.php` from 2,923 to 257 lines, and `server/upload_custom_icon.php` from 1,481 to 37 lines. - Quality: Add 19 server-module ownership contracts with loader validation, exact function-inventory hashes, dependency metadata, and ratcheted file budgets. - Reliability: Add executable facade-loading tests plus endpoint-manifest, backup, storage, diagnostics, Docker ordering, theme, runtime-information, and custom-icon regression coverage for the new ownership paths. - Security: Refresh the CSP readiness inventory for 199 scanned first-party files while retaining zero inline events, inline scripts, and style attributes. ###2026.08.11.08 ## FolderView Plus 2026.08.11.08 This development build finishes the current Settings and Setup Wizard decomposition phase by moving search state, local persistence, and review modeling behind enforced module boundaries without changing saved preferences or setup behavior. ### Settings and Wizard boundaries - Refactor: Move privacy-safe Settings search indexing, token matching, cached results, match presentation, focus navigation, and disposal into `folderviewplus.settings-search.js`. - Refactor: Move Setup Wizard draft recovery, saved presets, completion flags, storage fallbacks, and payload normalization into `folderviewplus.wizard-persistence.js`. - Refactor: Move Setup Wizard preference diffs, impact summaries, step validation, delta chips, and corrective guidance into `folderviewplus.wizard-review.js`. - Reliability: Require all three extracted modules during Settings bootstrap and preserve graceful operation when browser storage is blocked. ### Enforcement and regression coverage - Quality: Reduce `folderviewplus.js` from 12,092 to 11,793 lines and `folderviewplus.wizard.js` from 4,849 to 4,165 lines with ratcheted budgets for all new modules. - Quality: Add explicit ownership, lifecycle, load-order, package, and line-budget contracts without increasing the 375-global browser baseline. - Reliability: Add direct search normalization, Wizard storage/deduplication, blocked-storage, impact-delta, validation-hint, and extraction-ownership tests. - Security: Refresh CSP sink ownership for 180 scanned first-party files while retaining zero inline events, inline scripts, and style attributes. ###2026.08.11.07 ## FolderView Plus 2026.08.11.07 This development build finishes the current Folder Editor decomposition phase by moving stateful selection and member-list lifecycles behind enforced module boundaries while preserving the existing editor actions and saved-folder behavior. ### Folder Editor runtime boundaries - Refactor: Move regex matching, worker ownership, stale-result rejection, input debouncing, and disposal into `folder.editor.regex-selection.js`. - Refactor: Move member-table rendering, chunk scheduling, direct-child discovery, child-folder ordering, drag handling, and disposal into `folder.editor.member-list.js`. - Reliability: Require the extracted hierarchy module during bootstrap and remove the duplicate 286-line hierarchy fallback from `folder.js`. - Compatibility: Preserve the existing `updateRegex`, `updateForm`, `submitForm`, member ordering, nested preview ordering, and Docker/VM editor contracts. ### Enforcement and regression coverage - Quality: Reduce `folder.js` from 5,522 to 4,773 lines and ratchet the two new factory-owned modules at 274 and 370 lines. - Quality: Add explicit ownership, lifecycle, load-order, package, and line-budget contracts for the new modules without increasing the 375-global browser baseline. - Reliability: Add direct regex-selection, debounce disposal, child-order reconciliation, hierarchy ownership, browser fixture, localization, and extreme-library performance coverage. - Security: Refresh CSP readiness for 177 scanned first-party files while retaining zero inline events, inline scripts, and style attributes. ###2026.08.11.06 ## FolderView Plus 2026.08.11.06 This development hotfix restores Docker folder rendering after the Phase 3 ordering extraction and strengthens undeclared-symbol enforcement for the Docker runtime. ### Docker order diagnostics hotfix - Fix: Restore deterministic, privacy-safe Docker order fingerprints through `docker.runtime.diagnostics.js` so folder rendering no longer fails with `buildDockerOrderFingerprint is not defined`. - Reliability: Require the diagnostics fingerprint API during Docker bootstrap and directly verify stable fingerprint output and reconciliation telemetry. - Quality: Enable targeted `no-undef` linting for `docker.js` with explicit browser and Unraid host globals so dangling application helpers fail CI. - Security: Refresh reviewed CSP sink locations after the bootstrap contract line movement without adding inline events, inline scripts, or style attributes. ###2026.08.11.05 ## FolderView Plus 2026.08.11.05 This development hotfix restores Docker page startup after the Phase 3 column-controller extraction. ### Docker startup hotfix - Fix: Inject the Docker width-phase contract into `docker.runtime.column-controller.js` so width bootstrap no longer fails with `DOCKER_RUNTIME_WIDTH_PHASES is not defined`. - Reliability: Execute the extracted width-bootstrap controller directly in regression coverage, including its initial phase and lifecycle state reset. - Quality: Preserve the existing Docker and column-controller architecture line ceilings without relaxing module boundaries. ###2026.08.11.04 ## FolderView Plus 2026.08.11.04 This development build reduces the Docker runtime monolith first, then reuses the proven ordering and live-refresh seams in VM and Dashboard without changing host-page ownership. ### Docker-first runtime boundaries - Refactor: Move Docker app-column measurement, cached-width bootstrap, gap enforcement, reflow scheduling, theme/viewport/font hooks, resizer observation, and teardown into `docker.runtime.column-controller.js`. - Refactor: Extend `runtime.folder-ordering.js` with shared folder-depth, slot-ordering, and order-reconciliation primitives used by Docker, VM, and Dashboard. - Refactor: Add `runtime.live-refresh.js` to own cadence, page-visibility gating, in-flight exclusion, release delay, snapshots, and disposal while each surface retains its own fetch and reconciliation policy. - Reliability: Preserve default created-order behavior, explicit sort and pin ordering, Docker new-container reconciliation, incremental runtime refresh, and pagehide cleanup. ### Enforcement and regression coverage - Quality: Ratchet `docker.js` from 8,839 to 8,028 lines, `vm.js` from 4,010 to 3,945 lines, and `dashboard.js` from 3,173 to 3,152 lines. - Quality: Reduce cross-entrypoint function-name overlap from 46/9/8 to 40/6/6 and add explicit lifecycle, load-order, package, and line-budget contracts for the extracted modules. - Quality: Add direct ordering, refresh lifecycle, extraction ownership, Docker layout, privacy, and browser fixture coverage for the new boundaries. - Security: Regenerate CSP readiness after Docker line movement while retaining zero inline events, inline scripts, and style attributes. ###2026.08.11.03 ## FolderView Plus 2026.08.11.03 This development build splits foundational utilities and GraphQL transport into enforceable modules while preserving the existing browser and CommonJS APIs. ### Foundational module boundaries - Refactor: Move dependency-free scheduling, storage, escaping, identifier, and URL-sanitization helpers into `folderviewplus.utils-foundation.js` while keeping `FolderViewPlusUtils` as the compatibility facade. - Refactor: Split GraphQL request mechanics, subscription lifecycle management, and typed Docker actions into focused transport child modules while keeping `FolderViewPlusRuntimeTransport` as the public facade. - Compatibility: Load the new child modules in dependency order across Settings, Docker, VMs, Dashboard, Folder Editor, and deterministic browser fixtures. - Reliability: Preserve stale-request rejection, abort behavior, bounded subscription reconnect, CSRF headers, capability gating, and privacy-safe aggregate transport diagnostics. ### Enforcement and regression coverage - Quality: Reduce the utility facade from 2,346 to 2,054 lines and the transport facade from 1,060 to 499 lines, with ratcheted budgets for every new child module. - Quality: Add explicit architecture contracts, namespace-member ownership, page load-order checks, compatibility-facade identity checks, and package smoke requirements for all extracted scripts. - Quality: Update Docker transport architecture documentation and CSP readiness metadata for the new module graph. - Security: Keep CSP readiness at zero inline events, inline scripts, and style attributes while retaining sanitized URL, error, and diagnostic behavior. ###2026.08.11.02 ## FolderView Plus 2026.08.11.02 This development build removes the Settings global-action bottleneck while preserving the existing declarative event and Unraid host compatibility contracts. ### Registry-owned actions - Refactor: Move all 145 Settings actions from broad `window` publication into the owner-scoped declarative action registry. - Reliability: Resolve registered handlers before legacy host globals, reject invalid registrations and cross-owner collisions atomically, and release Settings-owned actions during page teardown. - Compatibility: Keep the legacy global fallback for current Docker, VM, Dashboard, Folder Editor, and Unraid host actions while reducing measured browser globals from 509 to 375. - Quality: Route the recovery diagnostics workspace through the action registry instead of a direct Settings global. ### Enforcement and regression coverage - Quality: Ratchet the action architecture to at least 145 registered actions, no more than 11 registry/global overlaps, and a maximum of 375 browser globals. - Quality: Reject the retired broad `registerWindowActions` helper and require every static or generated declarative action to have a registry, plugin compatibility, or documented Unraid host owner. - Quality: Add module contracts and line budgets for the action runtime and Settings action-support module, reducing the uncontracted browser-script inventory from 100 to 98. - Security: Add registry precedence, teardown, validation, collision, and atomic-failure tests while keeping CSP source checks at zero inline events, inline scripts, and style attributes. ###2026.08.11.01 ## FolderView Plus 2026.08.11.01 This development build establishes enforceable architecture boundaries for the staged monolith-reduction program without changing plugin runtime behavior. ### Architecture boundaries - Quality: Record ownership, consumers, dependencies, state models, lifecycle responsibility, and compatibility globals for existing contracted modules and primary browser/server entrypoints. - Quality: Replace permissive line ceilings with 38 exact, non-increasing budget histories and explicit reduction targets for primary entrypoints and oversized first-party modules. - Quality: Freeze the current browser-global, inline-action, and Docker/VM/Dashboard function-name overlap baselines so future coupling cannot grow silently. - Quality: Require newly extracted browser and PHP modules to enter a reviewed contract instead of expanding the legacy uncontracted inventory. ### Load-order protection - Quality: Expand load-order validation from Settings alone to all five plugin pages, shared localization/custom bootstraps, and the Folder Editor dynamic runtime queue. - Quality: Validate 201 ordered script references and verify that every referenced plugin script and page entrypoint exists. - Quality: Add focused regression tests for page-graph coverage, boundary metadata, ratcheting histories, and legacy module inventory fingerprints. ###2026.08.10.07 ## FolderView Plus 2026.08.10.07 This development build fixes a Settings regression that could leave an inactive import progress dialog visible immediately after page load. ### Settings import progress - Fix: Keep the import progress overlay and dialog hidden until an import or related operation explicitly opens them. - Accessibility: Synchronize the dialog's semantic `hidden` state with `aria-hidden` throughout its open and close lifecycle. - Security: Preserve CSP compatibility without restoring inline display styles. - Quality: Mirror the production CSS cascade in the browser fixture and verify the complete hidden, open, and closed lifecycle. ###2026.08.10.06 ## FolderView Plus 2026.08.10.06 This development build closes the remote CI findings from the CSP hardening release and strengthens its regression coverage. ### DOM injection hardening - Security: Restore the folder-editor diagnostics copy button from cloned DOM nodes instead of reinterpreting saved button markup through `innerHTML`. - Security: Remove the obsolete HTML-valued button attribute and make the inline-script regression assertion case-insensitive. - Security: Reduce the reviewed first-party HTML-string sink inventory from 43 to 40 while retaining zero unreviewed sinks. ### Validation reliability - Quality: Teach the strict localization usage guard to recognize programmatic `dataset.i18n` and `setAttribute('data-i18n', ...)` references. - Quality: Add source contracts that prevent the folder-editor diagnostics bootstrap from reintroducing HTML-string button restoration. ###2026.08.10.05 ## FolderView Plus 2026.08.10.05 This development build completes the plugin-owned CSP and HTML-injection hardening pass while preserving compatibility with Unraid's shared webGUI document. ### CSP readiness - Security: Externalize all plugin-owned page, Settings, folder-editor, runtime-conflict, preflight, custom-loader, Docker layout, and localization bootstrap scripts. - Security: Replace plugin-owned inline style attributes with scoped utility classes, finite state classes, or validated CSS custom properties. - Security: Expand the CSP readiness guard to cover localization PHP, reject inline script and style blocks, and publish line-level HTML-string sink risk inventory. - Compatibility: Keep CSP in report-only planning mode because enforcement must be coordinated with Unraid and peer plugins sharing the document. - Security: Evaluate Trusted Types only in an enforced browser fixture rather than imposing a plugin-level production policy. ### Injection resistance and verification - Security: Add an allowlisted safe-DOM construction helper and migrate persisted folder names and bulk-assignment results away from HTML-string rendering. - Security: Add malicious persisted-value fixtures covering folder and container names, template metadata, imported configuration, translations, and diagnostics. - Quality: Preserve static layout and theme behavior through scoped CSP utility styles and externalized bootstrap contracts across Docker, VMs, Dashboard, Settings, and the folder editor. - Localization: Refresh all 27 generated locale surfaces for preflight diagnostics that are now visible to the JavaScript localization scanner. ###2026.08.10.04 ## FolderView Plus 2026.08.10.04 This development build strengthens scheduled compatibility monitoring and clears the existing CodeQL quality backlog. ### Monitoring and workflow reliability - Fix: Prove the scheduled cross-browser workflow in Chromium, Firefox, and WebKit and report when encrypted live-Unraid validation targets are not configured. - Maintenance: Add a daily watchdog that opens a deduplicated alert when either weekly monitoring workflow lacks a recent successful run and closes the alert after recovery. - Compatibility: Review Unraid API v4.37.0, confirm the Docker GraphQL signature is unchanged and the native Docker activation gate remains disabled, and advance the tracked upstream baseline. - Maintenance: Close resolved upstream compatibility alerts automatically after a reviewed baseline succeeds. ### Code quality and security analysis - Security: Remove the environment-derived repository root from the archive preflight test that triggered CodeQL's shell-command flow warning. - Quality: Correct all existing first-party and vendored JavaScript CodeQL findings without dismissing alerts, including undeclared variables, unused assignments, ignored arguments, and semicolon hazards. - Security: Enforce a zero-open-CodeQL-alert policy for every newly analyzed commit before strengthening main-branch merge protection. - Security: Regenerate the runtime SBOM and explicitly identify the three locally corrected vendored libraries as modified snapshots. ###2026.08.10.03 ## FolderView Plus 2026.08.10.03 This development build restores the `dev` update channel after publishing stable `2026.08.10.02`. ### Release and supply-chain reliability - Maintenance: Restore dev-channel manifest and package URLs while preserving the complete stable release source. - Fix: Install Node validation dependencies before release checks and require live Unraid, browser, and theme targets whenever their repository secrets are configured. - Security: Add a deterministic SHA-256 UUIDv8 serial to the CycloneDX SBOM so GitHub can publish a valid SBOM attestation without weak cryptographic algorithms. - Quality: Retain the full stable release validation, deterministic package, checksum, provenance, and release-note contracts on the continuing development branch. ###2026.08.10.02 ## FolderView Plus 2026.08.10.02 This stable release promotes every validated development change since stable `2026.07.24.13`. ### Runtime architecture and maintainability - Performance: Split Settings startup into a small first-paint foundation and an interaction/idle-deferred workspace while preserving strict dependency order. - Reliability: Add per-module startup timing, bounded timeouts, failed-module identification, version evidence, and one resumable retry instead of allowing a stalled asset to leave Settings blank. - Maintenance: Extract focused modules for remote retrieval, Docker layout geometry, container normalization, download diagnostics, support-bundle comparison, and Settings workspace behavior. - Maintenance: Ratchet architecture budgets for browser globals, inline actions, and the largest JavaScript, CSS, PHP, and page files. - Quality: Expand JavaScript coverage thresholds, PHPStan analysis, dead-code checks, localization migration budgets, and deterministic browser/runtime performance contracts. - Docs: Add current architecture, browser-support, Docker compatibility, diagnostics privacy, package storage, security, and release-integrity guidance. ### Docker API compatibility and first-render stability - Feature: Add operation-level GraphQL capability discovery for Docker queries, mutations, subscriptions, arguments, return types, and deprecation metadata. - Feature: Add a hybrid legacy/GraphQL provider that prefers schema-confirmed reads and statistics while leaving current Unraid lifecycle actions authoritative. - Compatibility: Normalize GraphQL, PHP, and DOM container records into one immutable model with stable runtime identity and metadata. - Reliability: Fall back safely when GraphQL is unavailable or incomplete, reject stale responses, abort owned requests, and dispose subscriptions across navigation. - Feature: Add targeted single-container reconciliation and aggregate update, orphan, rebuild, and port-conflict health checks. - Privacy: Keep Docker logs on demand and export only aggregate compatibility and health evidence in sanitized diagnostics. - Fix: Reserve WebUI, console, and log action slots during the first preview render so later metadata cannot shift existing controls. - Fix: Reconcile Docker preview actions in place and provide lightweight WebUI capability hints before full template hydration. - Fix: Measure localized folder/status content before showing rows and use a schema-, algorithm-, and content-aware Application-column width cache. - Diagnostics: Record privacy-safe first-render timing, width stages, action-slot availability, row motion, and within-row action displacement. - Maintenance: Track upstream Unraid Docker schema, API releases, source-gate changes, and activation announcements without enabling prerelease organizer mutations. ### Security update sequence - Security: Require explicit mutation markers, trusted same-origin context, per-install request tokens, and fail-closed token availability for protected POST actions. - Security: Add target-bound, short-lived, one-time mutation nonces, transaction replay rejection, bounded endpoint rate limits, and standards-based retry guidance. - Security: Enforce endpoint method, action, content-type, request-size, and parameter contracts through the shared API manifest. - Security: Restrict folder identifiers, prototype-sensitive keys, external links, WebUI navigation, popup names, image URLs, and localized rich text before browser or server use. - Security: Preflight icon archives for traversal, links, special files, depth, count, per-file size, total size, and expected top-level content before private staged activation. - Security: Constrain durable writes to approved roots, reject symbolic-link path components, and use restrictive atomic temporary files. - Security: Replace direct shell execution with one allowlisted, shell-free `proc_open` boundary using fixed executable candidates, argument arrays, output caps, and timeouts. - Security: Replace plugin-owned inline event handlers with a delegated declarative bridge that does not use `eval` or the `Function` constructor. - Security: Reject executable managed-theme content, remote imports, external network URLs, and HTML data URLs before persistence or rendering. - Security: Generate and verify a deterministic SHA-256 runtime-integrity manifest covering expected files, permissions, and unexpected executable content. - Security: Record a bounded HMAC hash-chained security audit containing only sanitized action metadata, random trace IDs, status, and timestamps. - Security: Pin all external GitHub Actions, expand CodeQL coverage, add dependency-review and OpenSSF Scorecard workflows, and maintain high-severity merge protection. - Privacy: Disable live-system artifact capture by default and prevent CI/release workflows from uploading private Unraid screenshots, URLs, logs, or support data. - Security: Publish SHA-256 package and icon-pack digests, a complete CycloneDX runtime/workflow SBOM, GitHub OIDC provenance, and SBOM attestations. - Diagnostics: Surface sanitized runtime-integrity and security-audit health without exposing payloads, names, paths, addresses, tokens, or nonces. ### Folder interaction reliability - Fix: Route Docker and VM folder icon, name, edit, expand, and menu behavior through an idempotent shared delegated-action controller. - Fix: Prepare folder context menus during the capture phase so the first folder-icon click opens the newly attached Unraid menu. - Fix: Retain the newest Pin or Unpin intent while an earlier preference save is still in flight. - Fix: Update visible Pin/Unpin order, badge, and menu state immediately while preserving revision checks, server verification, rollback, and stale-render protection. - Reliability: Remove duplicate handlers during repeated navigation and release owned capture/delegated listeners during teardown. - Diagnostics: Treat the shared folder-action controller as required and ignore only the exact managed icon-pack activation record during runtime-integrity scans. ### Diagnostics, exports, and user experience - UI/UX: Remove lower-right completion popups from Settings and Dashboard while preserving nonvisual live-region announcements and actionable modal failures. - Reliability: Keep destructive-action recovery in Advanced > Recovery and retain inline tree-move Undo/Redo controls instead of short-lived popup Undo actions. - Diagnostics: Add bounded privacy-safe download lifecycles for Docker, VM, and plugin configuration exports without claiming that a browser save completed. - UI/UX: Show missing-download and retry controls beside export actions, retaining the latest payload briefly so a direct user click can retry with fresh activation. - Privacy: Exclude export names, configuration contents, workload identities, paths, addresses, and identifiers from download diagnostics and support bundles. - Reliability: Replace generic bootstrap failures with a shared startup-incident model across Settings, Docker, VM, Dashboard, and Folder Editor. - Diagnostics: Preserve the latest sanitized startup incident for 24 hours in browser-session storage, including module outcomes and recovery history after navigation or successful recovery. - Accessibility: Add plain-language startup summaries, visible reference codes, keyboard focus, live-region semantics, focus indicators, reduced-motion behavior, and translated recovery actions. - Privacy: Sanitize copied support codes and downloadable startup reports by default, reducing URLs to routes and masking private hosts, addresses, and filesystem paths. - Diagnostics: Add a privacy-safe command-line comparison tool for sanitized support bundles and more precise browser/runtime evidence for troubleshooting. ### Localization and accessibility - Fix: Activate the canonical resolved browser catalog so Unraid `zh_CN` sessions use complete Simplified Chinese instead of falling back to English. - Localization: Add complete Arabic, Bengali, Catalan, Croatian, Danish, Hungarian, Latvian, Norwegian Bokmål, and Traditional Chinese catalogs. - Compatibility: Map native Unraid regional identifiers for all supported Chinese variants and the expanded language set to canonical plugin locales. - Accessibility: Enable production RTL direction for Arabic and validate locale selection, rendered translations, direction changes, and pseudo-locale restoration in real browsers. - Localization: Apply a pinned build-time Taiwan normalization profile for independently translated Traditional Chinese without adding an Unraid runtime dependency. - Quality: Enforce locale-specific plural forms, placeholders, markup order, catalog completeness, HTML safety, and exact link targets across all 27 locales. - Quality: Make startup-banner translation calls statically discoverable so strict unused-key validation covers every early recovery message. - Localization: Advance the catalog to revision `2026.08.10.1` with 2,060 complete messages per locale, including startup recovery vocabulary. ### Release, CI, and supply-chain reliability - Reliability: Prevent package-version reuse by considering manifests, archives, branches, remote state, and tags during allocation. - Reliability: Make package provenance content-addressed and normalize tar ownership, timestamps, ordering, and permissions for byte-identical Windows/WSL/Linux builds. - Quality: Compare two isolated packages and the checked-in archive byte for byte during deterministic-build validation. - Reliability: Require stable releases to pass configured live Unraid version, browser, and theme matrices in addition to deterministic fixtures. - Test: Add weekly cross-browser validation in Chromium, Firefox, and WebKit plus expanded mobile, RTL, accessibility, theme, interaction, security, and extreme-load coverage. - Maintenance: Add remote raw manifest/archive/checksum verification, archive retention auditing, release provenance, stable comparison links, and bounded commit history. - Fix: Correct Linux CI dependency installation, cross-platform path handling, Settings diagnostics initialization, stylesheet budgets, WebKit theme contrast, and canonical line-ending packaging drift found while monitoring dev releases. - Regression guard: Cover GraphQL capability/fallback behavior, runtime disposal, first-frame geometry, mutation security, filesystem/process boundaries, folder interactions, downloads, localization, startup recovery, packaging, and publication workflows. ###2026.08.10.01 ## FolderView Plus 2026.08.10.01 ### Recoverable startup diagnostics - Reliability: Replace generic bootstrap failures with a shared startup-incident model across Settings, Docker, VM, Dashboard, and the folder editor. - Reliability: Add a bounded **Try loading again** action that resumes the Settings loader from the failed module, cache-busts only that retry, and keeps reload available as the safe fallback. - Diagnostics: Record module stage, outcome, duration, asset version, retry state, resource timing, last completed step, and recovery history without exposing private runtime values. - Diagnostics: Preserve the latest startup incident for 24 hours in browser-session storage so a sanitized support bundle can include the failure after navigation or successful recovery. - Privacy: Make copied support codes and downloadable startup reports sanitized by default, reducing URLs to routes and masking private hosts, addresses, and filesystem paths. - Accessibility: Add plain-language failure summaries, visible reference codes, keyboard focus, live-region semantics, focus indicators, reduced-motion handling, and translated recovery actions. - Localization: Add the startup recovery vocabulary to all 27 supported locales and advance the complete 2,060-message catalog to revision `2026.08.10.1`. - Performance: Stage Settings workspace modules after an idle or interaction opportunity and apply a 12-second per-module timeout so stalled assets fail predictably instead of leaving a blank page. - Maintenance: Document the incident lifecycle, module-loader telemetry, support workflow, and recovery behavior; refresh CSP readiness metadata and deterministic browser contracts. - Regression guard: Add fault-injection coverage for failed and stalled assets, one-shot recovery, CSP classification, sanitized persistence, support-bundle redaction, Settings failure presentation, and cross-surface bootstrap wiring. ###2026.08.06.02 ## FolderView Plus 2026.08.06.02 ### Expanded Unraid language coverage - Localization: Add complete 2,049-message catalogs for Arabic, Bengali, Catalan, Croatian, Danish, Hungarian, Latvian, Norwegian Bokmål, and Traditional Chinese across Docker, VM, Dashboard, Settings, diagnostics, setup, import, and legacy surfaces. - Compatibility: Map Unraid language identifiers to canonical plugin locales, including `ar_AR`, `bn_BN`, `bn_BD`, `ca_CA`, `da_DA`, `hr_HR`, `hu_HU`, `lv_LV`, `no_NO`, `nb_NO`, `zh_TW`, `zh_HK`, `zh_MO`, and `zh_Hant`. - Accessibility: Activate Arabic with RTL document direction and add browser coverage for locale selection, rendered translations, direction changes, and pseudo-locale restoration. - Localization: Add an independently translated `zh-Hant` catalog and apply a pinned, build-time Taiwan phrase normalization profile without adding a runtime dependency to the Unraid package. - Quality: Enforce locale-specific plural requirements for Arabic, Croatian, Czech, Latvian, Polish, Romanian, Russian, and Ukrainian while preserving placeholders, markup order, and exact link targets. - Maintenance: Add explicit scaffolding and targeted refinement options so future catalog maintenance can fill missing root and namespaced messages without silently rewriting accepted translations. - Regression guard: Expand unit and real-browser coverage for all 27 shipped locales, canonical Unraid aliases, native locale labels, RTL behavior, catalog completeness, HTML safety, and deterministic catalog generation. - Docs: Document all active locale mappings, Arabic RTL behavior, Traditional Chinese normalization, and the current translation-maintenance workflow. - Security: Pin the development-only `opencc-js` translation-normalization tool, refresh the complete SBOM, and update the lockfile to resolve the reported high-severity transitive `brace-expansion` advisory. ###2026.08.06.01 ## FolderView Plus 2026.08.06.01 ### Chinese locale compatibility - Fix: Activate the canonical resolved catalog in the browser so Unraid `zh_CN` sessions render the complete Simplified Chinese interface instead of falling back to English. - Localization: Support generic Chinese plus Mainland China, Singapore, Malaysia, and explicit `zh-Hans` identifiers through the existing 2,049-message Simplified Chinese catalog. - Compatibility: Preserve the normalized Unraid-requested locale in document metadata and diagnostics while using `zh-Hans` for translation, formatting, collation, and pseudo-locale restoration. - Reliability: Keep Taiwan, Hong Kong, Macau, and explicit `zh-Hant` requests on the English fallback until a separately reviewed Traditional Chinese catalog is available. - Regression guard: Cover underscore normalization, regional alias resolution, translated runtime output, pseudo-locale restoration, and native Chinese labels across all primary plugin surfaces. ###2026.07.29.04 ## FolderView Plus 2026.07.29.04 ### Reproducible package correction - Quality: Rebuild the development package from the repository's canonical LF-normalized source so its bytes match a clean Linux checkout. - Reliability: Preserve the export-download diagnostics and support-bundle behavior introduced in `2026.07.29.03` without runtime changes. - Quality: Keep deterministic-build enforcement authoritative across Windows development and GitHub Actions. ###2026.07.29.03 ## FolderView Plus 2026.07.29.03 ### Diagnostic module hardening - Refactor: Move export-download lifecycle recording and support-bundle normalization into a dedicated module so the general browser telemetry collector remains within its established architecture and performance boundaries. - Reliability: Preserve the inline missing-download report, direct retry, privacy-safe metadata, and sanitized support-bundle evidence through the focused module load path. - Regression guard: Add the new module to include-order, CSP, install, package-integrity, architecture, and performance contracts. ### CI cleanup - Maintenance: Remove the retired `common.dismiss` and `common.notifications` localization keys left behind by the popup notification removal. - Localization: Regenerate all 18 complete locale catalogs at revision `2026.07.29.2` with 2,049 aggregate messages and no unused explicit keys. - Quality: Refresh the tracked performance and CSP inventories after accepting the new dedicated diagnostics asset. ###2026.07.29.02 ## FolderView Plus 2026.07.29.02 ### Export download diagnostics - Diagnostics: Record a bounded, privacy-safe lifecycle for Docker, VM, and plugin configuration downloads so support bundles can distinguish payload generation, browser dispatch, synchronous failures, and user-confirmed missing downloads. - Privacy: Store only fixed-schema metadata such as export type, surface, size bucket, browser capabilities, and lifecycle outcome; export names, configuration content, container names, paths, addresses, and identifiers are never persisted in download diagnostics. - Diagnostics: Include recent download attempts and aggregate outcomes in sanitized support bundles without claiming a browser save completed when the browser does not provide a completion signal. ### Inline recovery - UI/UX: Show export-download status next to the export controls with clear “Download didn’t start” and “Retry download” actions instead of popup notifications. - Reliability: Keep a short-lived in-memory copy of the latest export payload so a direct user click can retry the browser download with fresh user activation. - Accessibility: Provide theme-aware, responsive, keyboard-accessible status and recovery controls with localized text across all 18 supported locales. ### Validation and packaging - Quality: Add unit and browser-fixture coverage for privacy boundaries, missing-download reporting, synchronous failures, retry behavior, and support-bundle telemetry. - Quality: Verify the dedicated download-diagnostics stylesheet is present and byte-identical in built and installed plugin artifacts. ###2026.07.29.01 ## FolderView Plus 2026.07.29.01 ### Popup notification removal - UI/UX: Completely remove the lower-right action-completion popup system from Settings and Dashboard surfaces. - Accessibility: Preserve action status feedback through a nonvisual polite live region without creating visible notification cards. - Reliability: Continue presenting actionable failures through the existing modal error dialog instead of an easy-to-miss transient popup. ### Persistent recovery - Reliability: Record destructive-action safety backups in the Activity Center and direct recovery through Advanced > Recovery instead of a ten-second popup Undo button. - Reliability: Preserve backup creation, restore workflows, and the dedicated inline tree-move Undo/Redo controls. ### Cleanup and coverage - Maintenance: Remove the retired toast renderer, DOM host, animation, responsive styles, legacy hidden toast CSS, timers, and unused state. - Localization: Remove the retired notification-only strings and regenerate the complete 18-locale surface catalogs. - Quality: Add browser and contract coverage proving action announcements remain accessible and no popup notification host is rendered. ###2026.07.28.09 ## FolderView Plus 2026.07.28.09 ### Immediate folder pin feedback - Fix: Docker folder Pin and Unpin actions now update the visible folder order, pin badge, and menu state immediately instead of waiting for a server preference read. - Fix: VM folder Pin and Unpin actions use the same immediate interaction behavior for runtime parity. ### Reliable asynchronous persistence - Fix: Older Pin or Unpin save completions can no longer repaint over a newer user selection while preference requests are still settling. - Reliability: Server-authoritative preference merging, post-save read-back verification, stale-render protection, and rollback on the latest save failure remain enabled. - Quality: Added shared intent-generation coverage and a browser regression that verifies Unpin is visible before an outstanding Pin save completes. ###2026.07.28.08 # FolderView Plus 2026.07.28.08 This interaction reliability update ensures a folder's Unpin request is not lost while its preceding Pin preference save is still settling. ## Folder interactions - Fix: Retain one latest reversible folder Pin or Unpin intent instead of silently discarding it when the same folder already has a save in flight. - Fix: Capture the requested pinned state when the Docker or VM menu action is selected so queued work cannot be reinterpreted after asynchronous state changes. - Reliability: Preserve duplicate suppression for non-queued actions and continue to serialize preference writes through the existing revision, rollback, and persistence guards. ## Regression coverage - Test: Exercise queued, replaced, completed, and default duplicate-suppression behavior in the shared safe UI action runner. - Test: Add a Chromium fixture proving one Unpin selection is retained while the preceding Pin save settles and produces an unpinned final state. ###2026.07.28.07 # FolderView Plus 2026.07.28.07 This focused reliability update restores first-click folder menu behavior after the shared row-action security migration. ## Folder interactions - Fix: Prepare Docker and VM folder context menus during the capture phase so the initiating icon click reaches Unraid's newly attached menu opener. - Fix: Keep folder edit and expand controls on the existing delegated action path, and avoid cancelling or double-dispatching context-menu clicks. - Maintenance: Preserve idempotent binding and teardown for both native capture and delegated folder-row listeners across repeated page navigation. ## Regression coverage - Test: Verify the shared row-action controller dispatches each action once, does not cancel context-menu clicks, and releases both listener types. - Test: Add a Chromium fixture proving one folder-icon click prepares and opens the context menu without requiring a second click. ###2026.07.28.06 # FolderView Plus 2026.07.28.06 This reliability update restores folder interactions after the declarative event security migration and removes false Storage and paths failures caused by managed or retired installed runtime files. ## Folder interactions - Fix: Route Docker and VM folder icon, name, and expand controls through one shared delegated-action controller instead of the declarative compatibility bridge. - Fix: Bind each folder action once, remove the legacy action attribute during row creation, and release the delegated handler when the page is unloaded. - Diagnostics: Treat the shared folder-action controller as a required runtime module so a missing or stale asset produces a specific bootstrap finding. ## Runtime integrity - Diagnostics: Exclude the exact generated `icon-asset-pack.json` activation record from unexpected executable-file findings while continuing to flag every other unmanifested JSON, script, style, shell, or PHP file. - Maintenance: Remove the retired native-organizer and Docker member-menu scripts from the installed plugin directory during upgrades. ## Regression coverage - Test: Exercise folder action decoration, single-dispatch behavior, teardown, Docker and VM module ordering, managed runtime-file handling, obsolete-file cleanup, browser fixtures, and runtime performance budgets. ###2026.07.28.05 # FolderView Plus 2026.07.28.05 This security update adds continuous runtime assurance, replay-resistant mutations, auditable security events, and stronger repository supply-chain checks without exporting sensitive request or system data. ## Request and mutation security - Security: Require short-lived, target-bound, one-time nonces for shared API requests and reject expired, mismatched, or reused mutation authorization. - Security: Reject replayed mutation transaction identifiers, apply bounded endpoint-specific rate limits, and return standards-based retry guidance. - Security: Remove the legacy GET backup-download path and route downloads through the guarded POST request client. - Security: Add a dedicated nonce bootstrap endpoint with explicit API-contract metadata and fail-closed endpoint, action, content-type, and request-size enforcement. ## Runtime integrity and diagnostics - Security: Generate a deterministic SHA-256 runtime integrity manifest inside every plugin package and verify expected files, permissions, and unexpected executable content at runtime. - Security: Record a bounded HMAC hash-chained audit trail for security decisions using only sanitized action metadata, random trace identifiers, status, and timestamps. - Diagnostics: Include sanitized runtime-integrity and security-audit health in diagnostics and support bundles without exposing payloads, names, paths, addresses, tokens, nonces, or other private values. - Security: Verify packaged runtime-manifest coverage and hashes during release validation and installation smoke testing. ## Repository and supply-chain assurance - Security: Upgrade CodeQL to the immutable v4 action and add a high-severity dependency-review merge gate with an explicit license policy. - Security: Add a scheduled OpenSSF Scorecard workflow that publishes SARIF findings through GitHub code scanning with least-privilege permissions. - Security: Require Dependency Review in managed branch-protection policy and expand the CycloneDX SBOM to cover the complete shipped runtime and workflow surface. - Docs: Document mutation authorization, replay protection, rate limiting, runtime integrity, audit privacy, package verification, and security-response expectations. - Test: Add functional regression coverage for nonce consumption, target binding, replay rejection, rate limits, path confinement, audit-chain tamper detection, runtime-manifest verification, workflow policy, and package integrity. ###2026.07.28.04 # FolderView Plus 2026.07.28.04 This security update strengthens archive handling, operating-system boundaries, browser injection defenses, durable storage, managed themes, and release provenance without removing compatibility fallbacks required by Unraid. ## Archive and filesystem security - Security: Preflight icon asset-pack archives before extraction with strict path, file-type, entry-count, nesting-depth, per-file-size, and total-size limits. - Security: Reject archive links, special files, traversal paths, unexpected top-level content, and post-extraction filesystem objects. - Security: Use private temporary staging, restrictive permissions, protected cleanup, and atomic activation for verified icon packs. - Security: Constrain durable writes to approved plugin and Docker storage roots, reject symbolic-link components, and create atomic temporary files with mode `0600`. - Security: Harden custom-icon upload staging and reject symbolic-link source, destination, rename, and deletion paths. ## Process and browser security - Security: Replace direct shell execution with one allowlisted, shell-free `proc_open` boundary for Docker, VM, and Tailscale operations. - Security: Validate runtime object names and actions, use fixed executable candidates and argument arrays, cap output, and terminate timed-out processes. - Security: Replace plugin-owned inline event handlers with a delegated, declarative event bridge that uses an explicit function allowlist and restricted argument grammar without `eval` or the `Function` constructor. - Security: Add a deterministic CSP-readiness report and CI guard while retaining report-only guidance because FolderView Plus shares its document with Unraid and other plugins. ## Theme and release supply-chain security - Security: Reject executable legacy CSS, remote imports, external network URLs, and HTML data URLs from managed or custom themes before persistence and render. - Security: Publish SHA-256 package and icon-pack digests in the Unraid manifest while retaining MD5 only for compatibility. - Security: Validate package SHA-256 sidecars and embedded build metadata during release and installation checks. - Security: Publish commit-pinned GitHub OIDC provenance and CycloneDX SBOM attestations for stable release archives. - Docs: Document package verification, attestation verification, CSP constraints, and the expanded vulnerability-reporting scope. - Test: Add regression contracts for archive limits, shell-free argument handling, durable-path containment, declarative event bindings, CSP readiness, package checksums, provenance, and SBOM attestations. ###2026.07.28.02 # FolderView Plus 2026.07.28.02 - Security: Build third-party icon results with DOM nodes and text properties instead of appending an HTML string. - Security: Keep localized rich-text fallback content inert through direct `textContent` assignment. - Security: Normalize every encoded npm scope marker when generating CycloneDX package URLs. - Test: Add regression contracts for DOM-only third-party icon rendering and complete SBOM purl normalization. ###2026.07.28.01 # FolderView Plus 2026.07.28.01 This security update hardens every plugin mutation path, removes live-system evidence from automated artifacts, resolves actionable CodeQL findings, and publishes a complete runtime dependency inventory. ## Request and input security - Security: Require the explicit mutation marker, a valid per-install request token, and a trusted same-origin request context for every protected POST action. - Security: Fail closed when the request token is unavailable and stop accepting browser-local token fallbacks. - Security: Include the mutation marker and page token in the raw backup download POST workflow. - Security: Restrict folder identifiers to a bounded safe character set and reject prototype-sensitive property names on both browser and server normalization paths. - Security: Sanitize external links, Docker WebUI launches, popup names, image URLs, and translated rich text before they reach browser navigation or DOM sinks. - Security: Replace predictable diagnostic identifiers with Web Crypto-backed runtime IDs where the browser supports them. ## Code scanning and merge protection - Security: Expand CodeQL push and pull-request coverage to both `dev` and `main`. - Security: Add regression contracts for mutation-token enforcement, privacy-safe workflow artifacts, CodeQL branch coverage, and the runtime SBOM. - Maintenance: Record the CodeQL security-severity baseline, triage decisions, and high-or-higher merge policy. - Maintenance: Remove dynamic shell/interpreter construction from affected test harnesses and avoid returning local stack details from fixture servers. ## Artifact privacy - Privacy: Disable live Unraid screenshot, report, and URL capture by default unless an operator explicitly opts in locally. - Privacy: Stop CI, scheduled validation, release, and back-merge workflows from uploading live-system screenshots or logs. - Privacy: Retain only synthetic fixture and release/package artifacts needed to validate repository behavior. ## Runtime software bill of materials - Security: Generate a CycloneDX SBOM that inventories all shipped browser libraries, embedded subcomponents, Unraid-provided runtime dependencies, npm development packages, and pinned GitHub Actions. - Security: Verify every file under `scripts/include` is classified and hash each shipped runtime component. - Docs: Document the canonical runtime component inventory and the command used to regenerate the SBOM. ###2026.07.27.03 # FolderView Plus 2026.07.27.03 - Reliability: Keep the settings stylesheet within its enforced architecture budget on Linux and Windows. - Test: Scope diagnostics toolbar theme assertions to their exact CSS blocks and current theme-aware color tokens. ###2026.07.27.02 # FolderView Plus 2026.07.27.02 This dev update strengthens release validation, expands automated compatibility coverage, repairs localization completeness, and adds more precise Docker first-load diagnostics. ## Release and scheduled validation - Reliability: Make release-mode validation fail closed when the Unraid version matrix, browser smoke target, or theme matrix target is missing. - Reliability: Add a weekly and manually dispatchable workflow that runs deterministic fixtures in Chromium, Firefox, and WebKit. - Reliability: Run required live Unraid guards, browser smoke, and theme-matrix validation from the scheduled workflow whenever all protected target secrets are configured. - Maintenance: Update the pinned Playwright development dependency used by browser validation. - Accessibility: Strengthen light-theme button and navigation contrast after WebKit/Axe identified insufficient contrast in Diagnostics controls. ## Docker diagnostics and architecture - Diagnostics: Distinguish whole-row movement from action movement within a row during delayed Docker metadata hydration. - Diagnostics: Record aggregate unavailable WebUI slots, disconnected action targets, and bounded absolute, relative, and row movement without retaining workload identities. - Maintenance: Extract reusable layout measurement and comparison into a typed, executable Docker runtime module. - Performance: Remove noisy first-render debug work from the Docker folder hot path and ratchet the main runtime line budget below its previous ceiling. - Regression guard: Add executable geometry tests, load-order checks, architecture contracts, and coverage for the extracted layout module. ## Quality and localization - Fix: Add the missing semantic labels for Docker WebUI, console, and log preview actions to every supported catalog. - Maintenance: Expand c8 coverage enforcement to diagnostics view models, Docker container normalization, Docker geometry, and future-host compatibility. - Maintenance: Raise PHPStan to level 2 and extend analysis to the validation and API-contract libraries. - Docs: Record the scheduled/live qualification contract, expanded analysis scope, and privacy-safe layout evidence. ###2026.07.27.01 # FolderView Plus 2026.07.27.01 This dev update removes the visible Docker first-load bounce by stabilizing preview actions and sizing the Application column before folder rows become visible. ## Docker first-frame stability - Fix: Reserve fixed WebUI, console, and log action slots from the first folder-preview render so delayed WebUI metadata no longer shifts the existing action icons. - Fix: Reconcile preview actions in place during full Docker metadata hydration instead of removing and rebuilding the complete action group. - Performance: Expose safe WebUI capability, direct URL, and shell hints in the lightweight Docker state response so compatible preview actions can render without waiting for the full template pass. - Accessibility: Give the icon-only WebUI, console, and log actions explicit accessible names and tooltips. ## Application column sizing - Fix: Measure localized folder names and status summaries before committing visible folder rows, then apply the measured width in the same render turn. - Reliability: Replace the legacy width cache with a schema-versioned, algorithm-versioned, content-signature-aware cache that cannot override a larger current measurement. - Reliability: Keep the first-frame cache bootstrap bounded and validate the cached schema, algorithm, mode, and width before applying it. - Maintenance: Move reusable width-cache, localized measurement, and bootstrap selection logic into the shared runtime column-layout module. ## Diagnostics and regression coverage - Diagnostics: Add privacy-safe Docker layout-stability evidence for hydration timing, width stages, fixed action-slot state, action displacement, and scoped layout-shift observations. - Maintenance: Move Docker layout telemetry into the diagnostics module with single-owner observer lifecycle handling, and extract Docker template-cache orchestration from the main server library. - Regression guard: Add a delayed-hydration Chromium fixture that verifies stable action nodes, sub-pixel action displacement, fixed slot widths, and identical first-visible and settled Application-column widths. - Regression guard: Cover lightweight WebUI metadata, cache signature validation, pre-visible width reconciliation, support-bundle telemetry, and state/full snapshot-token parity. ###2026.07.25.05 # FolderView Plus 2026.07.25.05 This dev update prepares FolderView Plus for Unraid's evolving Docker API while preserving the current Docker page and its proven fallback paths. ## Docker API compatibility - Feature: Add operation-level GraphQL capability discovery for Docker queries, mutations, subscriptions, argument signatures, return types, and deprecation metadata. - Feature: Introduce a hybrid legacy/GraphQL provider that keeps Unraid's current WebGUI in control while preferring schema-confirmed API reads, container statistics, health metadata, and supported mutations. - Compatibility: Normalize GraphQL, PHP runtime, and DOM container records into one immutable model with stable identity, ports, mounts, networks, template links, update state, orphan state, autostart metadata, and size fields. - Reliability: Keep legacy Docker startup non-blocking, fall back safely when GraphQL is unavailable or incomplete, reject stale responses, abort owned work on disposal, and avoid duplicate subscriptions across navigation. ## Runtime data and health - Feature: Consume Docker statistics subscriptions in Dashboard previews with automatic fallback to Unraid's existing `docker_load` stream. - Feature: Add targeted single-container reconciliation and aggregate Docker health checks for updates, rebuild readiness, orphaned containers, and container or LAN port conflicts. - Feature: Add capability-gated update, digest refresh, removal, and autostart mutation adapters while keeping lifecycle buttons on the established Unraid host bridge. - Privacy: Keep logs bounded and on demand, expose only aggregate compatibility and health evidence to diagnostics, and prevent raw container metadata from entering sanitized support bundles. ## Upstream readiness - Maintenance: Add a tracked Docker schema signature, latest Unraid API release baseline, and a cross-platform monitor that signals schema drift, new API releases, source-gate activation, release-note announcements, or unavailable upstream evidence. - Compatibility: Keep Native Docker Organizer integration qualification-only until the upstream page contract is explicitly enabled and validated; no prerelease organizer read or write mutation is activated. - Docs: Add the Docker API integration contract and update compatibility, runtime architecture, prerelease qualification, and repository-current-state guidance. - Localization: Add the hybrid-provider and aggregate-health messages across all 18 locale catalogs while preserving the zero-growth legacy localization budget. ## Regression coverage - Regression guard: Cover capability discovery, partial and permission responses, subscription cleanup, normalized records, hybrid selection, targeted reconciliation, guarded mutations, aggregate health, privacy-safe diagnostics, page include order, and navigation disposal. - Regression guard: Cover upstream schema changes, newer API releases, unavailable schema evidence, source-gate activation, and release-note activation signals. ###2026.07.25.04 # FolderView Plus 2026.07.25.04 This dev follow-up restores reliable Settings startup when the activity diagnostics workspace initializes. ## Settings reliability - Fix: Register the activity diagnostics API and module-ready marker before optional workspace rendering so a panel-specific failure cannot be misreported as a missing script. - Reliability: Make repeated module evaluation idempotent, isolate activity diagnostics declarations, and contain each optional diagnostics startup failure independently. - Maintenance: Remove an unused timestamp helper exposed by the stricter module scope. - Regression guard: Execute the shipped activity diagnostics script twice in one browser-like context, verify it owns only one startup handler, and confirm registration precedes optional startup work. ###2026.07.25.03 # FolderView Plus 2026.07.25.03 This dev follow-up completes cross-platform archive reproducibility. ## Release integrity - Fix: Normalize every packaged file and directory mode to `0755` in the tar stream so Windows/WSL and native Linux builds produce identical metadata. - Regression guard: Continue comparing two isolated builds and the checked-in repository archive byte for byte. ###2026.07.25.02 # FolderView Plus 2026.07.25.02 This dev follow-up closes two Linux CI findings discovered while monitoring the full `2026.07.25.01` publication. ## Release integrity - Reliability: Make archive provenance content-addressed so the checked-in package can be reproduced byte for byte from its containing commit without a self-referential Git SHA. - Reliability: Require the reproducibility guard to compare both isolated builds directly with the repository archive. ## Continuous integration - Fix: Install lockfile-pinned Node dependencies before the node test lane so the enforced `c8` coverage command is available on clean GitHub runners. - Regression guard: Verify that the node test job retains its dependency-install step. ###2026.07.25.01 # FolderView Plus 2026.07.25.01 This dev release completes the repository-wide maintainability, compatibility, security, accessibility, diagnostics, and release-integrity sequence. ## Runtime architecture - Performance: Load the Settings workspace in explicit foundation and deferred stages so the first usable interface is available sooner and module failures report a dedicated loader diagnostic. - Performance: Move the Settings bootstrap shell into a small first-paint stylesheet and retain a bounded interaction/idle fallback for deferred modules. - Maintenance: Extract remote retrieval into a focused server module and document the current browser, PHP, package, diagnostics, and native Docker integration boundaries. - Reliability: Strengthen architecture budgets for browser globals, inline actions, and the largest JavaScript, CSS, PHP, and page files. ## Security and privacy - Security: Restrict remote theme and GitHub retrieval to HTTPS, approved hosts, port 443, bounded redirects, response-size limits, and explicit timeouts. - Security: Add regression coverage for disallowed schemes, hosts, ports, redirect targets, and oversized responses. - Privacy: Add a sanitized support-bundle comparison tool that reports bounded structural differences without exposing machine identity or protected values. - Privacy: Document the package's sanitization and diagnostics design decisions. ## Accessibility and themes - Accessibility: Run Axe WCAG A/AA checks across every deterministic browser fixture and report actionable node-level failures. - Accessibility: Add accessible names for dropdowns and Docker privacy controls, a semantic toast region, and valid Diagnostics definition-list structure. - Compatibility: Replace unsafe inherited text-color fallbacks, improve light-theme contrast, and keep fixture host surfaces representative of Unraid themes. - Quality: Add enforced JavaScript coverage thresholds for core preferences, view-settings, and support-bundle comparison behavior. ## Release integrity and supply chain - Reliability: Prevent package-version reuse by considering manifests, archives, local and remote branches, and tags during version allocation. - Reliability: Rebuild a fresh dev package after stable backmerges and verify remote manifest, checksum, and downloaded archive bytes after publication. - Security: Pin every external GitHub Action to an immutable commit and enable weekly Dependabot updates for Actions and npm tooling. - Security: Generate and validate a CycloneDX SBOM for npm and GitHub Actions dependencies. - Reliability: Make stable release workflows fail closed unless the required live Unraid browser and theme matrices cover supported 7.0.x, 7.2.x, and 7.3.x systems. - Maintenance: Enrich generated release notes with source provenance, package SHA-256, stable comparison links, and bounded commit history. ## Maintainability and diagnostics - Quality: Add pinned PHPStan analysis for the extracted remote-fetch boundary and correct Windows/WSL path handling so static analysis cannot silently skip its configuration. - Quality: Add artifact-history auditing, documented retention policy, localization migration budgets, and immutable-Action policy checks to shared validation. - Diagnostics: Add a privacy-safe command-line comparator for two sanitized support bundles and document its troubleshooting workflow. - Docs: Add architecture decision records for branch package integrity, browser support, native Docker safe mode, diagnostic privacy, and package storage, plus a consolidated maintainability guide. - Maintenance: Let the upstream Unraid Docker monitor open or update a deduplicated compatibility issue when tracked implementation signals change. ## Validation - Test: Expand loader lifecycle, remote-fetch security, bundle comparison, accessibility, theme compatibility, versioning, and workflow contracts. - Test: Exercise deterministic Chromium fixtures with Axe and retain runtime-performance budgets through the extreme 250-folder/2,000-item scenario. ###2026.07.24.14 # FolderView Plus 2026.07.24.14 This dev-channel synchronization packages the cross-browser Diagnostics correction that was validated and published in stable `2026.07.24.13`. ## Diagnostics - Fix: Keep all seven support-bundle section icon backgrounds and borders distinct in Chromium, Firefox, and WebKit. - Compatibility: Use explicit translucent semantic icon-tile colors instead of the browser-dependent background `color-mix()` calculation. ## Release engineering - Maintenance: Rebuild the dev archive from the post-release backmerge so its packaged stylesheet exactly matches the merged source. - Reliability: Advance the dev package beyond stable `2026.07.24.13` to preserve update ordering and avoid reusing an existing stable package version. ###2026.07.24.11 - Fix: Restore Docker-page Privacy masking when Unraid's switch widget reports a user change through jQuery instead of a native bubbled change event. - Reliability: Bind the stable Privacy input directly while retaining single-handler guards and suppressing persistence during programmatic state synchronization. - Test: Exercise the real jQuery-only switch notification path while preserving optimistic, confirmed, external, failed-save, stable-widget, and duplicate-handler coverage. ###2026.07.24.10 - Fix: Keep the Docker-page Privacy switch mounted while its optimistic preference is saved and confirmed, preventing the control from visually bouncing back before returning to the selected state. - Reliability: Synchronize Privacy enabled, pending, cross-tab, menu, and mask-option state in place without recreating Unraid's switch widget or duplicating interaction handlers. - Test: Add browser lifecycle coverage for delayed saves, repeated reconciliation, external state changes, failed synchronization, stable DOM identity, and single-handler behavior. ###2026.07.24.09 - UI/UX: Stretched the seven Support bundle overview cards through the remaining overview height so the row reaches the card's bottom padding without moving titles away from the top. - UI/UX: Kept each SVG and title top-left while moving Included and Pending badges into a separate lower row centered across their cards. - Test: Reworked the Diagnostics browser fixture to reproduce the real two-card Support layout and verify equal card heights, bottom reach, top-aligned identity, and centered lower badges. ###2026.07.24.08 - UI/UX: Top-aligned the Support bundle overview tile icons, titles, and status badges, removed the fixed tile height, and reduced chrome so the seven modules use substantially less vertical space. - Diagnostics: Expanded the overview with mode-aware privacy guidance plus labeled bundle schema, actual included-section coverage, and preview-generation metadata. - Localization: Added the richer Support bundle overview copy and four metadata labels across all 18 locale catalogs, increasing the validated aggregate catalog to 2044 messages. - Test: Added renderer, responsive browser-geometry, compact-height, icon-readability, section-coverage, and parameter-substitution regression contracts. - Quality: Refreshed the tracked asset-size baseline after accepting the tested Support bundle overview renderer and localization growth. ###2026.07.24.07 - UI/UX: Vertically centered the four Diagnostics summary metrics within the overall-health hero row while preserving their centered copy and top-left status icons. - UI/UX: Reduced the Core checks progress track to half of its column width and kept it horizontally centered without changing the reported completion value. - Test: Added browser geometry and stylesheet contracts for the centered metrics group and 50% progress-track width. ###2026.07.24.06 - Fix: Reset Unraid's inherited definition-list layout so the Hashed, Masked, Omitted, and Truncated card titles remain left-aligned in every theme. - UI/UX: Made all expanded privacy cards use equal dimensions across desktop and responsive grid rows, including when their descriptions have different lengths. - Privacy: Expanded the data-handling guidance with verified details about per-bundle hash correlation, masking behavior, omission records, truncation limits, and the risks of full exports. - Localization: Refreshed the eight privacy-guidance messages in all 18 locale namespaces while preserving the 2040-message catalog contract. ###2026.07.24.05 - Fix: Kept the Learn more about data handling disclosure anchored to the Privacy and sanitization header when its explanation is expanded. - UI/UX: Centered the Hashed, Masked, Omitted, and Truncated badges, restored a visible Omitted outline, and added concise definitions for every privacy treatment and hash scope. - Accessibility: Rotated the disclosure arrow downward while open, preserved keyboard and reduced-motion behavior, and added responsive header and explanation layouts for narrow screens. - Localization: Added the expanded privacy guidance to all 18 locale namespaces and regenerated the catalogs at 2040 aggregate messages. ###2026.07.24.04 - UI/UX: Removed the healthy Performance Budgets and Localization cards, their Technical details disclosures, and the empty Additional diagnostics section so the workspace stays focused on six core System health checks. - Diagnostics: Kept Performance and Localization collectors and sanitized support-bundle telemetry active while surfacing only warning/error outcomes as non-linking Priority findings. - Localization: Removed the retired Additional diagnostics heading and Copy issue report label from all 18 locale namespaces, then regenerated the versioned catalogs at 2032 aggregate messages. ###2026.07.24.03 - Fix: Anchored every System health card's checked timestamp to the bottom-left so cards with different description lengths remain visually aligned. - UI/UX: Standardized the Theme health card timestamp label to `Checked`, matching Docker, VM, storage, custom icon, and update checks. - Maintenance: Extended the upstream Docker monitor's EXIT-trap ShellCheck annotation for compatible linting without changing cleanup behavior. ###2026.07.24.02 - Compatibility: Added capability-based detection for the current legacy Docker table, Unraid's developing native Docker component, and unknown host shapes; native and unknown pages remain owned and rendered by Unraid without a duplicate FolderView overlay. - Refactor: Added legacy WebGUI, Unraid GraphQL, and unsupported Docker providers for container discovery, identity, status, subscriptions, actions, organization authority, and UI ownership while keeping native organization detect-only. - Reliability: Hardened GraphQL requests with CSRF handling, current and documented legacy query-shape detection, `PrefixedID` actions, per-mutation capability gates, bounded reconnects, polling fallback, stale/abort handling, and cleanup of provider-owned resources. - Security: Added aggregate Docker compatibility evidence to sanitized support bundles without container names, IDs, paths, addresses, URLs, request variables, tokens, cookies, or raw server errors. - Maintenance: Added deterministic native-host fixtures, prerelease qualification guidance, and a scheduled read-only upstream monitor that raises a blocking signal when Unraid enables the native Docker page or announces its activation. - Localization: Regenerated all 18 shipped catalogs for the new compatibility and transport messages. ###2026.07.24.01 - Fix: Removed the unsupported Native Docker Organizer GraphQL probes and mutations that could only report an unavailable optional integration. - Diagnostics: Removed the obsolete organizer notice, manual check action, server snapshot metadata, and support-bundle telemetry so health results only describe supported capabilities. - Reliability: Stopped automatic organizer probes from Docker and Dashboard rendering while preserving FolderView Plus folder behavior and the shared runtime transport used by supported features. - Maintenance: Added a bounded Settings cleanup for the retired browser status record and a deprecation guard that prevents the removed module, actions, and undocumented mutations from returning. - Localization: Regenerated all shipped catalogs after removing organizer-only interface text. ###2026.07.23.13 - UX: Removed Copy issue report from the Diagnostics toolbar so the action row stays focused on health checks, performance retesting, and sanitized support-bundle export. - UI/UX: Anchored the Optional notices, Last checked, and Current version icons in the top-left of their summary panels while centering each panel's title, value, and supporting text independently. - Accessibility: Replaced the Current version icon's host-accent color with the theme-aware success token so it remains visible in dark and light themes. - Quality: Added rendered desktop, tablet, mobile, and light-theme assertions for the three-button toolbar, top-left metric icon placement, centered metric text, and readable semantic icon colors. ###2026.07.23.12 - Accessibility: Replaced accent-dependent dark-mode icons with readable semantic colors for Storage and paths, Update check, Dashboard visual evidence, and Support bundle overview. - UI/UX: Reduced all four Diagnostics toolbar actions to a consistent compact 36px height while preserving the larger, readable label and icon sizing. - Quality: Added dark/light rendered assertions that the affected SVG icons remain visible independently of the host accent token and that every toolbar action shares the compact height. ###2026.07.23.11 - UX: Made Run health check match the regular Diagnostics buttons at rest while retaining the orange hover and keyboard-focus treatment. - UI/UX: Gave Export support bundle a consistent information-blue border, label, and upload icon so the export action is easy to identify. - UI/UX: Rebuilt Privacy and sanitization as a compact, vertically centered row with left-aligned content and a right-aligned data-handling disclosure. - Accessibility: Matched Hashed, Masked, Omitted, and Truncated badge heights to Sanitized while preserving their distinct status colors and subtle corners. - Quality: Added dark/light rendered assertions for toolbar rest and hover states, export action colors, privacy alignment, matching badge heights, compact row height, and responsive overflow. ###2026.07.23.10 - Accessibility: Restored a clearly visible, theme-safe Learn more about data handling disclosure with readable hover and keyboard-focus states. - UI/UX: Centered the Privacy and sanitization summary row and changed its status badges to compact rectangles with subtle rounded corners. - UI/UX: Gave each support-bundle overview module a distinct semantic SVG color and matching low-contrast icon tile instead of the shared orange treatment. - Quality: Added dark/light browser assertions for disclosure visibility, privacy alignment, badge geometry, semantic icon colors, responsive layout, and overflow safety. ###2026.07.23.09 - UX: Refined Run health check into a restrained orange outline treatment with the same theme-aware interior as the neutral Diagnostics actions. - Accessibility: Increased every Diagnostics text tier, including headings, actions, metrics, cards, metadata, technical output, loading states, support details, and privacy labels. - UI/UX: Enlarged Diagnostics SVG icons and centered Optional notices, Last checked, Current version, and Core checks with consistent 1.3rem metric titles. - Quality: Added dark/light browser assertions for the outlined primary action, centered metrics, larger type and icons, and overflow safety at desktop, tablet, and mobile widths. ###2026.07.23.08 - UX: Corrected the Diagnostics toolbar hierarchy so Run health check uses the primary orange treatment while Retest performance, Copy issue report, and Export support bundle remain neutral controls. - Accessibility: Increased supporting text sizes throughout Diagnostics and added a visible status bar beneath the core-check count. - UI/UX: Replaced theme-sensitive font icons with inline SVG icons for hero metrics, system health cards, Dashboard evidence, support-bundle sections, and privacy status surfaces. - Privacy: Restyled Hashed, Masked, Omitted, and Truncated as distinct colored badges with their export state or count kept beside each badge. - Quality: Added dark/light desktop and mobile browser assertions for button colors, SVG visibility, icon placement, progress width, readable type, privacy badges, and overflow safety. ###2026.07.23.07 - UX: Rebuilt Advanced > Diagnostics as a compact workspace with one action toolbar, an overall-health summary, priority findings, six core system checks, and three clearly separated additional diagnostics. - Reliability: Added explicit unchecked, running, current, stale, and failed-refresh states so partial or outdated results are never presented as a fresh healthy check. - Diagnostics: Reworked Dashboard evidence capture, support-bundle contents, and privacy handling into a guided two-panel flow; detailed redaction mechanics now stay behind an optional disclosure. - Maintenance: Extracted a pure diagnostics view model and renderer, removed the visible troubleshooting-domain grid, and kept contextual native-organizer and performance rechecks on the shared action lifecycle. - Accessibility: Added semantic sections, live and busy states, keyboard targets for findings, focus-visible result cards, responsive touch targets, reduced-motion handling, and theme-token-based status styling. - Localization: Published catalog revision `2026.07.23.3` with the redesigned Diagnostics workspace translated across all 18 shipped locales. - Quality: Added health-state unit coverage and deterministic desktop/mobile browser fixtures for card counts, state rendering, responsive columns, and overflow safety. ###2026.07.23.06 - UX: Removed the Suggested fixes section from Advanced > Diagnostics so the tab moves directly from the health summary to support tools. - Maintenance: Removed the retired recommendation renderer, one-click repair mappings, styles, and localization entries while preserving health-card rechecks and support-bundle diagnostic evidence. - Localization: Published catalog revision `2026.07.23.2` across all 18 locales and completed the required one/few/many import summary forms. - Quality: Added regression guards that prevent the Suggested fixes markup, renderer, styles, and translation keys from returning. ###2026.07.23.05 - Diagnostics: Support-bundle previews now reuse the latest completed health-check summary so configuration, storage, custom-icon, and update domains show their assessed status. - UX: Replaced repeated `unavailable` domain cards with one clear health-check prompt until server-side health has been assessed. - Quality: Added regression coverage for preview-only summary enrichment, full-export isolation, pending-domain presentation, and fully assessed previews. ###2026.07.23.04 - Diagnostics: Fixed the Settings support-bundle preview so its first refresh immediately merges browser-stored Dashboard layout evidence instead of waiting for a support-bundle export. - Quality: Added lifecycle regression coverage proving Dashboard visual telemetry is enriched, cached, and available to the preview before its initial render. ###2026.07.23.02 - Diagnostics: Added privacy-safe Dashboard visual snapshots that record viewport, orientation, touch capability, browser scale, rendered card geometry, grid-column agreement, and overflow verdicts for Docker and VM widgets. - UX: Added a `Capture layout diagnostics` action to Dashboard View options plus a guided Settings workflow and freshness/environment warnings in the support-bundle preview. - Diagnostics: Split support findings into layout/rendering, configuration, runtime/request, storage, custom-icon, theme, localization, and update domains so unrelated warnings no longer obscure visual evidence. - Privacy: Kept Dashboard captures bounded to 12 distinct snapshots per widget and eight sampled problem labels, using per-page salted fingerprints and length buckets instead of screenshots, DOM dumps, or raw names. - Localization: Added translated Dashboard-capture and diagnostic-domain messages across all 18 supported locales and taught the catalog builder to synchronize missing explicit namespace keys with placeholder validation. - Quality: Added unit, integration, browser, portrait/landscape viewport, privacy, stale-version, and support-preview coverage for the complete capture-to-export workflow. ###2026.07.22.11 - Fix: Initialized the health-severity filter normalizer before constructing the Filter and View UI-state store, preventing `FVPLUS-SET-RUNTIME-001` from aborting the Settings page during bootstrap. - Regression guard: Added an initialization-order test covering every normalizer passed into the Filter and View state store so later declarations cannot reintroduce a temporal-dead-zone failure. ###2026.07.22.10 - Refactor: Moved Filter and View setting definitions, type coercion, persisted UI state, range-control bindings, and Docker/VM/Dashboard folder ordering behind shared typed modules instead of duplicated monolith logic. - Reliability: Added explicit page lifecycle teardown for deferred previews, observers, timers, host adapters, and settings controllers so repeated page navigation cannot retain stale runtime work. - Compatibility: Formally tracked `performanceMode`, `privacyMaskContainerIps`, and legacy folder regex compatibility. New integrations should use `performanceProfile`, `privacyMaskLocalIps`, and Advanced Auto-Rules respectively; existing saved values remain supported. - Maintenance: Added authoritative settings, architecture/global, module lifecycle, and deprecation registries with CI guards that reject undeclared controls, contract drift, global collisions, and removed no-op settings. - Fix: Centralized custom-order cursor removal so a missing Docker or VM member can no longer remove the final unrelated order entry. - Quality: Replaced brittle implementation-text assertions with executable registry, state-store, ordering, deferred-preview, lifecycle, and deprecation tests while retaining the complete repository regression suite. ###2026.07.22.09 - Maintenance: Removed dormant folder-editor no-op contracts, unused runtime performance fields, unconsumed helper exports, and unreachable reset/scan wrappers. - Maintenance: Removed the retired health summary category-filter state and reduced settings health metrics to values consumed by the current cards, chips, and counters. - Maintenance: Corrected stale custom-order naming across Docker, VM, and Dashboard runtimes while preserving folder ordering and lifecycle event behavior. - Quality: Expanded cleanup regression coverage and completed repository-wide reachability, handler, preference, API, localization, legacy-support, duplication, and tooling-entry audits. ###2026.07.22.08 - Fix: Removed the Docker editor's misleading Compose-project smart-default suggestion, which had no corresponding setting and could never apply a change. - Maintenance: Removed the orphaned Docker member-menu module and its stale privacy selectors after confirming that current Docker menus use the shared command and context-menu runtimes. - Maintenance: Removed retired folder-editor mode preferences, impossible legacy-editor branches, duplicate action-bar construction, and obsolete runtime alignment overrides while preserving the modern editor contract. - Maintenance: Removed abandoned settings-table drag-resize persistence and runtime cleanup paths while retaining the supported visibility, density, Name width, and Actions width presets. - Localization: Pruned two retired generated UI phrases from all 18 locale catalogs and refreshed the extraction totals. - Quality: Expanded regression coverage for the removed assets, executable smart-default suggestions, modern-only editor behavior, preference normalization, and preset-driven table widths. ###2026.07.22.06 - Fix: Docker advanced preview context, activation, graph mode, and graph duration settings now save immediately and reach the Dashboard preview runtime. - Fix: VM resource warning and critical thresholds now survive server normalization, remain correctly ordered at maximum values, and appear in diagnostics snapshots. - Feature: VM privacy masking now has a visible master switch that updates open VM and Dashboard views through live preference broadcasts. - UI/UX: Privacy cards now explain where masking is active, while the retired Compact card layout preference and its final runtime residue have been removed. - Localization: Added the revised privacy guidance across all 18 shipped locales and advanced the catalog to revision 2026.07.22.2. - Test: Added a complete Filter and view settings inventory contract, PHP preference round trips, threshold boundary coverage, privacy activation checks, and Docker advanced-preview persistence coverage. ###2026.07.22.05 - UI/UX: Health summary visibility now controls the current Docker and VM summary cards, Docker-only scoring controls are clearly separated from VM resource thresholds, and the retired Compact card layout option was removed. - Feature: Selecting Strict, Balanced, or Lenient now applies the preset stopped thresholds, update handling, and all-stopped behavior immediately while preserving later fine-tuning. - Fix: All stopped mode now honors Warning severity instead of always being overridden by the 100% stopped critical threshold. - Reliability: Docker and VM runtime summary badges now react to cross-tab preference broadcasts without requiring a page reload. - Localization: Added the revised health summary and scoring copy across all 18 shipped locales and advanced the catalog to revision 2026.07.22.1. - Test: Added behavioral coverage for summary visibility, every Docker health scoring control, removed preferences, VM control separation, and live runtime badge application. ###2026.07.22.04 - UX: Mobile reorder is now compact-only, type-scoped, and uses touch-friendly up/down controls instead of drag gestures. - Reliability: Tree scans refresh authoritative folder data, deduplicate structural errors, and separate repairable links from advisory warnings. - Reliability: Tree repairs now require a verified backup and configuration revision, prevent duplicate runs, and verify the saved tree afterward. - Test: Added browser, transaction, and behavioral coverage for mobile reorder, stale-write rejection, tree scans, and tree repairs. ###2026.07.22.03 - UX: Settings workspace layout, section flows, and table behavior. ###2026.07.22.02 - UX: Settings workspace layout, section flows, and table behavior. ###2026.07.22.01 - UX: Settings workspace layout, section flows, and table behavior. - Quality: Release automation, CI smoke coverage, and packaging guards. ###2026.07.21.26 - Performance: Added one bounded, passive runtime telemetry service for Docker, VMs, Dashboard, Settings, and the modern folder editor with no new bootstrap requests. - Diagnostics: Support bundles now include privacy-safe timing percentiles, rendering milestones, DOM size, mutation volume, FolderView asset requests, long tasks, and optional heap measurements for visited surfaces. - Reliability: Action timing is collected outside debug mode, histories remain capped, duplicate Settings/editor visibility samples are prevented, and the export collector remains inside established asset budgets. - Accessibility: Dashboard Docker and VM folder headers now support Enter and Space, synchronize `aria-expanded` with their controlled member panels, and show a clear keyboard focus ring. - Accessibility: Decorative folder icons are excluded from assistive output, the Dashboard quick-action group uses localized labeling, and shared disclosure/loading primitives support focus visibility and reduced-motion preferences. - Quality: Replaced the obsolete nested Dashboard toggle button, removed 34 unnecessary `!important` declarations, ratcheted the CSS-debt ceiling to 1,310, refreshed all 18 locale catalogs, and added unit and browser regressions. ###2026.07.21.22 - Feature: Added complete VM lifecycle reconciliation for native Start, Stop, Pause, Resume, Restart, Hibernate, Wake, Force Stop, and console-start actions. - Performance: VM actions now update member rows, folder totals, state colors, and menus incrementally without rebuilding the native VM table when runtime state settles normally. - Reliability: Added generation-aware bounded polling, stale-action cancellation, batch reconciliation for folder and custom actions, and one native refresh fallback when a VM cannot reach its expected state. - Fix: VM context menus now reflect the current runtime state after lifecycle actions, and lifecycle cleanup restores native action, support, and menu icons without leaving stale spinners or colors. - Fix: Corrected custom VM Stop actions to send Unraid's native `domain-stop` request. - Diagnostics: Added persisted, sanitized VM lifecycle events, pending-action state, fallback counts, and host-adapter snapshots to support bundles. - Test: Added unit and browser fixtures covering VM Stop/Start, Pause/Resume, native menu correction, folder summary updates, icon cleanup, stale generations, and fallback behavior. ###2026.07.21.21 - Refactor: Centralized Unraid Dashboard `loadlist` and `DashboardApps.php` integration behind one idempotent, generation-aware Dashboard host adapter. - Reliability: Dashboard refreshes now ignore stale native-row responses and permit only one folder-grouping render per active host generation. - Refactor: Extracted Dashboard runtime icon/state reconciliation and expanded-folder persistence from the main Dashboard script into reusable production modules. - Diagnostics: Added Dashboard host snapshots and structured `nativeRowsLoaded`, `foldersGrouped`, and `runtimeActionCompleted` lifecycle events. - Test: Added host-adapter, stale-generation, persisted-state, and module-loading regression coverage, and changed the lifecycle browser fixture to exercise the production runtime-surface controller. - Quality: Returned the shared UI-debt metric to its approved baseline without changing Dashboard quick-action sizing. ###2026.07.21.20 - Quality: Added a full browser-driven Dashboard container lifecycle fixture using realistic Unraid card markup and the production host-adapter and reconciliation modules. - Quality: The fixture verifies Stop and Start state convergence, folder aggregate totals, canonical red and green status icons, complete spinner cleanup, and live context-menu action correction. - Quality: Added Started only coverage across runtime transitions, rapid Stop-to-Start reconciliation, duplicate hook binding protection, and the one-time native refresh fallback for stale Start snapshots. - Compatibility: Validated the complete fixture suite in Chromium, Firefox, and WebKit with 66 passing browser checks and no failures. ###2026.07.21.19 - Fix: Dashboard container context menus now resolve Start, Stop, Pause, and Resume availability from the latest reconciled runtime cache instead of the stale inline state captured when the widget first rendered. - Fix: A container stopped from an expanded Dashboard folder immediately offers Start when its menu is opened again; stopped containers no longer continue offering Stop and Pause. - Diagnostics: Dashboard lifecycle telemetry now records when a context menu was corrected from current runtime state, including sanitized running, paused, and autostart flags. - Quality: Added Dashboard wiring and runtime-adapter regressions covering a stopped container whose original native menu payload still claims it is running. ###2026.07.21.18 - Fix: Dashboard container Start actions now fall back to one canonical native widget refresh when incremental runtime reconciliation does not reach the running state within 2.5 seconds. - Fix: Exhausted lifecycle reconciliation always restores captured card icons before the fallback, preventing indefinite refresh spinners even when the incremental snapshot remains stale. - Diagnostics: Support bundles now include sanitized Dashboard lifecycle telemetry with each observed state, reconciliation outcome, busy-icon count, and icon-class snapshot; container identities are hashed in sanitized exports. - Reliability: Dashboard lifecycle completion is generation-scoped and finalized exactly once, preventing stale Stop or Start attempts from triggering duplicate refreshes. - Quality: Added regression coverage for successful Start convergence, exhausted Start fallback, complete icon cleanup, telemetry persistence, and support-bundle redaction. ###2026.07.21.17 - Fix: Dashboard Start, Stop, Pause, Resume, and Restart actions now restore every native card icon after Unraid applies its temporary busy spinner classes across the card. - Fix: Running, paused, and stopped member status glyphs now use Unraid's canonical green, orange, and red state colors after incremental reconciliation. - Reliability: FolderView Plus snapshots the native icon-class contract before lifecycle actions, preserving WebUI, console, and menu icons instead of leaving them animated or altering their original glyphs. - Quality: Expanded Dashboard lifecycle regression coverage to verify pre-action surface capture, complete busy-state cleanup, and canonical runtime color restoration. ###2026.07.21.16 - Fix: Dashboard container status icons now clear stale Unraid started/stopped tone classes and inline color or animation styles after lifecycle actions. - Fix: Extra transient spinner nodes are removed while preserving the canonical `load-*` status icon required for subsequent Start and Stop actions. - Reliability: Member status text and icons now restore a complete final runtime surface instead of retaining host busy-state presentation details. - Quality: Expanded Dashboard lifecycle regression coverage for stale colors, inline animation, duplicate spinners, and canonical icon preservation. ###2026.07.21.15 - Fix: Dashboard container and folder status icons now clear Unraid's temporary lifecycle spinner classes after Start, Stop, Pause, Resume, or Restart completes. - Reliability: Incremental Dashboard reconciliation now restores the final runtime icon and removes stale busy state without rebuilding the folder widget. - Quality: Added regression coverage for clearing host spinner classes from both member and aggregate folder status icons. ###2026.07.21.14 - Fix: Dashboard folder members and aggregate counts now reconcile from stopped back to started after Docker lifecycle actions without requiring a page refresh. - Performance: Dashboard lifecycle actions keep the grouped folder DOM mounted and use bounded, state-aware runtime refreshes that stop as soon as the requested container state is observed. - Reliability: Delayed Docker state propagation is followed for up to seven seconds, and a newer lifecycle action cancels stale follow-up work from the previous action. - Quality: Added regression coverage for delayed start propagation and consecutive stop-to-start transitions while preserving the existing Docker-page reconciliation contract. - Quality: Icon-pack and package-source content hashing is now deterministic across Linux and Windows Git Bash, preventing false asset-change failures during dev packaging. ###2026.07.21.13 - Fix: Dashboard `Started only` now hides stopped Docker and VM members inside expanded and collapsed folders, hides fully inactive folders, and preserves parent folders with active nested descendants. - Performance: Dashboard running-only changes now reconcile member and folder visibility in place after toggle, expansion, and live runtime updates instead of rebuilding the complete widget. - Quality: Added fixture-based Docker and VM coverage for mixed states, paused members, collapsed storage, nested folders, live state changes, and restoring `All Apps`. ###2026.07.21.12 - UI/UX: Increased the Settings Activity Center label to 1.1rem for improved readability. ###2026.07.21.11 - Performance: Settings now retrieves saved Docker and VM folders and preferences through one combined configuration snapshot and paints both tables from a single request, while retaining automatic per-type and legacy request fallbacks for mixed-version installs. - Performance: Replaced the Diagnostics support-preview full bundle build with a lightweight contract-only endpoint; full host discovery, history collection, redaction, and browser telemetry now run only when a report is copied or exported. - Diagnostics: Split Settings performance telemetry into configuration first paint, Docker runtime hydration, VM runtime hydration, full manual refresh, and Diagnostics refresh measurements with individual budgets. - Diagnostics: Persisted bounded performance samples in browser storage for 24 hours across refreshes while limiting health evaluation to the latest 30 minutes so stale timings cannot create current warnings. - Performance: Preference changes are applied optimistically and coalesced for 160ms; no-op saves no longer rewrite flash state, and display-only changes skip full recovery backups, order reconciliation, and synchronous audit-history writes. - Reliability: Ordering, rule, start-order, folder-default, import-preset, and backup-schedule changes retain revision checks, atomic last-good writes, full recovery checkpoints, and mutation audit records; repeated checkpoints reuse one recent backup for 30 seconds. - Quality: Added combined-snapshot, fallback, endpoint-manifest, recovery-classification, persistent telemetry, and lightweight-preview regressions; Chromium UI fixtures and small, normal, and extreme runtime performance budgets pass. ###2026.07.21.10 - Fix: The Settings blank-page watchdog now recognizes the intentional loading shell during its early check, preventing false `FVPLUS-SET-BLANK-001` errors on slower refreshes while retaining the later stalled-bootstrap warning. - Performance: Removed passive theme-resolution and reflow events from the server diagnostics mutation path so initial styling no longer launches a burst of competing HTTP requests. - Performance: Theme token application now skips unchanged CSS properties and attributes, breaking the MutationObserver feedback loop that repeatedly re-rendered Settings during startup. - Performance: The full support-bundle preview is no longer generated on every Settings page load; its code remains ready and the data hydrates on demand when the Advanced Diagnostics tab is actually opened. - Reliability: Diagnostics preview hydration is deduplicated and cached briefly so repeated Diagnostics navigation cannot start overlapping support-bundle requests. - Quality: Added regressions for loading-shell watchdog behavior, startup request suppression, on-demand Diagnostics hydration, and idempotent theme-token application. ###2026.07.21.09 - Performance: Settings now loads saved Docker and VM folder configuration through a runtime-free snapshot path, so folder rows no longer wait for Docker inspection or libvirt discovery. - Performance: Docker and VM runtime details hydrate independently in the background, preventing a slow VM response from delaying Docker folders while retaining complete refresh semantics for recovery and diagnostics actions. - UI/UX: Added a compact first-paint loading shell and reveal the Settings workspace only after the saved mode, tab, folders, and preferences are applied, eliminating the raw Advanced-page flash during startup. - UI/UX: Folder status and signal cells show a neutral loading or unavailable state until live runtime data arrives instead of briefly reporting members as stopped. - Fix: Deferred empty-folder, health, update, quick, and status filtering until runtime hydration is complete so rule-populated folders cannot disappear during first paint. - Reliability: Kept legacy folder, preference, and runtime requests as automatic fallbacks and increased the warm runtime cache window to avoid unnecessary host queries. - Quality: Added contract and regression coverage proving config-only snapshots never invoke host runtime discovery, first-paint cloaking is present, runtime hydration remains independent, and explicit refresh workflows still wait for complete data. ###2026.07.21.08 - Performance: Reworked Settings startup to load each Docker and VM core state through one coherent runtime snapshot request instead of separate folder, preference, and runtime requests. - Performance: Docker and VM settings tables now hydrate first and render in one browser pass, avoiding staged first-load painting. - Performance: Plugin version lookup, update notes, theme workspace data, and active Advanced-tab datasets no longer block the core Settings page from becoming usable. - Reliability: Preserved the existing preference coordinator, pending-write replay, and metadata revisions when hydrating from a snapshot, with the previous three-request path retained as an automatic compatibility fallback. - Quality: Added regression coverage for snapshot script ordering, consolidated Settings bootstrap, synchronized first render, non-blocking optional data, and legacy fallback behavior. ###2026.07.21.05 - UI/UX: Replaced the seven Dashboard View options layout buttons with one compact themed dropdown for Docker and VM widgets. - Reliability: Kept layout changes on the existing verified preference-save and rollback path, with the current saved layout synchronized into the dropdown whenever the popover opens. - Accessibility: Uses a native select control with a localized accessible label, native keyboard navigation, disabled save state, and existing Escape/focus restoration behavior. - Test: Updated fixture and live Dashboard smoke coverage to verify all seven options, the current selection, neutral theme styling, persistence, and dropdown-driven layout switching. ###2026.07.21.04 - Fix: Prevented Unraid's global button styles from applying orange text and borders to the Docker and VM Dashboard View options popover. - UI/UX: Restyled layout, display, reset, and settings controls with neutral theme-token colors while retaining the intentional blue selected-layout and accessible focus states. - UI/UX: Removed inherited button margins and reduced layout, display, and footer gaps to 2px so the View options menu is substantially more compact. - Test: Added browser coverage that verifies neutral computed text and border colors, zero inherited margins, and tightly grouped layout controls. ###2026.07.21.03 - Feature: Reworked the Docker and VM Dashboard action rail into four focused controls for layout, expand or collapse all, running-only filtering, and a consolidated View options menu. - UI/UX: Replaced blind seven-layout cycling with a named layout selector, moved health emphasis, compact density, Reset view, and Settings into a compact anchored popover, and disabled Reset view when no temporary view state needs clearing. - UI/UX: Increased desktop and mobile action targets, added clear selected and pending states, prevented short widgets from requiring a seven-button scroll rail, and collapsed narrow widgets to the essential expand and View options controls. - Accessibility: Added explicit pressed and selected semantics, visible keyboard focus, arrow-key layout navigation, Escape and outside-click dismissal, focus restoration, localized labels, and responsive touch-friendly controls. - Reliability: Reused the existing verified Dashboard preference path for explicit layout choices, retained optimistic rollback on failed saves, and surfaced failures through the shared themed toast primitive. - Localization: Added complete Dashboard action-rail and layout-selector coverage across all 18 shipped language catalogs and advanced the source catalog to revision 2026.07.21.1. - Quality: Added a reusable viewport-aware popover primitive with safe positioning, outside-click handling, Escape dismissal, resize and scroll reconciliation, and trigger state restoration. - Test: Added Chromium fixture coverage for action inventory, target sizing, layout selection, arrow navigation, Escape focus return, toggle synchronization, persisted layout state, and narrow-widget control collapse; updated live Dashboard smoke coverage to select every layout explicitly. ###2026.07.20.02 - Fix: Made Dashboard layout changes from Settings and the Dashboard quick switch commit only the requested `dashboard.layout` field immediately, verify the server-confirmed value, and show a visible error if persistence returns a different layout. - Reliability: Prevented broad or stale preference writes from carrying an old Dashboard layout, while retaining revision-conflict rebasing and cross-tab synchronization so Compact Matrix survives refreshes and Settings/Dashboard navigation. - Reliability: Delayed Dashboard layout application and Compact Matrix measurement until preferences are hydrated and folder rendering is complete, preventing startup defaults and zero-width widgets from being treated as authoritative state. - Diagnostics: Reworked Dashboard layout telemetry to distinguish unmeasured, measured, and stale states; retain the last valid geometry; report the committed preference separately; and include a bounded, privacy-safe transition trace with source, revision, outcome, and timestamp. - Test: Added regression coverage for Settings/Dashboard reconciliation, unrelated concurrent saves, stale broad writes, pre-hydration startup, zero-width measurement, retained Compact Matrix evidence, responsive resize measurement, and bounded transition history. ###2026.07.20.01 - Fix: Corrected Compact Matrix Dashboard sizing so Docker and VM folder cards use the actual widget width instead of the full browser viewport, preventing narrow Dashboard panels from retaining an unsafe three-column layout. - UI/UX: Made Compact Matrix choose one, two, or three folder columns responsively, keep member tiles at a readable minimum width, and truncate unavoidable long labels cleanly instead of clipping their contents. - Reliability: Added per-widget resize and orientation reconciliation so Dashboard layouts update after live panel resizing, Dashboard rearrangement, and mobile rotation without requiring a page refresh. - Diagnostics: Added privacy-safe Dashboard layout telemetry to support bundles, including measured widget width, selected folder/member columns, row count, and estimated tile widths for Docker and VM widgets. - Test: Added deterministic unit and Chromium fixture coverage for wide widgets, narrow widgets inside wide desktop viewports, mobile widths, long German container names, horizontal overflow, and live resize recovery. ###2026.07.19.16 - UI/UX: Replaced the generic FolderView Plus install footer with a compact report that identifies installation, upgrade, reinstall, or downgrade and summarizes version, core package, icon pack, persistent data, scheduler, elapsed time, and the next step. - UI/UX: Added previous-to-current version output for upgrades, explicit cache reuse or activation details for the icon pack, preserved backup/custom-content counts, and a compatibility warning after downgrades. - Quality: Added a complete Slackware `install/slack-desc` package description so Unraid's package installer no longer displays an empty `PACKAGE DESCRIPTION` section. - Reliability: Added stage-aware failure reporting with the failed stage, exit code, icon-pack verification detail when available, and the previous installed version without emitting a false success summary. - Reliability: Record install context before package replacement, write the installed version only after icon-pack and scheduler setup, and distinguish a successful cron registration from a daemon restart warning. - Test: Added executable install-report coverage for fresh installs, upgrades, reinstalls, downgrades, preserved data, cache activation, and failure output, plus package-content guards for the description and reporting helper. - Docs: Documented the new installation report and clarified which output is controlled by Unraid versus FolderView Plus. ###2026.07.19.15 - Docs: Added a complete task-oriented User Guide covering folders, hierarchy, previews, runtime views, actions, rules, imports, backups, start order, performance profiles, privacy, and diagnostics. - Docs: Added dedicated Installation and Upgrades guidance for stable and dev branches, same-version update behavior, USB restoration, icon asset-pack recovery, persistent data, downgrades, and destructive uninstall behavior. - Docs: Added Migration, Privacy, and Compatibility guides covering FolderView2/3 imports, legacy regex conversion, runtime masks, support-bundle sanitization, supported platforms, host surfaces, themes, and optional integrations. - Docs: Expanded troubleshooting for missing icons, blank collapsed previews, native-row bootstrap, repeated reconciliation, view switching, privacy masks, performance, and cached updates. - Docs: Added an architecture overview and rebuilt the documentation index so API, storage, runtime, UI, localization, performance, asset-pack, support, security, and contributor references are discoverable. - Quality: Corrected GitHub contributor and security guidance to identify `dev` as active development and `main` as the stable release branch, and added a documentation checklist to pull requests. - Quality: Extended current-state metadata and documentation guards to verify branch policy, minimum Unraid version, public guide discovery, Docker views, privacy options, architecture coverage, and uninstall disclosure against live repository contracts. - Test: Added regression coverage for the new documentation contracts and broken relative links across GitHub-facing Markdown files. ###2026.07.19.14 - Docs: Corrected Settings persistence guidance after removal of the visible saved indicator and documented the current confirmation and recovery workflow. - Docs: Renamed the retired quick-actions modal references to the current folder action sheet throughout the edge-case test matrix. - Docs: Updated Docker and VM architecture guidance to accurately describe the current Standard, Adaptive, and Maximum performance modes. - Quality: Added a machine-readable current-state metadata registry for Settings modes, Advanced workspaces, performance profiles, action-surface names, and retired terminology. - Quality: Upgraded the documentation guard to compare published guidance with the live Settings and runtime implementations instead of checking required phrases alone. - Test: Added regression coverage that detects stale feature names, removed UI guidance, mismatched performance profiles, and documentation metadata drift. ###2026.07.19.13 - Security: Added one versioned endpoint registry that classifies every API and action as read-only or mutating and routes all declared mutations through the shared request guard. - Reliability: Enforced allowed methods, accepted request content types, request-size limits, required parameters, response contracts, and audit categories before endpoint handlers run. - Diagnostics: Added API contract and audit-category response headers and included the resolved audit category in server API error records. - Quality: Replaced incomplete endpoint allowlists in CI, release validation, and install smoke checks with manifest-driven coverage for all 29 public PHP endpoints. - Test: Added regression coverage for endpoint completeness, mixed read/write actions, mutation guards, invalid methods, unsupported content types, oversized requests, and missing parameters. - Docs: Documented the endpoint registry workflow and requirements for adding future APIs and actions. ###2026.07.19.12 # FolderView Plus 2026.07.19.12 - Reliability: Route durable folder maps, preferences, configuration metadata, diagnostics history, backups, rollback snapshots, templates, theme state, request tokens, Unraid autostart state, and custom icon files through one atomic storage service. - Safety: Write to a sibling temporary file, flush file contents, atomically replace the target, preserve file permissions, clean up failed temp files, and attempt a parent-directory flush where the platform supports it. - Recovery: Maintain atomic `.lastgood` JSON mirrors, preserve a successful primary commit when its recovery mirror fails, and refuse to restore corrupt last-good data. - Diagnostics: Carry one trace and transaction ID across browser requests, API responses and errors, backups, rollback snapshots, configuration revisions, activity history, storage status, and sanitized support bundles. - Fix: Store uploaded and mirrored custom icon bytes through the same durable writer instead of directly moving or copying data into persistent plugin storage. - Regression guard: Classify every remaining direct PHP file write and fail validation if a new unclassified write bypasses the durable storage boundary. - Test: Add failure injection for parent creation, read-only flash storage, temp creation and writes, interrupted writes, full disks, file flushes, atomic renames, directory flushes, last-good failures, and corrupt recovery copies. - Docs: Document which state is durable, which logs and caches remain intentionally disposable, the commit guarantees, and the storage failure-testing contract. ###2026.07.19.11 # FolderView Plus 2026.07.19.11 - Performance: Add required real-browser runtime budgets for small 25-folder/50-member, normal 100-folder/500-member, and extreme 250-folder/2,000-member configurations. - Test: Measure navigation-to-native-row visibility, one-shot folder grouping, Settings bootstrap, modern folder editor opening, normalized start/stop reconciliation, and Update-All reconciliation in Chromium. - Regression guard: Enforce DOM node, MutationObserver callback, retained heap after repeated view switching, and bootstrap network-request ceilings alongside runtime timings. - Quality: Use one warm-up and five fresh-page samples with stable medians, absolute ceilings, tracked baselines, percentage tolerances, and metric-specific noise floors so tiny timing fluctuations do not fail builds. - Diagnostics: Publish machine-readable JSON and review-friendly Markdown performance reports with every fixture-browser CI artifact. - Maintenance: Reconcile the static asset baseline with the already-shipped support-bundle telemetry client so the existing size ratchet remains enforceable alongside the new runtime budgets. - Docs: Document the scenario matrix, budget policy, local benchmark command, baseline review workflow, and failure interpretation. ###2026.07.19.10 # FolderView Plus 2026.07.19.10 - Refactor: Add one shared, theme-aware UI primitive layer for Settings, Docker, VM, Dashboard, and the modern folder editor. - Feature: Provide reusable modal and action-sheet, confirmation, alert, button and icon button, disclosure, badge, form field and error, dropdown and multiselect, toast and progress, empty-state, and loading-state APIs. - Accessibility: Give managed dialogs consistent ARIA semantics, initial focus, keyboard focus trapping, Escape and backdrop policies, nested-dialog ordering, live announcements, body scroll locking, and trigger focus restoration. - UI/UX: Standardize neutral button hover and focus behavior, responsive modal sizing, contained scrolling, mobile safe-area handling, status tones, compact badges, and theme-token surfaces without adding new `!important` overrides. - Refactor: Route Settings toast/error output and rollback confirmation through the shared UI layer while keeping a compatibility fallback for legacy SweetAlert availability. - Refactor: Migrate Diagnostics actions from inline event attributes to delegated UI actions and apply shared buttons, empty states, import disclosure bodies, import badges, folder action-sheet controls, and Docker action-bar controls. - Localization: Add and fully translate seven common modal, notification, loading, and confirmation labels across all 18 shipped locale catalogs, increasing each catalog to 1,944 messages. - Regression guard: Add a downward-only UI debt budget that prevents first-party `!important` declarations, SweetAlert references, or inline page event handlers from increasing and forbids `!important` inside the primitive stylesheet. - Test: Add Node contracts and a real Chromium fixture for every primitive family, delegated actions, confirmation results, modal focus and dismissal, toast lifecycle, and deterministic progress updates. - Docs: Document the shared component API, delegated-action pattern, styling rules, accessibility ownership, and incremental migration policy. ###2026.07.19.08 # FolderView Plus 2026.07.19.08 - Fix: Stop the localization observer from repeatedly translating its own Settings-page text mutations, which left Settings as one uninitialized long page, kept the browser tab spinner active, and could eventually crash the tab. - Reliability: Make explicit text, HTML, and attribute translation idempotent so the runtime only writes to the DOM when the localized value actually differs. - Reliability: Track automatically translated text-node output so observer callbacks settle immediately while still allowing later application-driven text changes to be translated. - Performance: Replace unbounded microtask translation flushes with one animation-frame batch and collapse very large mutation bursts into one bounded document scan, allowing Settings bootstrap timers and rendering to continue normally. - Quality: Remove the generic jQuery DOM translation fallback from observer-driven paths and retain the explicit, generated-surface translator as the single DOM mutation owner. - Test: Add a browser stress regression that inserts more than 300 Settings-like localized nodes, verifies initial and dynamic translation, proves a timer heartbeat is not starved, and confirms translation counts stop changing after the UI settles. ###2026.07.19.07 # FolderView Plus 2026.07.19.07 - Localization: Complete actual localization coverage for the remaining 1,564 initial and runtime-written legacy UI messages, increasing every shipped locale from 373 to 1,937 translated catalog messages. - Localization: Ship the complete generated surface in Czech, German, Spanish, French, Italian, Japanese, Korean, Dutch, Polish, Brazilian Portuguese, European Portuguese, Romanian, Russian, Swedish, Turkish, Ukrainian, and Simplified Chinese. - Feature: Translate legacy page text, placeholders, titles, accessibility labels, dynamically inserted UI, and parameterized live-state messages without requiring each legacy renderer to be rewritten. - Reliability: Preserve `$1`, `$2`, and other runtime parameters through translation generation so names, counts, progress values, and import results cannot be interpreted as currency or lost. - Reliability: Load the generated `legacy-surface` namespace on every localized plugin page and retain English fallback behavior when an individual catalog asset cannot load. - Performance: Index exact and parameterized source phrases once, batch MutationObserver updates, and collapse nested mutation roots before translating dynamic UI. - Diagnostics: Replace the previous 1,588-candidate localization backlog with a zero-uncovered contract and report the 1,564 automatically bound messages in runtime and support diagnostics. - Quality: Add a deterministic localization surface builder with stable content-addressed keys, existing-translation reuse, request timeouts, progress checkpoints, and placeholder-integrity enforcement. - Regression guard: Remove the permissive per-file hard-coded-string ceiling; source changes now fail validation until every detected user-facing phrase has a current catalog entry in all 18 locales. - Test: Add source-to-catalog, locale-completeness, parameter-integrity, mandatory-loader, and real Chromium coverage for initial, attributed, ignored user data, parameterized, and dynamically inserted translations. - Docs: Document the generated localization workflow, zero-debt validation model, parameter protection, and the fact that installed plugins never contact a translation service. ###2026.07.19.06 # FolderView Plus 2026.07.19.06 - Refactor: Add one shared, immutable host-adapter contract for Docker and VM table discovery, row classification, structure validation, row observation, and Unraid lifecycle integration. - Reliability: Make Docker and VM host hooks idempotent so repeated initialization updates the active handler without stacking wrappers, while preserving original function context, arguments, return values, and compatibility aliases. - Reliability: Route Docker list/view refreshes, update dialogs, lifecycle actions, container context menus, action-bar row discovery, and VM load/detail-row handling through the common adapter boundary. - Diagnostics: Add Docker and VM host-adapter snapshots with host structure issues, native and folder row counts, observer ownership, hook availability, invocation counts, and timestamps. - Test: Add Node and fixture-browser coverage for both host contracts, DOM discovery, row identity, observer batching/disposal, hook restoration, lifecycle forwarding, and missing-host structure failures. - Regression guard: Prevent Docker or VM runtimes from reintroducing independent selector preflights, direct lifecycle wrappers, duplicate observer ownership, or legacy wrapper markers. - Docs: Document the host-adapter ownership boundary, compatibility behavior, diagnostics APIs, and runtime include order. ###2026.07.19.05 # FolderView Plus 2026.07.19.05 - Test: Add a deterministic, fixture-based browser suite that runs the shipped Docker runtime, privacy, request, settings, folder action, and import modules without requiring a live Unraid server. - Regression guard: Cover Docker toolbar idempotency and counts, filtering and reset, duplicate-free Host list/FolderView switching, keyboard menus, independent privacy masks, standardized request metadata, and incremental lifecycle reconciliation. - Regression guard: Cover settings toolbar alignment, accessible folder action behavior, clipboard and focus handling, import operation selection, and import progress reporting. - Quality: Require the fixture suite for browser-affecting CI changes and run all 36 assertions in Chromium, Firefox, and WebKit during CI, stable release validation, and main-to-dev back-merge validation. - Diagnostics: Preserve a machine-readable fixture test report and failure screenshots as CI artifacts for faster browser regression troubleshooting. - Maintenance: Pin the browser test dependencies with a lockfile, key CI caches to that lockfile, and document the local fixture test workflow. ###2026.07.19.04 # FolderView Plus 2026.07.19.04 - UI/UX: Replace the oversized folder More popup with a compact, single-column action sheet shared by Docker and VM folders. - UI/UX: Add a concise folder header, live member-state chips, progressive folder details, and a clearly separated delete action without duplicating the table's Edit and Pin controls. - Feature: Consolidate Move to root, Move under, and Tree move into one Move folder flow that supports root, inside, before, and after destinations. - Feature: Make branch controls context-aware so only the applicable Collapse or Expand action and Pin or Unpin entire branch action is shown. - Feature: Consolidate folder and branch exports into one context-aware export action while retaining guided import into the selected folder. - Accessibility: Add dialog semantics, initial focus, keyboard focus trapping, Escape dismissal, backdrop dismissal, focus restoration, and descriptive labels. - UI/UX: Add a responsive safe-area-aware mobile bottom sheet with contained scrolling and theme-token styling that avoids the previous orange-filled action buttons. - Quality: Remove the retired VM-only details drawer, redundant row-level diagnostics actions, stale drawer state, and obsolete popup styling; tree integrity tools remain in Advanced settings. - Test: Replace legacy SweetAlert and VM drawer contracts with regression coverage for the unified action sheet, context-aware actions, responsive scrolling, theme tokens, and keyboard behavior. ###2026.07.19.03 # FolderView Plus 2026.07.19.03 - Feature: Expand the release-note taxonomy with dedicated Reliability, Privacy, Accessibility, Localization, and Diagnostics categories while preserving every previously supported tag. - Quality: Centralize all 18 allowed tags and their update-summary mappings in one packaged JSON contract shared by release validation and the installed plugin. - Reliability: Make the release guard and automatic notes builder consume the shared contract so an accepted tag cannot drift between packaging paths. - UX: Make the installed update-notes endpoint and browser headline formatter use the same canonical tag list instead of separate regular expressions. - Compatibility: Continue grouping detailed tags into the existing Feature, Bug Fix, Security, Performance, UI/UX, Maintenance, and Mixed update summary badges. - Test: Add contract, parser, classification, helper, and temporary release-flow coverage for the expanded category system. ###2026.07.19.02 # FolderView Plus 2026.07.19.02 - Feature: Replace the single Performance mode switch with three explicit runtime profiles: Standard, Adaptive (recommended), and Maximum performance. Existing enabled Performance mode preferences migrate automatically to Adaptive. - UX: Add an effective-policy summary in Docker and VM settings showing why optimization is active, the actual refresh interval, the expansion-restore limit, and the preview strategy currently in use. - Performance: Make Adaptive respond to real library size and measured render cost, with hysteresis so the profile does not repeatedly switch near a threshold. - Performance: Give Maximum performance deterministic limits for refresh cadence, restored expanded folders, motion, and offscreen preview work. - Performance: Hydrate large offscreen Docker and VM previews as they approach the viewport while preserving every folder's configured preview and action settings. - Performance: Schedule Dashboard Docker and VM refreshes independently so one runtime cannot delay or duplicate the other's refresh cycle. - Fix: Preserve saved expanded-folder preferences when a performance profile limits how many folders are restored during the current page load. - Fix: Flush deferred previews safely before full or incremental runtime reconciliation to prevent stale preview content after container or VM state changes. - Fix: Correct the Setup Assistant Power preset so its requested refresh interval no longer conflicts with the runtime minimum. - Fix: Harden support-bundle enum sanitization for both set-backed and list-backed allowlists. - Quality: Add sanitized effective performance-policy telemetry to support bundles, including aggregate folder/item counts, render time, refresh interval, restore limit, and activation reason without exporting names or paths. - Compatibility: Keep the legacy `performanceMode` field as a derived compatibility value while moving saved runtime preferences to schema v4 and the new `performanceProfile` field. - Test: Add regression coverage for profile resolution, render-cost activation, hysteresis, independent Dashboard timers, deferred previews, settings persistence, and expansion-state preservation. ###2026.07.19.01 # FolderView Plus 2026.07.19.01 - Fix: Restore container icons and member previews inside collapsed Docker folders when Performance mode is enabled. This resolves the blank collapsed rows reported after updating, reinstalling, or restoring FolderView Plus. - Fix: Performance mode was rewriting each folder's runtime preview setting to `None` (`preview: 0`) while the folder was being rendered. The renderer now honors the folder's saved preview style instead of silently replacing it. - Fix: Apply the same correction to collapsed VM folders and the Dashboard's Docker and VM folder previews so all runtime surfaces behave consistently. - Compatibility: Keep Performance mode's intended reduced motion, slower refresh cadence, and expansion limits without suppressing configured preview content. No folder reconfiguration, icon-pack reinstall, or preference migration is required. - Test: Add regression coverage across Docker, VM, and both Dashboard render paths proving Performance mode cannot silently disable collapsed previews again. ###2026.07.18.03 ## 2026.07.18.03 - UI/UX: Increased Suggested fixes, Core health, Performance advisories, Optional integrations, and Share with support headings to `1.3rem` for a clearer diagnostics hierarchy. - UI/UX: Styled Share with support with the theme-safe blue information accent in both dark and light modes. - Test: Added regression coverage for the diagnostics heading scale and support-title accent. ###2026.07.18.02 ## 2026.07.18.02 - UI/UX: Placed Performance Budgets, Native Docker Organizer, and Localization on one balanced diagnostics row on wide screens to reduce vertical spacing. - Responsive design: Preserved readable two-column and single-column wrapping for narrower settings layouts. - Tests: Added layout regression coverage for the new one-third/two-thirds diagnostics lane structure. ###2026.07.18.01 ## 2026.07.18.01 - UI/UX: Removed the Simple folder health snapshot from Advanced > Diagnostics so the tab focuses on the primary diagnostics and support workflow. - Quality: Removed the retired snapshot renderer, quick-filter actions, section registry metadata, and dedicated styles without changing the health metrics used by the Basic folder tables. - Tests: Added regression coverage that prevents the removed diagnostics snapshot and its orphaned UI hooks from returning. ###2026.07.17.15 ## 2026.07.17.15 - Localization: Completed all 17 non-English language catalogs with all 373 current messages across the legacy catalog and eight modern UI namespaces. - Localization: Czech, German, Spanish, French, Italian, Japanese, Korean, Dutch, Polish, Brazilian Portuguese, European Portuguese, Romanian, Russian, Swedish, Turkish, Ukrainian, and Simplified Chinese now load at 100% coverage without English fallback for cataloged UI. - Localization: Kept Brazilian and European Portuguese as independent regional translations while generic Portuguese now resolves to the complete European Portuguese catalog. - Localization: Added locale-correct one, few, and many forms for Czech, Polish, Romanian, Russian, and Ukrainian import summaries. - Diagnostics: Localization health now reports every shipped language as current, complete, and reviewed against catalog version `2026.07.17.4`. - Quality: Complete translation coverage now counts valid present messages even when established technical labels such as Docker, WebUI, or Compose correctly remain unchanged. - Quality: Strengthened localization validation to reject incomplete “complete” catalogs, stale source revisions, unaccepted catalogs, translation-workflow artifacts, and missing plural forms. - Quality: Audited destructive import, replace, delete, backup, confirmation, placeholder, link, markup, and technical-name wording before shipping the completed catalogs. - Translation workflow: Updated project policy so structurally validated, maintainer-accepted translations can ship without requiring an unavailable external native-speaker review. ###2026.07.17.14 ## 2026.07.17.14 - Localization: Split Portuguese into `pt-BR` and `pt-PT`, identify Simplified Chinese as `zh-Hans`, and prevent Traditional Chinese locales from silently falling back to Simplified Chinese. - Localization: Generic Portuguese and regional aliases now report the correct known translation status even when English fallback is required. - Localization: Added namespace-ready catalogs for every registered locale while keeping untranslated files empty and using the English fallback instead of presenting copied English as translation coverage. - Diagnostics: Added a Localization readiness card with active locale resolution, legacy and modern catalog coverage, current-review status, potentially stale message counts, runtime missing keys, load errors, and the remaining hard-coded UI extraction backlog. - Support: Added catalog coverage and extraction readiness to sanitized support-bundle localization metadata for faster language and fallback troubleshooting. - Quality: Enforced one catalog version across legacy and namespace files, required namespace scaffolds, validated regional metadata, and made localization extraction reporting fail when its totals become stale. - Testing: Added regional fallback regression tests, compact catalog-report tests, placeholder integrity checks, and automated expanded-text and RTL pseudo-locale browser screenshots. - Performance: Runtime pages now load only the active locale coverage report and skip empty namespace catalogs; the full language matrix is reserved for Settings diagnostics. - UI/UX: Folder and member selectors now use the active locale's numeric collation so names such as Folder 2 sort before Folder 10. - Translation workflow: Added Weblate-ready component guidance, a terminology and safety review policy, and a dedicated GitHub translation contribution form. - Localization: Moved Diagnostics activity, performance, history, repair, theme, retry, and technical-detail text into the English catalog, reducing the tracked hard-coded UI backlog without weakening the regression ceiling. ###2026.07.17.12 ## 2026.07.17.12 - Feature: Reorganized health cards into Core health, Performance advisories, and Optional integrations so unavailable optional capabilities no longer change the plugin's overall health status. - Fix: Replaced single-maximum performance warnings with a 15-minute evidence window that ignores cold loads for alerting, requires two recent warm overruns, and still flags an extreme warm overrun immediately. - Fix: Grouped nested Settings timings into one performance advisory instead of presenting a slow Settings load, Docker refresh, and VM refresh as independent health problems. - UI/UX: Added clearer core-health summary language, per-card freshness, expandable technical details, compact healthy-card spacing, and full-width advisory and optional lanes. - Feature: Added a Retest performance action that records a fresh warm Settings measurement and immediately reevaluates the advisory. - Quality: Removed the stale queued Docker-list refresh dependency left behind after runtime actions moved to incremental state reconciliation. ###2026.07.17.11 ## 2026.07.17.11 - UI/UX: Tightened the Docker-page view-control row above and below the Basic View and Privacy toggles so the container table begins closer to the page header without changing native table or folder-row spacing. ###2026.07.17.10 - Fix: Host list now explicitly extracts every native container row from FolderView storage, removes plugin folder rows and grouping classes, and restores Unraid's standard Docker table instead of relying on the host refresh to dismantle plugin-owned DOM. - Compatibility: Host restoration prefers freshly rendered direct Unraid rows when both native and previously stored copies exist, removes duplicates defensively, and falls back safely for containers missing from the saved host order. - Quality: Added request-bundle telemetry for Host list restoration counts and regression coverage for native row extraction, cleanup, ordering, duplicate handling, and the Host-mode render branch. ###2026.07.17.09 - Fix: Docker View-menu transitions now rebuild Unraid's native container rows before applying the selected FolderView mode, preventing repeated switches from appending duplicate folder rows. - UX: Removed Tree Explorer and Orbit from the Docker View menu and the Settings runtime selector, leaving FolderView, Host list, and Command as the supported Docker page views. - Maintenance: Removed the retired Tree Explorer and Orbit JavaScript modules, stylesheets, page assets, privacy selectors, translations, and runtime integration paths from the plugin package. - Compatibility: Existing preferences saved with either removed view now normalize safely to FolderView on both the client and server. - Quality: Added regression coverage for repeated FolderView/Host transitions, legacy preference fallback, supported-view surfaces, and the absence of retired assets from the package. ###2026.07.17.08 - UX: Docker startup now leaves Unraid's native container rows visible while FolderView Plus resolves its folder data and preferences, then converts those rows into the completed folder view without an intermediate blank or cloned overlay. - Fix: Removed the temporary Docker render snapshot, hidden tbody staging state, and related cleanup paths introduced during the cascading-chevron investigation. - Performance: Folder rows are now inserted in one uninterrupted synchronous DOM commit, matching FolderView3's paint behavior and preventing the browser from displaying partial folder or chevron states between animation frames. - Quality: Replaced the former yield/staging contracts with regressions that require native-first hook ordering, no render snapshot CSS or JavaScript, and no asynchronous yield inside either folder-construction loop. ###2026.07.17.07 - UX: Docker page startup now keeps a non-interactive snapshot of the native container list visible while FolderView assembles the folder tree, eliminating the blank table between the Docker header and the completed folder view. - Fix: Removed render staging from Unraid's native `loadlist()` phase so containers can paint normally before FolderView begins its atomic folder conversion. - Quality: The temporary render snapshot is isolated from user input and stripped of IDs, inline handlers, and operational folder classes so it cannot receive actions or interfere with the hidden live render. - Quality: Expanded Docker bootstrap, update-flow, layout, and performance regression coverage for the snapshot-backed atomic render path. ###2026.07.17.06 - Fix: Docker folder staging now hides both supported Unraid table-body variants as one composited surface, preventing dropdown chevrons and other descendants from painting one at a time before the completed folder view is ready. - Compatibility: Render busy state is applied to and cleared from both `docker_list` and `docker_view`, keeping atomic loading behavior consistent across Docker page variants. - Quality: Expanded the Docker bootstrap regression contract to verify non-overridable staging opacity and coverage of both Docker table bodies. ###2026.07.17.05 - Fix: Start Docker render staging before Unraid's native `loadlist()` paints container rows, preventing orphan dropdown chevrons from appearing one at a time before the completed folder view is revealed. - Fix: Parse semicolon-separated localization bindings independently so Settings search placeholders, accessibility labels, button text, and titles resolve to their intended translations instead of concatenated localization keys. - Compatibility: Release Docker render staging when host or isolated Docker views are selected so non-folder views remain visible. - Quality: Add regression coverage for pre-host-load Docker staging and combined text, placeholder, ARIA-label, and title localization bindings. ###2026.07.17.04 - Fix: Stop Docker Update All and folder update dialogs from repeatedly calling Unraid's full `loadlist()` rebuild while containers are updating. - Performance: Replace the 120-second recursive post-update redraw cycle with coalesced incremental runtime refreshes and a finite tail check that preserves the grouped folder DOM during transient container replacement. - UI/UX: Keep cooperative Docker folder construction hidden until the complete folder tree is ready, then reveal every folder together instead of cascading rows from top to bottom. - Quality: Add regression coverage proving update callbacks cannot forward the destructive `loadlist` callback, reconciliation terminates without a page refresh, and initial folder rendering commits atomically. ###2026.07.17.03 - Feature: Add a versioned, namespaced localization runtime with 338 English source messages, explicit English fallback, full regional locale resolution, and page-specific catalog loading. - Feature: Add locale-aware number, date, relative-time, and list formatting plus built-in `en-XA` and `ar-XB` pseudo-locales for translation and layout testing. - UI/UX: Localize the primary modern Settings, Setup Assistant, import, diagnostics, Docker action/privacy, Dashboard, and folder-editor surfaces while preserving readable English during catalog failures. - Compatibility: Preserve complete BCP 47 locale tags, fall back through regional language and English catalogs, and apply correct left-to-right or right-to-left document direction. - Quality: Include requested, resolved, active, and fallback locale details, catalog version, missing keys, and catalog load failures in sanitized support-bundle telemetry. - Quality: Classify every bundled locale as source, partial, complete, or placeholder with accurate coverage metadata so untranslated English copies are no longer presented as completed translations. - Quality: Add translation contributor documentation, glossary and message-format rules, pseudo-locale instructions, catalog metadata validation, plural and parameter checks, duplicate-key protection, and hard-coded UI regression detection. - Quality: Add localization runtime regression coverage and update existing UI contracts for translated fallback labels, coherent runtime snapshots, standardized requests, and incremental row refreshes. - Fix: Make local shell validation inspect tracked scripts only, correct icon asset-pack shell quoting/count checks, remove four confirmed dead JavaScript declarations, and ensure the current Unraid update displays these exact release notes. ###2026.07.17.02 - Fix: Docker support-bundle snapshots, trace storage caps, and rendered-state diagnostics. - Fix: Docker runtime rows, folder state, and container interactions. - Fix: VM runtime rows, folder state, and VM actions. - UX: Dashboard layouts, quick rails, and folder card interactions. - UX: Folder editor flows, previews, and bootstrap behavior. - UX: Settings workspace layout, section flows, and table behavior. ###2026.07.17.01 - Feature: Add a versioned, namespaced localization runtime with 338 English source messages, explicit English fallback, full regional locale resolution, and page-specific catalog loading. - Feature: Add locale-aware number, date, relative-time, and list formatting plus built-in `en-XA` and `ar-XB` pseudo-locales for translation and layout testing. - UI/UX: Localize the primary modern Settings, Setup Assistant, import, diagnostics, Docker action/privacy, Dashboard, and folder-editor surfaces while preserving readable English during catalog failures. - Compatibility: Preserve complete BCP 47 locale tags, fall back through regional language and English catalogs, and apply correct left-to-right or right-to-left document direction. - Quality: Include requested, resolved, active, and fallback locale details, catalog version, missing keys, and catalog load failures in sanitized support-bundle telemetry. - Quality: Classify every bundled locale as source, partial, complete, or placeholder with accurate coverage metadata so untranslated English copies are no longer presented as completed translations. - Quality: Add translation contributor documentation, glossary and message-format rules, pseudo-locale instructions, catalog metadata validation, plural and parameter checks, duplicate-key protection, and hard-coded UI regression detection. - Quality: Add localization runtime regression coverage and update existing UI contracts for translated fallback labels, coherent runtime snapshots, standardized requests, and incremental row refreshes. - Fix: Make local shell validation inspect tracked scripts only, correct icon asset-pack shell quoting/count checks, and remove four confirmed dead JavaScript declarations found by the full validation suite. ###2026.07.16.33 ### Faster, stable Docker folder startup - Performance: The Docker page now reuses one primed coherent runtime snapshot instead of replacing it during the first native `loadlist()` pass or issuing a separate preference request. - Performance: Full Docker runtime details now begin loading only after the lightweight folder view is visible, keeping advanced metadata off the initial render path. - UI/UX: The Application column holds its cached width while folders, previews, fonts, and host rows settle, then performs one final measured adjustment instead of visibly resizing several times. - Performance: Folder rendering now yields according to elapsed browser work rather than pausing after every six folders, reducing unnecessary frame delays on faster systems. - Reliability: Startup row mutations, font events, preference application, and post-render polish are coalesced behind a generation-safe width stabilization gate. - Test: Adds focused regression coverage for single-bundle startup, deferred detail hydration, stabilized column sizing, and time-budgeted folder rendering. ###2026.07.16.32 ### Live Docker action-menu state - Fix: Container menus now immediately switch between Start, Stop, Pause, and Resume after lifecycle actions without requiring a page refresh. - Fix: Prevents stale Start actions from being offered for containers that are already running, eliminating the resulting Docker "already running" error. - Reliability: Native Unraid context menus now resolve lifecycle state from FolderView Plus's canonical runtime cache instead of the original row's immutable inline arguments. - UI/UX: Already-initialized folder preview popups refresh their status icon and available actions as soon as incremental runtime reconciliation settles. - Test: Adds stopped-to-started-to-stopped regression coverage for native context menus and live preview popup refreshes. ###2026.07.16.31 ### Docker lifecycle spinner cleanup - Fix: Container status icons no longer keep spinning after a start, stop, pause, resume, or restart action has settled. - UI/UX: Expanded member rows, hidden folder members, and compact folder previews now immediately restore the correct started, paused, or stopped glyph during incremental reconciliation. - Reliability: The shared Docker status normalizer clears Unraid's temporary refresh and spin classes before applying the latest runtime state. - Test: Adds regression coverage proving every incremental member and preview status path removes pending lifecycle animation classes. ###2026.07.16.30 ### Docker lifecycle rebuild loop fix - Fix: Container start, stop, pause, resume, and restart reconciliation can no longer call `loadlist`, including when preference revisions change while the action is settling. - Fix: Eliminates the repeated native-container flash caused when a rebuild saved expanded-folder state and triggered another revision mismatch on the next retry. - Performance: Lifecycle refreshes now apply the latest runtime state to existing keyed rows while recording configuration revision changes for diagnostics instead of rebuilding the table. - UI/UX: Folder rows remain continuously mounted throughout lifecycle actions, preserving expansion, focus, menus, ordering, and scroll position. - Safety: Non-lifecycle refreshes still rebuild when folder or preference revisions change, preserving structural reconciliation outside the protected action window. - Test: Extends lifecycle regression coverage to prove preference-revision churn cannot be promoted into a grouped-table rebuild. ###2026.07.16.29 ### Stable Docker lifecycle refreshes - Fix: Starting, stopping, pausing, resuming, or restarting a container no longer exposes Unraid's ungrouped container table while FolderView reloads. - Performance: Native Unraid and FolderView lifecycle actions now use keyed in-place runtime reconciliation instead of the destructive global `loadlist` callback. - Reliability: Lifecycle transitions receive three lightweight refresh attempts across two seconds so delayed Docker state changes settle without rebuilding the grouped DOM. - UI/UX: Expanded folders, menus, focus, scroll position, previews, ordering, and existing rows remain mounted during container state changes. - Safety: Real folder or preference revision changes still retain the full rebuild path, while transient empty or structurally incomplete runtime responses preserve the current grouped view. - Diagnostics: Lifecycle callback interception and incremental refresh results are recorded in Docker troubleshooting telemetry. - Test: Adds regression coverage proving lifecycle callbacks cannot invoke `loadlist` while unrelated structural callbacks remain unchanged. ###2026.07.16.28 ### Incremental runtime row updates - Performance: Docker, VM, and Dashboard live refreshes now diff keyed runtime entities and patch only rows whose state, autostart, update, manager, identity, or folder-label data changed. - UI/UX: In-place updates preserve expanded folders, focus, menus, previews, current ordering, scroll position, and existing host row elements instead of rebuilding the full runtime list. - Performance: VM start, stop, pause, and resume actions now apply an immediate incremental refresh plus one delayed confirmation pass. - Safety: Entity additions or removals and folder or preference revision changes still use the full Unraid list rebuild so membership and ordering cannot become stale. - Diagnostics: Docker, VM, and Dashboard runtime state now records incremental versus structural reconciliation counts for troubleshooting. - Test: Adds runtime diff coverage for changed, unchanged, added, and removed entities plus contracts for all three incremental render paths. ###2026.07.16.27 ### Standardized plugin requests - Quality: Routes every FolderView Plus-owned browser request through one shared client while keeping native Unraid Docker, VM, User Scripts, GraphQL, WebSocket, SSE, and logging transports separate. - Fix: Prevents preference saves, folder mutations, expanded-state writes, and apply-settings operations from being replayed after an ambiguous network failure; reads retain one controlled retry. - Quality: Standardizes request tokens, trace IDs, encoded query construction, timeouts, JSON parsing, cache controls, abort handling, upload progress, keepalive writes, and normalized HTTP errors. - Diagnostics: Adds a bounded sanitized request-activity history with endpoint paths, outcomes, status codes, durations, attempts, and trace IDs to support-bundle UI telemetry. - Compatibility: Preserves icon upload cancellation/progress, unload-safe background synchronization, runtime snapshot polling, and native Unraid action transports during the migration. - Test: Adds behavior and enforcement coverage that rejects direct plugin-owned Ajax/fetch calls and mutation retry overrides while validating GET retries, URL encoding, diagnostic redaction, and all migrated runtime/editor paths. ###2026.07.16.26 ### Coherent runtime snapshots - Performance: Replaces fragmented Docker, VM, and Dashboard bootstrap reads with one versioned runtime snapshot per type while preserving Docker's fast initial state render and deferred detail hydration. - Fix: Captures folders, preferences, saved order, and metadata revisions under one configuration lock so a render cannot combine values from different save generations. - Performance: Adds lightweight conditional checks with deterministic snapshot tokens so unchanged live-refresh polls omit folder and runtime payloads. - Quality: Derives host order from the snapshot's entity generation and normalizes state and full runtime shapes to the same identity before calculating change tokens. - Compatibility: Keeps the existing read endpoints as per-field fallbacks if the snapshot endpoint is unavailable or returns an unsupported contract. - Test: Adds endpoint assembly, schema, conditional polling, revision invalidation, client projection, fallback, script-order, packaging, and cross-runtime regression coverage. ###2026.07.16.25 ### Icon asset-pack activation fix - Fix: Corrects the installed asset-pack helper path so the separately downloaded `1.0.0` icon library is extracted, linked, and available to the modern folder editor. - Fix: Makes the plugin install block stop and report a failure when icon-pack verification or activation fails instead of continuing to display a successful installation banner. - Quality: Prints an explicit activation start message and the helper's ready confirmation in the Unraid update window. - Test: Adds a manifest regression that expands the plugin-directory entity and proves the activation helper resolves to the installed script path. ###2026.07.16.24 ### Versioned icon asset pack - Performance: Moves the 1,982-file third-party icon library out of the frequently rebuilt core plugin archive and into an independently versioned `1.0.0` asset pack. - Performance: Reuses a checksum-marked extracted icon cache during ordinary plugin updates and rebuilds the RAM cache from the persistent pack after reboot. - Quality: Verifies the immutable pack with manifest-pinned MD5 and SHA-256 checksums, stages extraction, atomically activates the cache, and keeps the existing third-party icon URLs through a runtime symlink. - Quality: Adds deterministic asset-pack tooling and release guards that reject source drift, checksum mismatches, unsafe entries, or accidental icon-library inclusion in the core archive. - Feature: Exposes icon-pack version, checksum, URL, readiness, and link state through runtime metadata and sanitized support-bundle build identity. - Test: Adds executable regressions for archive contents, checksum rejection, real extraction, atomic activation, cached-pack reuse, endpoint health, packaging exclusion, and support metadata. ###2026.07.16.23 ### Atomic batching across folder workflows - Performance: Creates selected starter-template folders in one transaction instead of issuing and reconciling one request per folder. - Performance: Applies Setup Assistant folder creation and membership phases as bounded batch requests, with one folder-map write and one refresh per phase. - Performance: Applies rule-preview assignments across every destination folder in one multi-target request and removes the 40-item request loop from shared bulk assignment. - Fix: Repairs every affected nested-folder parent link in one batch so a failed tree-integrity request cannot leave only part of the tree repaired. - Security: Validates all destination folders and rejects conflicting item destinations before mutation, preventing partial moves when any target is invalid. - Quality: Uses one configuration lock, one folder-map read, one atomic write, and one Docker-order reconciliation for multi-target assignments while preserving legacy single-target API compatibility. - Quality: Records sanitized target, assignment, changed-folder, and duration counts for troubleshooting without logging folder or member names. - Test: Adds executable regressions proving one-revision multi-folder commits, full rollback on conflicts or missing targets, and one request for assignments larger than the former 40-item chunk size. ###2026.07.16.22 ### Atomic configuration imports and deletes - Performance: Replaces one HTTP request and full configuration rewrite per folder with one bounded server-side batch transaction for imports and bulk deletes. - Performance: Applies all folder changes under one configuration lock with one folder-map read, one normalization pass, one atomic folder-map write, one metadata commit, and one manual-order reconciliation. - Performance: Removes the fixed import and delete completion delays so the refreshed result appears as soon as the transaction finishes. - Security: Validates every delete, update, and create operation before changing disk state, preserves the existing pre-import safety backup and undo flow, and attempts an in-lock rollback if a post-write step fails. - Quality: Reconciles nested-folder parents, manual folder order, and Docker start order once after the final batch state is known instead of repeating that work for every folder. - Quality: Records sanitized batch counts and server execution time for troubleshooting without exporting folder names or payload content. - Test: Adds an executable transaction regression proving multi-folder changes commit one folder revision, repair hierarchy and order correctly, and reject invalid batches without partial mutation. ###2026.07.16.20 ### Compact import mode badges - UI/UX: Sets the Recommended and Can delete mode badges to 1.0rem while retaining the 1.2rem minimum for all other import popup text. - Fix: Excludes only import mode badges from both the CSS text-floor selector and runtime computed-font safeguard so they are not raised back to 1.2rem. - Test: Added regressions for the 1.0rem badge exception and its runtime minimum-font exclusion. ###2026.07.16.19 ### Enforced 1.2rem import text minimum - Fix: Replaces the inherited import-popup font floor with direct scoped 1.2rem rules for mode descriptions, recommendation badges, change chips, disclosure labels, helper text, safety notes, metadata, tables, and selection controls. - Fix: Adds a runtime computed-size check that raises any remaining rendered popup text below 1.2rem, covering host styles, native small-text scaling, and dynamically generated content. - Compatibility: Calculates the minimum from the active root font size so the runtime check matches exactly how 1.2rem resolves in the current Unraid theme. - UI/UX: Preserves icons and all text already larger than 1.2rem, including the 1.55rem planned-change total. - Test: Added regressions for direct badge, summary-chip, disclosure, and helper-text sizing plus the runtime computed-font safeguard. ###2026.07.16.18 ### Locked import window width and readable text - Fix: Targets the actual jQuery UI dialog widget and caps its physical and logical width at a responsive 566px, preventing the outer host window from leaving large empty areas around the 520px content column. - Fix: Adds a scoped resize lock that detects and immediately corrects late width changes applied by Unraid after the import window opens. - Fix: Reapplies the compact layout shortly after opening to cover delayed host dialog initialization and recenters the corrected window. - UI/UX: Raises all import popup text below 1.2rem to 1.2rem, including titles, descriptions, mode labels, badges, summaries, disclosures, file details, and footer buttons. - UI/UX: Preserves the existing 1.55rem planned-change total so text that was already larger than the new minimum is not reduced. - Test: Expanded import-dialog regressions for widget targeting, physical and logical width locks, late resize correction, the 1.2rem text floor, and preservation of larger summary text. ###2026.07.16.17 ### Compact import dialog spacing - UI/UX: Adds a consistent 0.55rem gap between each top-level import module so the behavior panel, change summary, disclosures, and confirmation no longer touch. - UI/UX: Reduces the import dialog shell from 620px to a responsive 566px around the existing 520px content column, removing unnecessary empty space on both sides. - Fix: Enforces the dialog shell's width and minimum width at runtime so Unraid host styles cannot stretch the popup back across the viewport. - Fix: Recalculates and reapplies the shell, content, spacing, and centered position whenever the viewport changes. - Test: Updated the compact-dialog regression coverage for the 566px shell, shared 520px content width, runtime minimum-width guard, and enforced module spacing. ###2026.07.16.16 ### Runtime-enforced import module widths - Fix: Applies the shared 520px width directly to every top-level import module after jQuery UI and Unraid finish constructing the dialog, preventing host styles from assigning different intrinsic widths. - Fix: Reapplies the same width contract on the next animation frame and whenever the viewport resizes so the header, behavior panel, summary, disclosures, and confirmation remain identical. - Fix: Applies full-width constraints directly to mode choices, collapsed and expanded disclosure rows, disclosure bodies, change tables, and operation lists. - Compatibility: Uses runtime important styles as the authoritative fallback for Unraid themes that override the popup's stylesheet width rules after render. - Performance: Refreshed the measured import-script performance baseline after adding the host-compatibility width coordinator; aggregate JavaScript and CSS remain within project budgets. - Test: Added regressions for direct-child width enforcement, nested disclosure constraints, resize reconciliation, and the shared responsive 520px maximum. ###2026.07.16.15 ### Unified import dialog sizing and neutral controls - Fix: Replaced mixed intrinsic and full-dialog widths with one explicit 520px content column shared by the import header, behavior panel, change summary, disclosure rows, expanded content, backup confirmation, and footer actions. - Fix: Reduced and forcibly reapplied the dialog shell width at runtime so Unraid's host dialog rules cannot stretch the popup back across the viewport. - Fix: Re-centers the dialog after applying its runtime width, keeping the popup correctly positioned on desktop and narrow screens. - UI/UX: Aligned the footer button group with the same content column used by every import module. - UI/UX: Added a high-specificity neutral button skin and runtime important styles so Apply Import and Cancel cannot inherit Unraid's orange outline or fill. - UI/UX: Force-hides the empty host title-bar close control that appeared as an orange outlined rectangle. - Quality: Keeps collapsed and expanded disclosure widths identical while constraining tables and operation lists within the shared content column. - Test: Added regressions for the 520px shared column, 620px dialog shell, runtime width enforcement, centered footer actions, neutral button override, and forced title-bar control removal. ###2026.07.16.14 ### Stable import disclosure layout - Fix: Locked the import modal and all collapsed or expanded disclosure sections to one stable responsive width so opening change details no longer stretches the popup across the viewport. - Fix: Constrained import tables, operation lists, and disclosure bodies to the modal content box, preventing wide row content from changing the dialog dimensions. - UI/UX: Expanded collapsed Review, Safety options, and File details rows to the same width as the primary import behavior panel. - UI/UX: Removed the redundant saved-preset selector and its Save, Default, and Delete controls from the popup because import behavior is already selected directly at the top. - UI/UX: Renamed Import options to Safety options and retained only the distinct Preview only and Require confirmation controls. - UI/UX: Restyled Apply Import and Cancel with the shared FolderView Plus neutral button tokens, including neutral outlines, fills, hover, active, focus, and disabled states. - Quality: Retained server-side import preset compatibility so an existing default preset can still initialize the visible behavior and safety state without duplicating controls. - Test: Added regressions for stable collapsed and expanded widths, constrained review tables, neutral shared button tokens, and removal of duplicate preset controls. ###2026.07.16.13 ### Compact configuration import redesign - UI/UX: Replaced the multi-panel guided import screen with a compact decision-first layout that shows only import behavior, one change summary, safety confirmation, and the primary actions by default. - UI/UX: Converted Merge safely, Add new only, and Replace exactly into concise stacked choices that are faster to scan and remain clear about update and deletion behavior. - UI/UX: Moved folder rows, operation selection, presets, dry-run controls, file metadata, and the technical summary into closed progressive-disclosure sections. - UI/UX: Replaced the four-card impact grid and three-step explanation with one live total and compact create, update, and delete indicators. - UI/UX: Normal imports no longer display a redundant ready banner; contextual messages now appear only for preview-only, empty, destructive, or untrusted plans. - UI/UX: Reduced the desktop modal width to 760px and tightened spacing, typography, controls, and mobile behavior while retaining one bounded vertical scroller. - Quality: Preserved automatic backups, review acknowledgement, import presets, per-operation exclusion, pagination, trust validation, dry runs, and destructive-import safeguards. - Test: Updated import regressions to enforce the compact default view, collapsed secondary information, concise contextual summaries, responsive sizing, and existing safety behavior. ###2026.07.16.12 ### Guided import configuration - Feature: Rebuilt the Docker and VM configuration import popup as a guided three-step flow for choosing import behavior, reviewing changes, and confirming the apply operation. - UI/UX: Replaced the technical mode selector with plain-language Merge safely, Add new only, and Replace exactly choices, including clear recommended and deletion-risk guidance. - UI/UX: Added a live impact overview and a concise what-happens-next explanation that updates with the selected operations and preview-only state. - UI/UX: Moved presets and optional safety controls into a collapsible secondary section while keeping changed folders visible and detailed operation selection available on demand. - UI/UX: Added a responsive theme-token modal shell with one bounded vertical scroller, compact review lists, mobile single-column layouts, and scoped footer buttons without the legacy orange outline. - Quality: Preserved automatic backups, preview-only dry runs, per-operation selection, destructive or untrusted import acknowledgement, presets, pagination, and the technical summary. - Test: Added regression coverage for the guided structure, mode synchronization, safety controls, responsive overflow handling, themed actions, and updated impact counters. ###2026.07.16.11 ### Optional setup import navigation - Fix: The Setup Assistant migration flow can now continue past the optional Import step when no Docker or VM export file is selected. - Fix: Import validation now blocks only plans explicitly enabled without a valid selected file, while preserving legacy-format and file-specific review warnings. - Quality: Centralized Docker and VM import-plan validation so the Import and Review steps use the same route-independent rules. - Test: Added executable regressions for skipping all imports, rejecting an enabled import without a file, and allowing valid legacy imports with warnings. ###2026.07.16.10 ### Native Docker Organizer diagnostics and retry - Fix: Treats an unavailable optional native Docker Organizer API as informational instead of raising a Diagnostics follow-up warning. - Fix: Forced organizer checks now clear cached GraphQL capability failures and perform fresh base-API and organizer-schema probes. - Fix: Reserves warning status for an explicitly requested organizer sync that fails after the organizer API was positively detected. - Feature: Adds a Check again action to the Native Docker Organizer diagnostics card for an immediate forced capability refresh. - Quality: Adds allowlisted organizer capability, failure category, stage, and HTTP status fields to sanitized support bundles without exporting raw GraphQL error text. - UI/UX: Adds a themed Optional diagnostics state and matching informational status in the Operations workspace. - Quality: Separates base GraphQL availability from organizer-schema availability and records structured, privacy-safe failure categories. - Test: Adds regressions for unsupported schemas, recovery after a cached failure, explicit mutation failures, optional Diagnostics rendering, and legacy support-bundle sanitization. ###2026.07.16.08 ### Docker toolbar filter and menu recovery - Fix: Reset View now clears the active runtime filter and folder focus without rerendering away the click before the reset executes. - Fix: Hiding empty folders now automatically clears an active Empty-only filter, preventing the Docker table from becoming stranded with every row hidden. - UI/UX: View and Tools menus now use viewport-aware fixed positioning, open below or above their trigger according to available space, and remain outside table clipping and overlap. - UI/UX: The Docker action bar now claims a cleared full-width row so it cannot share or overlap the Docker table header area. - Test: Added regression coverage proving Reset View restores every runtime row and hidden-empty preferences reconcile an incompatible Empty-only filter. ###2026.07.16.07 ### Action toolbar runtime architecture - Quality: Extracted the Docker action toolbar into a dedicated runtime module so the core Docker script remains focused and independently maintainable. - Performance: Reduced docker.js from 420,056 bytes to 397,865 bytes, restoring both byte and gzip performance-ratchet compliance without removing toolbar functionality. - Quality: Kept the toolbar connected through a narrow adapter to the existing folder hierarchy, focus state, preference coordinator, runtime refresh, and error-reporting paths. - Test: Added executable coverage for live toolbar counters and hierarchy-aware filtering, plus module loading, syntax, performance-budget, architecture, and install-smoke validation. ###2026.07.16.06 ### Docker page action toolbar - Feature: Replaced the standalone Add Folder control with a responsive FolderView action bar containing Add Folder, Expand All, Collapse All, and direct folder-management access. - Feature: Added live Unassigned, Updates, Empty, and Health Issues filters with current counts, nested-folder context, and temporary filter state that never rewrites saved folder order. - Feature: Added an on-page View menu for switching between FolderView, Host list, Command, Tree Explorer, and Orbit modes, with immediate conflict-safe preference persistence. - Feature: Added a Tools menu for showing or hiding empty folders, clearing folder focus, refreshing runtime state, opening bulk assignment or rules, and resetting temporary view state. - UI/UX: Added compact themed controls, upward-opening menus, responsive wrapping, active filter states, empty-filter guidance, and busy feedback across desktop and mobile layouts. - UI/UX: Added menu semantics, selected-state reporting, Escape dismissal, outside-click dismissal, focus restoration, and Arrow, Home, and End keyboard navigation. - Quality: Reused the existing hierarchy, focus, preference coordinator, and runtime refresh paths so toolbar actions stay synchronized with saved settings and live Docker state. - Test: Added focused regression coverage for the complete control set, hierarchy-aware filters, immediate preference saves, supported view modes, workspace routes, responsive styling, and keyboard behavior. ###2026.07.16.05 ### Taller Docker privacy menu - UI/UX: Increased the Docker privacy dropdown's maximum height from 26rem to 30rem and reduced its reserved viewport margin so all 1.2rem menu text fits without a scrollbar on normal desktop screens. - Compatibility: Retained viewport-aware overflow handling for unusually short browser windows where the complete menu cannot physically fit. - Test: Expanded the privacy-mode contract guard to preserve the taller responsive menu limit. ###2026.07.16.04 ### Larger Docker privacy menu text - UI/UX: Increased the Docker privacy dropdown text size to 1.2rem for the heading, helper text, and every mask option. - Test: Expanded the privacy-mode contract guard to keep the complete dropdown typography at the requested 1.2rem scale. ###2026.07.16.03 ### Compact privacy dropdown trigger - UI/UX: Removed the border, shadow, and hover or open-state fill from the Docker privacy dropdown trigger so it blends cleanly into the runtime toolbar. - UI/UX: Removed the forced minimum width and horizontal padding while preserving the existing icon size and control height, leaving an icon-width trigger beside the Privacy switch. - Test: Expanded the privacy-mode contract guard to prevent button chrome or excess trigger width from returning. ###2026.07.16.02 ### Docker privacy quick controls - Feature: Added a compact Docker-page privacy dropdown with quick controls for names and icons, LAN IPs, ports, volume paths, image registries, public IPs, network interfaces, and external URLs. - UI/UX: Replaced the Privacy switch's redundant ON/OFF text with a themed sliders-and-chevron dropdown button while retaining the main instant enable or disable toggle. - Performance: Privacy option changes now apply optimistically to the current Docker page and persist immediately through the shared conflict-safe preference coordinator and retry outbox. - UI/UX: Added dialog semantics, expanded-state reporting, outside-click dismissal, and Escape-key dismissal with focus restoration. - Test: Expanded the privacy-mode contract guard to cover all quick options, immediate persistence wiring, removal of ON/OFF labels, and themed dropdown behavior. ###2026.07.16.01 ### Live preview visibility synchronization - Fix: Updated the modern folder editor's live canvas to render only included members whose Show in preview toggle is enabled. - UI/UX: Added a clear live-preview empty state when a folder has included members but every member is hidden from the collapsed preview. - Fix: Added per-member preview visibility to the editor dirty snapshot so visibility-only edits reliably show as unsaved changes. - Fix: Cleared stale hidden-preview state when a member is excluded and its preview toggle is reset. - Test: Added executable regression coverage for immediate live-preview filtering, the all-hidden message, dependency wiring, and dirty-state tracking. ###2026.07.15.15 ### Folder identity, preview, privacy, and runtime roadmap - Feature: Added stable Docker and VM member identities so uniquely identified renamed members retain folder membership, collapsed-preview visibility, and custom-action targets; ambiguous duplicate Docker images remain untouched. - Feature: Added a per-member Show in preview control that hides selected members only from collapsed previews without changing membership, status totals, expanded rows, or actions. - Feature: Added preview overflow choices for configured row limits, full row expansion, or horizontal scrolling, plus optional colored separators between preview rows. - Feature: Added an Embossed Dashboard layout, authoritative per-folder status-color locking, and an independent Docker folder-name highlight when any member has an update. - Security: Expanded reversible privacy masking to cover Docker volume paths, image registries, public IPs, interfaces, and external URLs plus VM disk paths and MAC addresses, with private-address-aware classification. - Performance: Lazy-loaded the Dashboard chart stack only when an advanced graph preview opens and added complete package and third-party icon-library size budgets. - Compatibility: Added a capability-driven runtime transport for GraphQL queries, WebSocket or SSE subscriptions, polling fallback, and Docker actions while retaining host action fallbacks. - UI/UX: Added localized labels for all new folder, privacy, preview, and Dashboard controls across every bundled language catalog. - Fix: Persisted identity reconciliation through a guarded server endpoint, refreshed folder metadata timestamps, and prevented a claimed duplicate-image member from being treated as a unique rename candidate. - Quality: Added regression coverage for identity reconciliation, per-member previews, privacy classification, runtime transport, lazy assets, Dashboard layouts, overflow modes, preference normalization, and package contracts. - Quality: Updated the Settings script include-order contract to cover the shared preference store and removed stray CSS patch markers found during the final source audit. ###2026.07.15.14 ### Settings toolbar finishing touches - UI/UX: Applied a small optical offset to align the Wizard button with the padded Basic and Advanced controls. - Fix: Rebuilt the search clear control as a compact 24px icon button that resists Unraid host minimum-width, padding, border, and shadow styles. - Theme: Added a subtle theme-aware blue hover state to the clear icon while retaining an accessible focus indicator. - Test: Added focused regressions for Wizard offset and search-clear size/style containment. ###2026.07.15.13 ### Wizard toolbar polish - UI/UX: Aligned the Wizard button with the Settings search, Basic, and Advanced controls by removing inherited host spacing and matching the toolbar row height. - Theme: Applied the existing theme-aware information blue to the Wizard icon and label while preserving the shared button surface and interaction states. - Test: Added focused regression coverage for Wizard alignment, sizing, and theme-token color usage. ###2026.07.15.12 ### Settings search alignment - UI/UX: Aligned the Settings search field with the Basic, Advanced, and Wizard controls while keeping its scope controls compact beneath the field. - Fix: Contained the search field's padding and border within its declared width so it no longer overlaps or clips the Basic button. - Responsive: Preserved the centered, full-width search layout on smaller screens. - Test: Added focused regression coverage for desktop alignment, width containment, and the mobile alignment override. ###2026.07.15.11 ### Smarter Settings search - Feature: Added setting-level word-token search with privacy-safe indexing of labels, descriptions, aliases, and control metadata. - UI/UX: Added live result counts, highlighted matches, Enter-to-jump navigation, a clear button, Escape-to-reset behavior, and a dedicated no-results panel. - UI/UX: Replaced the Advanced search checkbox with a compact Current tab/All advanced scope selector and hid it in Basic mode. - Performance: Added a cached search index and short input debounce so large Settings pages remain responsive while typing. - Accessibility: Added native search semantics, accessible scope and clear controls, and polite live-result announcements. - Quality: Preserved independent Basic and per-tab Advanced queries while excluding folder names, runtime tables, dynamic lists, outputs, and entered values from the index. - Test: Added focused regressions for search structure, matching, privacy exclusions, persistence, keyboard behavior, responsive styling, and scope handling. ###2026.07.15.10 ### Version-specific update summaries - Fix: Corrected the release-note parser so descriptive section headings no longer terminate the current version block. - UI/UX: Replaced canned update headlines with the descriptive heading and exact change bullets recorded for the installed version. - Quality: Removed generic category headlines from the server endpoint and browser fallback so missing notes are reported honestly instead of implying unspecified fixes. - Test: Added a functional regression proving that only the requested version is rendered and generic release summaries cannot return. ###2026.07.15.09 ### Settings topbar cleanup - UI/UX: Removed the Saved/Saving status badge from the Settings topbar so the search field sits directly beside the Basic/Advanced mode control. - Quality: Removed the badge's unused renderer, styles, and animation while preserving background preference synchronization and diagnostics. - Test: Added a regression enforcing the compact topbar order and continued preference-sync listener binding. ###2026.07.15.08 ### Independent LAN IP and port masking - Fix: Split native Docker LAN IP:PORT values into independently maskable IP and port elements. - Fix: Prevent Mask ports from blurring the entire LAN IP:PORT field when Mask LAN IPs is disabled. - Compatibility: Handle IPv4, bracketed IPv6, multiple mappings, and host row refreshes while preserving the native displayed values. - Test: Added privacy contracts that reject whole-field LAN masking and require separate LAN IP and port targets. ###2026.07.15.07 ### LAN privacy control - Fix: Replaced the ineffective Mask container IPs setting with a single Mask LAN IPs control wired to the IP portion of the Docker page's LAN IP:PORT column. - UI/UX: Removed the redundant Mask local IPs checkbox and clarified that Mask ports controls the port portion independently. - Test: Updated privacy regressions to enforce the LAN-facing label, preference binding, and removal of the duplicate controls. ###2026.07.15.06 ### Privacy mask settings - Fix: Save each granular privacy checkbox as an immediate leaf-level preference update so unchecked values are preserved without stale dashboard fields overwriting them. - Fix: Reapply Docker, VM, and Dashboard privacy classes whenever synchronized preferences change, including updates made from another browser tab. - Fix: Automatically replay durable pending preference changes when a runtime page restores them through its normal preference reconciliation path. - Test: Added regressions for unchecked privacy masks, runtime preference subscriptions, immediate partial saves, and restored-outbox replay. ###2026.07.15.05 ### Instant preference saving - Feature: Added a shared optimistic preference-save coordinator so Docker, VM, Dashboard, Settings, privacy, folder order, pin, expansion, and auto-rule changes update the interface immediately. - Performance: Coalesced rapid edits into a single patch per preference type and serialized writes to avoid redundant requests and out-of-order saves. - UI/UX: Added clear Saved, Saving, and Sync pending status feedback in Settings without blocking normal interaction. ### Reliability and recovery - Fix: Persisted unsent preference changes in a local outbox so refreshes, navigation, brief network outages, and browser restarts no longer discard pending edits. - Fix: Added revision-aware conflict recovery that refreshes the server state, reapplies the pending patch, and retries without rolling back the visible interface. - Fix: Synchronized saved preference changes across browser tabs while preventing duplicate server writes. - Fix: Restricted automatic retries to transient request failures and retained permanent failures for an intentional later retry. - Fix: Recursively merged nested preference patches on the server while continuing to replace ordered arrays atomically. - Fix: Coalesced rapid preference backup checkpoints so a burst of saves retains one useful pre-change snapshot without excessive filesystem work. ### Diagnostics and quality - Diagnostics: Added aggregate preference-save health, queue, retry, conflict, and latency details to sanitized support bundles without exporting preference values. - Quality: Added regression coverage for optimistic updates, request coalescing, serialized writes, durable reload recovery, conflict rebasing, cross-tab convergence, nested server merges, backup coalescing, retry classification, request status propagation, and sanitized telemetry. ###2026.07.15.04 - Fix: Keep the Docker privacy toggle enabled across refreshes and Unraid tab navigation with browser-durable state and background server reconciliation. - Privacy: Mask native Container IP, Container Port, and LAN IP:Port values according to the granular Docker privacy settings. - Privacy: Synchronize the Docker privacy toggle between open browser tabs without exposing container details. - Quality: Add regression coverage for durable privacy state and native Docker column masking. ###2026.07.15.03 - Fix: Persist the Docker-page privacy toggle immediately so its enabled state survives refreshes and navigation. - Fix: Save Dashboard privacy mask options through the optimistic partial-preference path so checkbox changes apply reliably without overwriting unrelated preferences. - Privacy: Mask container icons inside folder row previews as well as expanded native container rows. - Quality: Add regression coverage for privacy preference saves, persisted toggle response validation, and folder row-preview masking. ###2026.07.15.02 ### Configuration Safety - Feature: Added versioned metadata sidecars for Docker and VM folders and preferences while preserving the existing configuration-file format. - Fix: Added revision-aware saves so an older editor or browser tab cannot silently overwrite newer folder or preference changes. - Fix: Serialized configuration mutations behind a shared lock to prevent overlapping writes from losing data. - Fix: Kept returned preference revisions synchronized when manual folder ordering is reconciled during a save. ### Recovery and Support - Feature: Added automatic detection and reconciliation for configuration files changed outside FolderView Plus. - Feature: Added configuration metadata integrity details, revision history, and fingerprints to Diagnostics and sanitized support bundles. - Feature: Added a Suggested Fixes action that safely rebuilds and reconciles configuration metadata. - Fix: Made custom-icon metadata atomic and recoverable through a last-good copy. ### Quality - Quality: Moved Settings table metadata to a canonical schema with generated runtime output and CI drift detection. - Quality: Hardened release-note parsing so categorized curated notes remain attached to the correct version. - Test: Added functional regressions covering revisions, stale saves, external edits, recovery, legacy compatibility, diagnostics, support exports, and icon metadata. ###2026.07.14.18 ## FolderView Plus 2026.07.14.18 - Docs: Removed the Credits section from the project README. - Fix: Restored the existing localized synchronous-script label in the redesigned custom-action dialog so strict language validation remains clean. - Quality: Refreshed the performance ratchet baseline against the current shipped assets so CI continues enforcing an accurate 8% future-growth limit. ###2026.07.14.17 ## FolderView Plus 2026.07.14.17 - Fix: Removed the custom-action dialog's horizontal overflow and visually hidden its scrollbars while retaining wheel, touch, and keyboard scrolling on short viewports. - UI/UX: Removed host-provided orange borders and focus outlines from custom-action dialog buttons while keeping theme-aware hover and focus feedback. - Test: Added regression coverage for border-box dialog sizing, overflow containment, hidden scrollbar chrome, and borderless modal buttons. ###2026.07.14.16 ## FolderView Plus 2026.07.14.16 - UI/UX: Rebuilt the Add Custom Action dialog as a compact, responsive editor with clear action-type cards, grouped settings, target summaries, selection controls, and a live icon preview. - Fix: Added mode-aware inline validation, disabled invalid saves, preserved values while switching action types, and retained compatibility with existing saved custom-action data. - UX: Added semantic dialog controls, keyboard-navigable action-type choices, visible focus states, an accessible close control, and focused invalid-field recovery. - Test: Added regression coverage for the modal structure, responsive layout, theme tokens, validation, target controls, icon normalization, and keyboard behavior. ###2026.07.14.15 ## FolderView Plus 2026.07.14.15 - Fix: Replaced the modern editor's text-like Add a Custom Action anchor with a semantic button that reliably opens the action dialog. - UI/UX: Applied the shared editor theme-token button surface, pointer cursor, hover, active, and keyboard-focus treatments to the custom-action launcher and its icon. - Test: Added regression coverage for button semantics, editor routing, themed styling, and removal of the transparent text override. ###2026.07.14.14 ## FolderView Plus 2026.07.14.14 - UI/UX: Increased the modern editor live-summary values for Name, Preview, Context, and Members to `1.3rem` while retaining the existing title size. - UI/UX: Increased Status Colors labels and Docker Signals text to `1.1rem` across desktop and responsive layouts. - Test: Added regression coverage for the summary value sizes and unchanged title sizing. ###2026.07.14.13 ## FolderView Plus 2026.07.14.13 - UI/UX: Increased the modern folder editor General-tab Name field text to `1.3rem` for improved readability. - Test: Added regression coverage that keeps the larger font scoped to the Name field. ###2026.07.14.12 ## FolderView Plus 2026.07.14.12 - UI/UX: Increased the Docker-page Privacy toggle label to `1.1rem` so its text size matches the adjacent Basic View toggle. - Test: Added regression coverage for the Docker runtime toggle-label font size. ###2026.07.14.11 ## FolderView Plus 2026.07.14.11 - UI/UX: Made managed Auto-Rules the primary full-width Rules workspace for new and existing folders, while hiding empty legacy regex controls. - Compatibility: Added a compact read-only compatibility card for existing legacy regex values with current-match, advanced-conflict, and overlapping-folder previews. - Compatibility: Added a guarded one-click conversion that creates a backup, appends an Advanced Include / Name Regex fallback, clears the legacy value only after both stores are written, and restores the original data if either write fails. - Fix: Aligned the JavaScript and PHP rule engines with the documented global priority contract so the first matching enabled include or exclude rule decides the result. - Compatibility: Kept legacy regex runtime evaluation, imports, backups, templates, diagnostics, and support-bundle data intact; invalid legacy patterns retain a focused repair path. - Test: Added regression coverage for migration previews, invalid and whitespace-sensitive expressions, duplicate-rule safety, rollback/backup contracts, advanced-first layout, and matching JS/PHP priority behavior. ###2026.07.14.09 ## FolderView Plus 2026.07.14.09 - UI/UX: Matched the Basic Settings three-dot overflow control to the quiet visual treatment used by the adjacent gear action. - Fix: Removed the idle overflow control from the selected/accent button state so it no longer appears orange-filled. - UI/UX: Applied the same border, background, icon color, shadow, hover, and keyboard-focus behavior to both action buttons. - Test: Added regression coverage that keeps overflow actions out of the active selector group and inside the shared quiet action-button system. ###2026.07.14.08 ## FolderView Plus 2026.07.14.08 - UI/UX: Converted the modern General-tab icon selectors into persistent tabs so Built-in, Third Party, or Custom Icons remains open when clicking elsewhere in the editor. - UI/UX: Built-in Icons now opens by default and reopens whenever the user leaves General and later returns, while clicking the already-active icon tab no longer collapses it. - Fix: Restricted outside-click dismissal to Third Party's temporary filter and pack-action flyouts instead of closing the main icon workspace. - Test: Added regression coverage for persistent main icon tabs, mutually exclusive tab activation, outside-click behavior, and the General-section re-entry reset event. ###2026.07.14.07 ## FolderView Plus 2026.07.14.07 - Fix: Scoped the modern Members-tab six-dot grip through the entire editor form so regular Docker/VM member rows receive the same styling as nested-folder rows. - Fix: Added explicit dot classes with forced block display and fixed min/max dimensions, preventing host button-span rules from collapsing the dots into a blank handle. - UI/UX: Strengthened the editor-wide drag-handle reset so borders, outlines, backgrounds, and shadows cannot replace the transparent six-dot grip. - Test: Expanded regression coverage for the stable editor form anchor, both member-table locations, visible fixed-size dots, and borderless handle chrome. ###2026.07.14.06 ## FolderView Plus 2026.07.14.06 - UI/UX: Replaced the modern folder editor Members-tab arrow drag icons with the same compact two-by-three six-dot grip used by Basic Settings. - UI/UX: Applied the six-dot grip to both nested child-folder rows and regular Docker/VM member rows while leaving the adjacent move-up and move-down buttons unchanged. - Fix: Excluded the new drag grips from the editor's framed quiet-button theme so their transparent surface, dimensions, dot geometry, and spacing match Settings. - Test: Added regression coverage for both Members-tab drag-handle render paths, six-dot counts, legacy icon removal, and matching grip geometry. ###2026.07.14.05 ## FolderView Plus 2026.07.14.05 - Fix: Removed Order-column controls from the shared framed-button theme so dark mode can no longer restore white borders around the drag and tree-move buttons. - UI/UX: Preserved the Order controls' orange interaction color while keeping their normal, hover, and keyboard-focus surfaces completely unframed. - Test: Strengthened regression coverage to reject any shared theme block that applies borders, backgrounds, or shadows to Order-column buttons. ###2026.07.14.04 ## FolderView Plus 2026.07.14.04 - UI/UX: Removed button outlines and framed backgrounds from the Basic Settings Order column while preserving the icon controls and their interaction colors. - Fix: Added a late, Order-cell-scoped style reset so the shared Settings button theme cannot restore borders, rounded corners, backgrounds, outlines, or shadows. - Test: Added regression coverage proving the unframed button reset remains scoped to Order-column controls. ###2026.07.14.03 ## FolderView Plus 2026.07.14.03 - UI/UX: Updated the Basic Settings order drag handle to a tighter two-by-three six-dot grip. - Fix: Replaced theme-sensitive pseudo-element dots with six explicit grip dots so every host theme renders the complete handle. - Test: Added regression coverage for the six-dot markup, compact spacing, and removal of pseudo-element dots. ###2026.07.14.02 ## FolderView Plus 2026.07.14.02 - UI/UX: Centered the Basic Settings Actions header and its button group within the full column width on desktop and compact layouts. - Fix: Isolated row action buttons from host button float rules so the Edit and More controls no longer drift to the right edge. - Test: Added regression coverage for centered action-cell markup and styling. ###2026.07.14.01 ## FolderView Plus 2026.07.14.01 - Fix: Removed the Status Details feature from Basic Settings, including the Actions-column button, Status-column info button, folder quick actions, VM row drawer, popup renderer, refresh/filter controls, and dedicated styles. - Fix: Status filters are now session-only and previously persisted popup filters are ignored on load, preventing saved folders from appearing missing after an update or page reload. - Refactor: The extracted row-details module now contains only the Docker Health Details workflow and its required runtime summary helper. - UI/UX: Updated setup guidance to describe the remaining health indicators without referencing the removed Status Details workflow. - Test: Added regression coverage proving all Status Details launchers, handlers, popup markup, and styles stay removed while inline status summaries and Docker health details remain available. ###2026.07.13.09 ## FolderView Plus 2026.07.13.09 - Fix: The Basic Settings status breakdown now sizes to its content instead of stretching grid rows across the available modal height. - UI/UX: Reduced modal width, padding, gaps, icon size, metric-card height, guidance spacing, member-list spacing, and footer controls for a substantially more compact layout. - UI/UX: Simplified the folder header metadata while retaining Docker/VM type, member count, loaded-snapshot context, and the dominant-status badge. - Compatibility: Narrow-screen dialogs remain centered, safe-area bounded, and scrollable without being anchored to both viewport edges. - Test: Added regression checks for intrinsic modal height, max-content grid rows, and compact mobile positioning. ###2026.07.13.08 ## FolderView Plus 2026.07.13.08 - UI/UX: The Basic Settings status breakdown now presents a compact folder header, dominant-state badge, member percentages, update totals, and a visual runtime distribution instead of a plain text alert. - UI/UX: Started, paused, and stopped members are grouped into expandable lists, with attention states opened automatically and long lists capped to a useful preview. - Quality: Status guidance now explains the configured stopped-member warning threshold, including when a mixed folder remains below it. - Quality: The breakdown can refresh Docker or VM runtime status in place and rerender the latest snapshot without closing the workflow. - UI/UX: The redesigned dialog uses semantic status messaging, escaped runtime values, live refresh feedback, responsive safe-area sizing, and reduced-motion handling. - Test: Added regression coverage for breakdown rendering, sanitization, filtering, threshold guidance, refresh/rerender behavior, empty folders, and mobile layout contracts. ###2026.07.13.06 ## FolderView Plus 2026.07.13.06 - Quality: Support bundles now separate current-session browser errors from historical records and include first/last seen timestamps plus truthful collection and observed plugin versions. - Quality: Docker hook diagnostics now distinguish unavailable, installed-but-not-observed, and observed invocation states. - Quality: Docker order reconciliation now reports how many missing containers were appended, where they were placed, and whether the folders-first invariant was satisfied. - Security: Sanitized exports now include an aggregate UI-telemetry privacy self-check for raw identities, absolute URLs, private network addresses, and sensitive filesystem paths without recording leaked values. - Test: Added regression coverage for browser error attribution, hook observation states, reconciliation outcomes, sanitized privacy validation, full-mode behavior, and the real exported telemetry shape. ###2026.07.13.05 - Security: Sanitized support bundles now hash legacy Docker update-command arguments, unknown hook notes, and dynamic trace titles. - Quality: Docker openDocker hook telemetry now stores a static operation note with structured invocation details instead of a raw command string. - Quality: Added whole-telemetry privacy regressions covering persisted page snapshots, bulk traces, request traces, and full-mode preservation. ###2026.07.13.04 - Fix: Docker support-bundle snapshots, trace storage caps, and rendered-state diagnostics. - Fix: Docker runtime rows, folder state, and container interactions. - Quality: Release-note generation, retry cleanup, and packaging guards. - Fix: Server endpoints, runtime payloads, and persistence or validation paths. - Quality: Release automation, CI smoke coverage, and packaging guards. ###2026.07.13.03 ## FolderView Plus 2026.07.13.03 - UI/UX: Diagnostics now presents Suggested fixes first in a full-width row, followed by the health summary and a full-width Share with support module. - Quality: Added Settings layout coverage for the Diagnostics module order and one-column workbench. ###2026.07.13.02 ## FolderView Plus 2026.07.13.02 - Fix: Docker folder rows now remain above standalone containers even when Unraid has already saved a newly installed container at the top of its preferences. - Quality: Added regression coverage for newly installed containers that are already present first in Unraid's saved order. ###2026.07.13.01 ## FolderView Plus 2026.07.13.01 - Fix: Newly installed Docker containers that are not yet present in Unraid's saved preferences now render below every FolderView folder instead of above them. - Quality: Added Docker order regression coverage for live-only containers and saved folder placeholders. ###2026.07.09.18 ## FolderView Plus 2026.07.09.18 - UI/UX: Dark-mode Settings buttons now use a visible white outline for better contrast, while light mode keeps a muted non-white outline. ###2026.07.09.17 ## FolderView Plus 2026.07.09.17 - UI/UX: Settings Basic, Rules, Operations, and Appearance action buttons now share the same restrained button styling instead of the older bright orange treatment. - Fix: Appearance token reset buttons now keep compact square geometry while matching the shared Settings button states. ###2026.07.09.16 ## FolderView Plus 2026.07.09.16 - Fix: Basic settings pin switches now keep the knob vertically centered in both enabled and disabled states. - UI/UX: Basic settings nested folder rows now draw a clearer branch connector with a vertical guide and horizontal elbow into each child row. ###2026.07.09.14 ## FolderView Plus 2026.07.09.14 - Fix: Docker basic view now reconciles pinned folders from the server immediately after rendering rows, so the pin badge and pinned row class recover even when the initial host render used stale or partial preferences. ###2026.07.09.13 ## FolderView Plus 2026.07.09.13 - Fix: Docker basic view now refreshes preferences and rebuilds its render request bundle when returning to the Docker page, preventing pinned folder state from disappearing after tab changes or page refreshes. ###2026.07.09.12 ## FolderView Plus 2026.07.09.12 - Fix: Docker pinned folders now show an explicit thumb-tack badge beside the folder name on the Docker tab, so persisted pinned state is visible after refresh and tab changes. - Fix: Docker folder row pin indicators now update in place when pin state changes without requiring a full Docker list reload. ###2026.07.09.11 ## FolderView Plus 2026.07.09.11 - Fix: Docker runtime renders now reapply pinned-folder ordering after nested hierarchy setup so saved pinned folders get their pinned row state and stay visually promoted. - Fix: Docker manual folder moves now normalize through pinned-folder ordering before updating the DOM or saving preferences, preventing unpinned folders from staying above pinned folders after drag or move actions. ###2026.07.09.10 ## FolderView Plus 2026.07.09.10 - Fix: Docker folder pinning now reads the current server prefs before computing pin or unpin, preventing stale Docker tab state from saving an empty pinned-folder list. - Fix: Docker pin saves now broadcast the confirmed pinned-folder list after verification so Settings and runtime pages stay in sync without waiting for a full refresh. ###2026.07.09.09 ## FolderView Plus 2026.07.09.09 - Fix: Docker folder pin state now resolves from normalized saved prefs and the active runtime store, keeping pinned rows marked after Docker tab changes and reloads. - UX: Docker folder pin actions and alternate Docker views now use a pin icon instead of a star. ###2026.07.09.08 ## FolderView Plus 2026.07.09.08 - Fix: Docker and VM runtime pin actions now reject failed preference saves instead of leaving an optimistic pinned state behind. - Fix: Runtime pin saves now read preferences back after saving and verify the pinned-folder list persisted before keeping the row pinned. - Fix: Recent runtime pin changes are protected from stale in-flight render payloads that can arrive after a pin click. ###2026.07.09.07 ## FolderView Plus 2026.07.09.07 - Fix: Settings Basic pin toggles now save through the shared partial preference path and notify Docker/VM pages through both storage and same-window events. - UX: Tightened the Basic pin switch track and knob sizing so the knob reaches the pinned side cleanly with less vertical padding. - Quality: Added regression coverage for partial Settings saves, pin sync broadcasts, and the compact pin switch geometry. ###2026.07.09.06 - Fix: Make Basic Settings folder pin toggles save only the pinned-folder list, update the toggle immediately, and roll back on save failure. - Fix: Notify already-open Docker and VM runtime pages when Settings changes pinned folders so Docker reflects Settings pin changes without a manual reload. - Quality: Added coverage for the fast Settings pin save path and runtime pin-change listeners. ###2026.07.09.05 - UX: Make Basic folder drag reordering feel row-based by using a full-row drag preview instead of the small handle-only browser preview. - Quality: Added Settings coverage for the full-row drag image path. ###2026.07.09.04 - UX: Removed the remaining VM Basic row drawer Move up and Move down actions so manual ordering is consistently handled by the drag handle and Tree move controls. ###2026.07.09.03 - UX: Refreshed the Basic Settings workspace for Docker and VM folder groups with visible search, filter, sort, and add controls while keeping the existing Docker and VMs section headers. - UX: Added summary cards for each Basic Settings section so total groups, health counts, empty groups, and rule totals are visible before scanning the folder list. - UX: Updated the folder rows with a cleaner grouped layout, larger folder identity area, compact health badges, pin switches, and simplified row actions. - UX: Replaced up and down reorder buttons with a drag handle for same-level manual ordering while keeping the existing Tree move flow for nesting and cross-level moves. - Quality: Updated Settings binding coverage for the moved Basic search and sort controls. ###2026.07.09.02 - Feature: Add Smart Rule Assistant suggestions for Docker and VM auto-assignment rules based on folder names, existing members, Docker image names, and Compose projects. - UX: Add beginner-friendly rule builder match types like name contains, name starts with, image contains, and Compose project equals while preserving the existing regex-backed rule engine. - UX: Replace the raw rule simulator text output with structured assignment preview rows, summary counts, and an Apply previewed assignments action that creates a backup first. ###2026.07.09.01 - UX: Removed sort shortcut buttons from Settings View & Organization so Sort mode is controlled only by the dropdown. - UX: Moved the folder search and quick filters out of View & Organization and into the row below it, replacing the old path hint row. ###2026.07.08.14 - UX: Reworked Settings sort and view controls into a clearer View & Organization workspace with dedicated Order, Find folders, Display, and Advanced tools sections. - UX: Added sort mode shortcut buttons, live sort guidance, pinned-folder notes, nested-folder notes, and folder counts for Docker and VM folder tables. - Feature: Added a Use current visible order action to save the current Settings table order as Manual order. - Test: Added regression coverage confirming pinned folders stay above every supported sort mode and nested manual branches remain together. ###2026.07.08.13 - Fix: Make the modern folder editor live preview use current Docker runtime Running/Paused state for member status labels instead of stale or missing status text. - Fix: Normalize Docker editor member state so started, paused, and stopped previews match the Docker tab. - Test: Add regression coverage for stale status text being overridden by current runtime booleans. ###2026.07.08.12 - Fix: Make the Dashboard compact matrix preserve Docker and VM folder order visually from top to bottom in each column, matching the Docker/VM tab order. - Test: Add regression coverage for compact matrix column-flow ordering. ###2026.07.08.11 - Fix: Harden Dashboard folder rendering so FolderView Plus only marks Dashboard folders loaded after async folder hydration succeeds. - Fix: Add Dashboard request fallbacks and safer JSON parsing so one failed local API read no longer leaves folders stuck in a default/native state. - Fix: Restore paused-state parity for Docker and VM Dashboard folders, including paused status counts, icon color, and folder status metadata. - Quality: Expand Dashboard debug bundles with sanitized runtime state, render/icon diagnostics, active plugin assets, and request fallback history. - Test: Add regression coverage for Dashboard render gating, request fallbacks, sanitized diagnostics, and paused-state handling. ###2026.07.06.09 - Feature: Overhaul the Theme Workspace with summary cards, clearer import and managed-theme modules, scan-before-import review, per-theme update actions, safer token override resets, and a contained token preview sample. - Fix: Restrict Theme Workspace token overrides to safe color values and stop raw custom CSS from being injected into the Settings page during live editing. - Test: Add regression coverage for Theme Workspace scan, update, reset, contained preview, and server action wiring. ###2026.07.06.08 - Docs: Render the refreshed README screenshot set inline, restore required Settings, recovery, troubleshooting, and customization sections, and keep support policy links in the polished README. - Fix: Load the shared folder editor icon module before Docker/VM editor type modules during boot-loaded editor startup. ###2026.07.06.07 - Docs: Refresh README screenshots and wire the new advanced workspace image into the GitHub landing page. ###2026.07.06.06 - Docs: Overhaul the GitHub README into a cleaner product-style landing page with polished quick links, two-column screenshots, feature summaries, and streamlined install/support sections. ###2026.07.06.05 - UI: Align the Docker Start Order advanced tab with the shared dark-mode Settings tokens so it matches the rest of the Advanced tabs. ###2026.07.06.04 - UI: Consolidate Settings, setup wizard, and folder editor dark-mode surfaces behind shared style tokens so future palette updates apply consistently across the plugin. ###2026.07.06.03 - Performance: Cache tracked Settings inputs so lightweight refreshes no longer rescan every input/control while updating dirty and validation state. ###2026.07.06.02 - Performance: Cache the Settings section registry so lightweight refreshes no longer rescan and rebuild every section heading unless the Settings structure changes. ###2026.07.06.01 - Performance: Make advanced Settings tab switches hydrate and refresh only the active workspace, and stop advanced data loads from refreshing hidden Diagnostics health cards. ###2026.07.04.04 - Performance: Make deferred Settings workspace refreshes tab-aware so table redraws only update the active advanced workspace instead of rebuilding every hidden advanced tab. ###2026.07.04.03 - Performance: Defer expensive secondary Settings workspaces after table redraws so folder rows update first while rules, templates, health cards, operations, and Start Order refresh in a coalesced next-frame pass. ###2026.07.04.02 - Performance: Queue Settings table redraws for folder filters and lightweight preference changes so quick UI interactions collapse into one next-frame rebuild instead of repeated synchronous renders. ###2026.07.04.01 - Performance: Make Docker Start Order settings update faster by preserving the preview panel, caching folder/container select options, and re-rendering only the controls and batch list during edits. ###2026.07.03.01 - Fix: Correct Settings health/status detection when using lightweight Docker runtime state so stopped containers are no longer counted as started. ###2026.07.02.13 - Performance: Rebuild the Phase 1 runtime-info optimization with a clean dev package after the interrupted 2026.07.02.12 package attempt. ###2026.07.02.12 - Performance: Use lightweight cached runtime state for Settings and the modern folder editor, remove duplicate editor boot module loads, and extend non-live runtime info cache windows. ###2026.07.02.11 - UI/UX: Remove duplicate Start Order action buttons so Preview Order and Sync Now render once in a consistent toolbar. ###2026.07.02.10 - Performance: Make Start Order settings respond immediately by batching preference saves and debouncing the expensive autostart preview refresh. ###2026.07.02.09 - UI/UX: Brighten Start Order action buttons by default and reserve orange text/border emphasis for hover and focus states. ###2026.07.02.08 - UI/UX: Make Start Order action buttons use a consistent neutral dark treatment instead of highlighting Add Batch as a filled primary action. ###2026.07.02.07 - UI/UX: Brighten the Start Order workspace dark surfaces and force the Start Order action buttons to use the intended orange filled and outlined treatments. ###2026.07.02.06 - UI/UX: Restyle the Start Order advanced tab with a cleaner dark-mode workspace, stronger startup controls, clearer batch actions, and a separated autostart preview panel. ###2026.07.02.05 - Quality: Use supported changelog categories for the Settings advanced tab polish release notes so the GitHub guard suite passes. ###2026.07.02.04 - UI/UX: Restyle the Settings advanced tab strip to match the modern folder editor tabs, including clearer active-tab highlighting and larger icon labels. - UI/UX: Remove numeric suffixes from the Settings advanced tabs. - UI/UX: Move Docker start order controls out of Operations into a dedicated Start Order advanced tab. ###2026.07.02.03 - Quality: Align the theme compatibility node test with the Settings primary text token contract enforced by the GitHub guard suite. ###2026.07.02.02 - Fix: Restore the Settings primary text theme token contract so the GitHub guard suite passes with the refreshed Docker start order UI styles. ###2026.07.02.01 - Feature: Add Docker start order controls in Settings > Advanced > Operations, including Docker-page order sync, custom batch ordering, folder/container batch items, remaining-container placement, preview, and manual sync. - Feature: Sync Unraid's Docker autostart order from the current folder layout without rewriting Docker user preferences, preserving existing autostart delays and skipping containers that are not enabled for autostart. - Quality: Add server, settings UI, Docker runtime, and regression coverage for Docker start order planning and sync behavior. ###2026.07.01.19 - Fix: Override the folder editor's generic text-input width cap for the Parent Folder search so the search bar and compact Clear button render correctly. - Quality: Guard the scoped Parent Folder search override so the generic editor field rules cannot shrink it again. ###2026.07.01.18 - Fix: Make the folder editor Parent Folder search row fill the module width, keep the search icon centered in the input, and compact the Clear button. - Quality: Extend parent picker layout coverage for full-width search controls. ###2026.07.01.17 - UX: Tighten the folder editor Parent Folder picker search row, center the search icon inside the input, shrink the Clear button, and align folder names and paths together on the left. - Quality: Update parent picker layout coverage for the refined search control and left-aligned folder rows. ###2026.07.01.16 - UX: Restyle the modern folder editor General tab parent folder picker with flat dark surfaces, a cleaner search row, squarer chips, and left-aligned folder names with paths beside them. - Quality: Update layout regression coverage for the refreshed parent folder picker and guard against the old selected-row gradients returning. ###2026.07.01.15 - UX: Complete the next dark-mode polish phases by moving shared Settings, folder editor, wizard, and runtime menu surfaces to a neutral black/gray palette instead of blue-slate graphite. - Fix: Make the runtime theme resolver emit opaque true-dark surface tokens and orange fallback accents so host theme colors no longer bleed through as a blue cast. - Quality: Update dark-mode regression coverage for the neutral palette and new shared surface-card resolver token. ###2026.07.01.14 - UX: Extend flat true-dark styling across setup wizard, recovery workspace, import progress, activity, and quick-action Settings chrome so the remaining dark surfaces use solid graphite panels instead of decorative gradients. - Quality: Add regression coverage for flat wizard and recovery surfaces and update the dark accent token expectation. ###2026.07.01.13 - UX: Flatten dark-mode Settings and folder editor chrome by removing decorative gradients from shared graphite tokens, runtime theme resolver outputs, editor modules, and shared button surfaces. - Fix: Prevent the theme resolver from re-injecting brown/gray gradients over the new dark-mode stylesheet tokens. ###2026.07.01.12 - UX: Apply the graphite dark-mode foundation to visible Settings and folder editor surfaces, replacing warm brown panel shading with neutral card and field surfaces while preserving orange as an accent. - Quality: Add regression coverage so editor modules, Settings cards, activity surfaces, and table shells keep using the shared graphite tokens. ###2026.07.01.11 - UX: Add a shared graphite dark-mode token foundation across Settings, the folder editor, Docker, VM, and Dashboard surfaces so the plugin can move away from warm brown chrome while keeping orange as the accent. - Maintenance: Load the new shared theme token stylesheet before page-specific styles and extend regression coverage for token and stylesheet order. ###2026.07.01.09 - UX: Add a shared graphite dark-mode token foundation across Settings, the folder editor, Docker, VM, and Dashboard surfaces so the plugin can move away from warm brown chrome while keeping orange as the accent. - Maintenance: Load the new shared theme token stylesheet before page-specific styles and extend regression coverage for token and stylesheet order. ###2026.07.01.08 - UX: Refresh folder hover animations with clearer Lift, Bounce, Pop, Glow, Flip, and Wiggle choices while mapping old Grow, Pulse, and Spin selections forward. ###2026.07.01.07 - Fix: Preserve saved folder hover animations in runtime performance paths and target the visible folder icon/name block for Docker and VM row animations. ###2026.07.01.06 - Fix: Include the folder Hover Animation control in the modern editor Preview row collector so the Appearance module renders it. ###2026.07.01.05 - Fix: Register the folder Hover Animation field with the modern editor schema so it appears in the Preview Appearance module. ###2026.07.01.04 - Feature: Add a folder Preview tab Hover Animation setting with one-shot Bounce, Grow, Spin, Pulse, and Wiggle effects for folder rows, live preview, and dashboard folder tiles. ###2026.07.01.03 - UX: Make the Settings Activity Center persistent with an empty state, retained session history, expandable details, and temporary fresh-state highlighting instead of auto-hiding completed actions. ###2026.07.01.02 - UX: Replace the Settings Recent Activity feed with a compact Activity Center that summarizes the latest action, expands history on demand, and keeps error activity visible until cleared. ###2026.07.01.01 - Feature: Add a Preview tab border glow toggle that uses the selected preview border color in the folder editor and Docker/VM runtime previews. ###2026.06.30.23 - UX: Compact the folder editor Preview tab border color controls by placing border thickness beside the color picker with a smaller numeric input. ###2026.06.30.22 - UX: Further reduce Docker tab column bounce by priming the FolderView Application column width before rows render and preventing same-load width shrink-back. ###2026.06.30.21 - UX: Stabilize Docker tab Application column placement on first load by caching the last-good FolderView width and only applying width changes to the Application column. ###2026.06.30.20 - Performance: Speed up initial Docker tab load by batching first-paint row centering and deferring support-bundle page snapshots off the critical render path. ###2026.06.30.19 - UX: Reduce initial Docker tab visual jiggle by running delayed row-centering and width-polish passes only when folder rows are still settling. ###2026.06.30.18 - UX: Stop Docker folder menu move actions from repainting the Docker folder list after the optimistic row move has already applied. ###2026.06.30.17 - UX: Keep Docker folder context menus and submenus inside the viewport by opening upward or left when they are near the page edge. ###2026.06.30.15 - UX: Add Docker folder menu hierarchy actions for Move under and Move to root, with cycle protection and optimistic visual updates. ###2026.06.30.14 - UX: Make Docker folder Move up/Move down feel instant by applying the visual row reorder before the server save completes, with rollback on failure. ###2026.06.30.13 - Fix: Apply Docker folder Move up/Move down changes visually on the current Docker page immediately after saving. ###2026.06.30.12 - Fix: Apply Docker folder menu reordering to the live Docker page and refresh order by using FolderView Plus saved folder order instead of stale Docker userprefs folder placeholders. ###2026.06.30.11 - UX: Add Move up and Move down actions to the Docker folder left-click menu for direct same-level folder reordering. ###2026.06.30.10 - UX: Add an Add child folder action to the Docker folder left-click menu, opening the folder editor with the clicked folder preselected as parent. ###2026.06.30.09 - UX: Add an Add child folder action to the Docker folder left-click menu, opening the folder editor with the clicked folder preselected as parent. ###2026.06.30.08 - Fix: Place the new Folder Members ordering block inside the modern Members tab so it appears above the Docker/VM member manager. ###2026.06.30.07 - Fix: Prevent the new folder editor from crashing during bootstrap when child folder ordering is included in dirty-state snapshots. ###2026.06.30.06 - UX: Add a Folder Members ordering section to the new folder editor for reordering nested child folders separately from Docker/VM members. - Fix: Persist child folder order and apply it to live previews, Docker runtime previews, and VM folder hierarchy traversal. ###2026.06.30.04 - UX: Limit member reorder drag cursor and drag start behavior to the dedicated grab handle. ###2026.06.30.03 - Fix: Make folder editor member drag handles start the drag operation correctly. ###2026.06.30.02 - UX: Add drag-and-drop member reordering to the new folder editor while keeping up/down buttons as fallback controls. ###2026.06.30.01 - UX: Make folder editor tab text larger and make the active tab state much more obvious. ###2026.06.29.27 - Fix: Make the active folder editor tab visibly distinct and reliable across editor render paths. ###2026.06.29.26 - UX: Make the active folder editor tab visually distinct with stronger accent styling. ###2026.06.29.25 - UX: Restore normal text sizing for folder editor live preview insight cards while keeping the compact layout. ###2026.06.29.24 - UX: Reduce folder editor live preview insight card height to prevent overlap and keep the preview row compact. ###2026.06.29.23 - UX: Reflow the folder editor live preview insight cards into a compact two-column desktop layout. ###2026.06.29.22 - UX: Compact the folder editor live preview insight cards into one equal-width desktop row. ###2026.06.29.21 - Fix: Live folder editor preview now shows all nested child folder chips for the visible root when collapsed child-folder previews are enabled. ###2026.06.29.19 - UX: Settings workspace layout, section flows, and table behavior. ###2026.06.29.18 - Quality: Removed stale editor and setup-assistant CSS/JS contracts so dev GitHub checks pass after the action modal reflow. ###2026.06.29.16 - UX: Reflowed the Settings row action modal into a wider two-column desktop layout so folder actions fit without unnecessary vertical scrolling. ###2026.06.29.15 - UX: Enlarged the Settings row action modal, removed excess top spacing, and opened it at a stable top position to reduce internal scrolling. ###2026.06.29.14 - Fix: Corrected the Settings row action modal opening position, reset its scroll state on open, compacted the folder header, and removed the orange outline from the copy-ID button. ###2026.06.29.13 - UX: Rebuilt the Settings row overflow action modal with grouped actions, a clearer folder header, quieter button styling, disabled-action reasons, and a shared action dispatcher with inline status feedback. ###2026.06.29.12 - UX: Continued the Recovery workspace overhaul with a neutral Docker/VM switch, separated compare snapshots into its own card, added a recent snapshot picker, and added a double-confirmed delete-all-backups action for the active source. ###2026.06.29.11 - UX: Made the Recovery workspace redesign more visible with a clearer intro, stronger status banner, segmented source switch, and more distinct restore, policy, history, and environment cards. ###2026.06.29.10 - UX: Rebuilt the Recovery workspace overview and backup history with clearer restore guidance, protection status, empty-snapshot labeling, and beginner-friendly explanations. ###2026.06.29.09 - Fix: Skip normal backup snapshots when there are no folders to protect and make Restore Latest choose the newest non-empty backup. ###2026.06.29.08 - UX: Automatically clears the Recent Activity panel 10 seconds after the latest activity update. ###2026.06.29.07 - UX: Removed bottom-right action toast notifications so completed actions rely on Recent Activity instead of redundant popups. ###2026.06.29.06 - UX: Rebuilt the folder clear/delete progress window as a centered operation modal with a larger progress bar, live current-action detail, completed/remaining counters, and success/error states. ###2026.06.29.05 - UX: Open the built-in icon picker by default in the folder editor General tab so the icon module no longer starts with empty space. - Docs: Updated the GitHub banner image. ###2026.06.29.04 - UX: Rebuilt the Setup Assistant Behavior step with clearer Docker/VM behavior cards, explained setting rows, advanced status guidance, and a selected behavior summary. ###2026.06.29.03 - UX: Rebuilt the Setup Assistant Rules step with a beginner-friendly automation intro, clearer Docker/VM rule cards, plain-language match descriptions, bulk select controls, and rules guidance. ###2026.06.29.02 - UX: Rebuilt the Setup Assistant Import step with an optional-import intro, clearer Docker/VM import cards, file status previews, and beginner-friendly import guidance. ###2026.06.29.01 - UX: Rebuilt the Setup Assistant Profile step with clearer usage and environment cards, friendlier defaults toggles, and a selected defaults preview. ###2026.06.28.11 - UX: Expanded the Setup Assistant Welcome step with beginner-friendly orientation panels and a simple setup path preview while keeping the screen informational. ###2026.06.28.10 - UX: Rebuilt the Setup Assistant Review step as a final confirmation screen with status banner, summary cards, apply mode choices, safety cards, and collapsible details. ###2026.06.28.09 - UX: Stretched the Setup Assistant "What will change" panel to fill the sidebar and rebuilt it into grouped setup path, safety, detected, planned changes, and current-step summaries. ###2026.06.28.08 - Fix: Adjusted Setup Assistant sidebar step content upward further to better center the step number, label, and badge. ###2026.06.28.07 - Fix: Moved Setup Assistant sidebar step contents upward so the number, label, and badge sit visually centered in the step tile. ###2026.06.28.06 - Fix: Nudged Setup Assistant sidebar step contents down slightly so the number, label, and badge sit visually centered in the step tile. ###2026.06.28.05 - Fix: Switched Setup Assistant sidebar step rows from grid to flexbox so the number, label, and badge center vertically without changing step height. ###2026.06.28.04 - Revert: Removed the oversized Setup Assistant sidebar step override from the previous dev build. ###2026.06.28.03 - Fix: Added a final Setup Assistant sidebar step override so the clickable step row fills the visible tile and centers inactive step content. ###2026.06.28.02 - Fix: Moved Setup Assistant step centering to the clickable step row itself so inactive steps align the number, label, and badge like the active step. ###2026.06.28.01 - Fix: Centered the Setup Assistant step number, label, and status badge consistently across every sidebar step. ###2026.06.27.01 - Fix: Removed the Setup Assistant step sidebar accent bar and expanded the active step surface so the selected tile fills the highlighted outline. ###2026.06.26.16 - Fix: Kept the active Setup Assistant step accent inside the rounded sidebar step tile so the selected backdrop fully contains the highlight. ###2026.06.26.15 - Fix: Restored the Setup Assistant theme binding helpers removed during the Focus/Contrast cleanup so the wizard renders again. ###2026.06.26.14 - UX: Removed Setup Assistant Focus and Contrast controls from the header, kept the wizard in focus mode by default, and removed non-blocking Suggested improvements guidance from Welcome. ###2026.06.26.13 - UX: Simplified the Setup Assistant welcome screen with a plain-language introduction, Begin Setup action, draft choice, benefits, and safety note before showing configuration steps. ###2026.06.26.12 - UX: Repositioned the Advanced tab Dashboard and Docker modules side by side to remove the long full-width Dashboard row and blank space. ###2026.06.26.11 - UX: Matched the Status tab Accent Bar panel height to Status Colors so the top row no longer leaves an uneven gap. ###2026.06.26.10 - UX: Rebuilt the Status tab Accent Bar source markup so the enable switch and Bar color picker render as a fixed two-column row. ###2026.06.26.09 - UX: Re-applied the Status tab Accent Bar alignment after Unraid generates the visible switch control so the Bar color picker stays beside the toggle. ###2026.06.26.08 - UX: Fixed the Status tab Accent Bar layout by grouping the generated toggle controls and Bar color picker into one horizontal row. ###2026.06.26.07 - UX: Aligned the Status tab Accent Bar enable toggle and bar color controls on one row. ###2026.06.26.06 - UX: Tightened the Status tab spacing and made Docker Health options flow horizontally instead of wasting full-width rows. ###2026.06.26.05 - UX: Redesigned the General tab Parent Folder module with a clearer current location summary, pinned top-level option, integrated search, and improved folder rows. ###2026.06.26.04 - UX: Changed Preview tab modules to full-width rows with controls flowing left-to-right inside each module. ###2026.06.26.03 - UX: Made Preview Context a full-width Preview tab row with compact responsive controls beneath the four main preview modules. ###2026.06.26.02 - UX: Reworked the Preview tab modules into an even four-column layout on wide screens. ###2026.06.26.01 - UX: Doubled the General tab Icon preview size so the selected folder icon is easier to see. ###2026.06.25.28 - UX: Anchored the General tab Icon preview inside the actual icon control module with the rest of the icon content. ###2026.06.25.27 - UX: Moved the General tab Icon live preview into the upper-right of the Icon module content. ###2026.06.25.26 - UX: Added a live selected-icon preview to the top-right of the General tab Icon module. ###2026.06.25.25 - UX: Compacted the folder editor header, tightened the right-side action buttons, and enlarged the folder title. ###2026.06.25.24 - UX: Removed the Basic / Advanced editor switch and now shows all folder editor tabs by default. - UX: Kept advanced sections available at all times to reduce mode confusion while editing folders. ###2026.06.25.23 - UX: Reworked the Status tab accent bar controls so the bar color picker sits beside the enable toggle. - UX: Hid advanced-only Status Thresholds and Docker Health panels while the folder editor is in Basic mode. - Quality: Added editor layout guards for Basic/Advanced status panel filtering and accent control alignment. ###2026.06.25.22 - UX: Expanded the General tab parent picker and icon picker content so each fills its editor module without awkward unused space. - UX: Removed the heavy boxed styling from built-in icon choices while preserving hover and selected states. - Quality: Added layout guards for the full-width General tab parent and icon picker sections. ###2026.06.25.21 - UX: Moved the folder editor tab navigation and Basic / Advanced switch below the live preview so section switching stays closer to the editable content. - UX: Added a dedicated editor navigation dock with responsive wrapping for core and advanced tabs. - Quality: Updated editor layout guards for the new navigation dock placement and theme-aware surface binding. ###2026.06.25.20 - UX: Extended the folder editor panel layout to the advanced Rules, Actions, and Advanced tabs so advanced-only controls are grouped into clearer sections. - UX: Moved folder auto-rules into a dedicated Advanced Auto-Rules panel while preserving the legacy regex and custom action behavior. - Quality: Updated editor layout guards for the advanced panel groups and stable auto-rules panel target. ###2026.06.25.19 - UX: Extended the folder editor panel layout to Members, Preview, Chevron, and Status tabs so related controls are grouped into clearer professional sections. - Quality: Updated editor layout guards for the shared panel wrapper used across core tabs. ###2026.06.25.18 - Quality: Removed CSS-only General tab panel modifier classes so the strict dead-code guard accepts the redesigned editor layout. ###2026.06.25.17 - UX: Reworked the folder editor General tab into clearer Identity, Parent Folder, and Icon panels so simple fields no longer leave large empty card gaps. - UX: Made the General tab responsive with compact identity rows on desktop and stacked panels on narrower screens. - Quality: Updated the folder editor layout regression guard to cover the new General tab panel structure. ###2026.06.25.15 - Feature: Roll up the dev changes since `v2026.05.27.01`, including child-folder collapsed previews, nested descendant chips, depth limits, breadcrumb tooltips, and nested folder preview actions. - UX: Updated the folder editor live preview to mirror Docker collapsed child-folder previews using actual child folder names, icons, counts, and saved-folder lookup. - Fix: Added Settings blank-page recovery diagnostics and fixed nested folder preview expansion, action-menu positioning, modern editor visibility, and compact context-menu spacing. - Quality: Added the shared folder preview model plus regression coverage for Settings recovery, nested preview wiring, live preview data, descendant expansion, right-click actions, and release helper timeout/prune controls. - Docs: Decluttered the README and moved troubleshooting/path details into docs while removing development-only content from the user-facing README. ###2026.06.25.14 - UX: Added a shared folder preview model so Docker collapsed previews and the folder editor live preview resolve child-folder names, icons, counts, and breadcrumbs through the same path. - Quality: Added regression coverage for the shared preview-model contract across Docker runtime previews and editor live previews. ###2026.06.25.13 - Quality: Refreshed the performance baseline so the dev guard suite accepts the recent dashboard and nested-preview growth. ###2026.06.25.12 - Fix: Restored dev CI by updating documentation contract tests for moved troubleshooting content and removing stale dashboard preview CSS selectors. ###2026.06.25.11 - Docs: Decluttered the root README by merging quick guides, moving troubleshooting and path details into docs, and removing browser/development sections. ###2026.06.25.10 - Docs: Removed the root README Dev Workflow section to keep user-facing documentation focused. ###2026.06.25.09 - Fix: Nested folder preview "Open folder actions" now opens the normal folder menu at the expanded child folder icon instead of the page corner. ###2026.06.25.08 - Fix: Nested folder preview "Open folder actions" now expands to the child folder and opens its normal folder action menu. ###2026.06.25.07 - UX: Removed inherited spacing from nested folder preview right-click menu items. ###2026.06.25.06 - UX: Made the nested folder preview right-click menu more compact with smaller text and no gaps between actions. ###2026.06.25.05 - Docs: Removed the folder.view3 foundation credit from the README Credits section. ###2026.06.25.04 - UX: Added child-folder preview depth limits for collapsed Docker folder previews. - UX: Nested folder preview chips now show breadcrumb tooltips, an Empty state, and a right-click menu for expand, edit, and folder actions. ###2026.06.25.03 - UX: Collapsed Docker folders with child-folder previews enabled now show all nested descendant folders and expand the correct branch path when a nested chip is clicked. ###2026.06.25.02 - UX: Renamed the nested preview toggle to "Show child folders in collapsed preview" and clarified its help text. ###2026.06.25.01 - Fix: Live folder preview now passes the nested-folder sample resolver through the preview runtime, so "Hide nested preview items" shows the actual child folder icon, name, and item count. ###2026.06.24.10 - UX: Live folder preview now prefers the saved resolved folder id when finding nested child folder chips and exposes source/child ids for troubleshooting. - Quality: Package builds now time out the CHANGES helper instead of waiting indefinitely and make stale changelog pruning opt-in. - Regression guard: Cover resolved-id nested preview lookup, child chip debug attributes, and release helper timeout/prune controls. ###2026.06.24.09 - UX: Live folder preview refreshes after the full folder map loads and resolves nested child folder chips from the saved folder record. - Regression guard: Cover fallback child-folder lookup and the post-hydration live preview refresh. ###2026.06.24.08 - UX: Live folder preview now uses the actual first child folder name, icon, and member count when `Hide nested preview items` is enabled. - Regression guard: Cover child-folder live preview data wiring from the editor folder map into the preview renderer. ###2026.06.24.07 - UX: Live folder preview now shows a child-folder sample when `Hide nested preview items` is enabled. - Regression guard: Cover the live preview renderer and styles for the nested-folder sample chip. ###2026.06.24.06 - UX: Make child-folder preview chips use full single-row Docker preview scale with larger icons and normal-sized counts. - Regression guard: Keep child-folder preview chips large in single-row mode while preserving compact sizing for multi-row previews. ###2026.06.24.05 - Fix: Docker runtime rows, folder state, and container interactions. ###2026.06.24.04 - Fix: Show the new `Hide nested preview items` toggle in the modern Docker folder editor Preview tab. - Regression guard: Cover the modern editor schema, row collection, and Docker section tagging for the nested-preview toggle. ###2026.06.24.03 - Fix: Docker runtime rows, folder state, and container interactions. - UX: Folder editor flows, previews, and bootstrap behavior. - Fix: Server endpoints, runtime payloads, and persistence or validation paths. ###2026.06.24.02 - UX: Settings workspace layout, section flows, and table behavior. ###2026.06.24.01 - Quality: Release-note generation, retry cleanup, and packaging guards. - Docs: Project documentation and support guidance. ###2026.05.26.01 - Fix: Clear stale Docker folder update indicators after bulk updates by ignoring saved folder update metadata when live dockerman runtime state is unknown during post-update reconciliation. - Fix: Keep polling live Docker update status during the post-update reconcile window so folders refresh again once Unraid reports the final up-to-date state. - Regression guard: Add Docker runtime tests for stale update clearing, host update-cell recovery, and post-update live polling. ###2026.05.22.05 - Fix: Add a Settings blank-page watchdog that reports `FVPLUS-SET-BLANK-001` with visible-section, root, topbar, and setup-assistant diagnostics instead of leaving a silent blank page. - Fix: Keep Settings visible when the first-run setup assistant fails to render, reporting `FVPLUS-SET-WIZARD-001` as a degraded state so users can still access configuration. - Regression guard: Cover Settings blank-watchdog state tracking and setup-assistant degraded fallback behavior. ###2026.05.22.04 - Fix: Restore full-width Docker folder preview borders so bordered preview rows extend across the folder field as before. - Regression guard: Ensure Docker CSS does not shrink single-row folder preview borders to content width. ###2026.05.22.03 - Fix: Pass the shared utility helpers into Docker preview actions so folder preview rendering can resolve action preferences during bootstrap. - Regression guard: Cover the Docker preview action utility dependency so `utils` cannot be referenced before it is provided. ###2026.05.22.02 - Fix: Scope the extracted Settings section registry so it cannot collide with `folderviewplus.js` top-level identifiers during browser bootstrap. - Fix: Normalize legacy Docker preview status values like `hide`, `off`, `false`, and `0` to the same hidden state as `Hide status`. - Regression guard: Add coverage for the scoped Settings registry and Docker preview status alias handling. ###2026.05.22.01 - Fix: Prevent Settings bootstrap failure when diagnostics loads before the main Settings runtime defines HTML, timestamp, JSON, or download helpers. - Fix: Make Docker preview `Hide status` apply across all preview modes, including compact cards and live refresh updates. - UX: Keep single-row Docker preview borders wrapped to preview content instead of stretching across empty table columns. - Regression guard: Cover early diagnostics helper fallbacks and Docker preview status visibility behavior. ###2026.05.21.06 - Fix: Prevent Settings bootstrap failure when diagnostics loads before the main Settings runtime defines `showError`. - Regression guard: Ensure the diagnostics module uses local safe error fallbacks during early bootstrap. ###2026.05.21.05 - UX: Add Settings search aliases for recent support terms like hide status, WebUI/console/logs, native organizer, dashboard overlap, and bulk apply update. - UX: Add native Docker Organizer status and manual sync controls to the Operations workspace. - Fix: Replace Docker advanced popup inline action handlers with delegated runtime actions. - Fix: Require import review acknowledgement for destructive deletes and untrusted exports even when preview-first is disabled. - Quality: Add native organizer diagnostics, performance budget cards, expanded browser smoke coverage, and shared preview action preference handling. ###2026.05.21.03 - Fix: Make Docker only-icon preview `Hide status` actively remove existing status badges during live refreshes. - Regression guard: Cover the hidden-status refresh path so saved folders do not keep stale status symbols. ###2026.05.21.02 - Feature: Add opt-in advanced Dashboard member previews with WebUI, console, logs, update, ports, volumes, and CPU/MEM graph details. - Feature: Add a per-folder only-icon status setting so icon-only previews can show symbols, grayscale stopped containers, or no status marker. - Compatibility: Sync FolderView Plus Docker folders to Unraid's native Docker Organizer on a best-effort basis and include native organizer status in diagnostics. - Quality: Harden Docker graph/stat listeners so popup and Dashboard previews clean up stale chart updates and use a CPU core fallback. - Compatibility: Preserve Unraid as the owner of Docker `userprefs.cfg` while still reading current order and maintaining autostart state. - Security: Sanitize Docker advanced popup runtime metadata, links, icons, and bind mount mappings before rendering. ###2026.05.20.04 - Fix: Format localized Docker folder update dialog titles so folder names replace `$1` instead of showing the raw placeholder. - Quality: Add regression coverage for folder batch update dialog title formatting. ###2026.05.20.03 - Fix: Honor per-folder Dashboard WebUI, Console, and Logs action toggles for Docker members. - Fix: Keep Dashboard folder and member names inside their allocated card width while reserving space for the quick settings rail. - Fix: Restore compact-matrix folder icons and fall back to the FolderView default icon when a Dashboard folder icon is missing. ###2026.05.20.01 - UX: Folder editor flows, previews, and bootstrap behavior. - Quality: Release automation, CI smoke coverage, and packaging guards. ###2026.04.26.01 - Fix: Privacy mode defaults off again while the Docker and VM mask options stay enabled by default for the runtime toggle. - UX: Move Dashboard privacy mask settings below the layout description and render Privacy mode as a section header. - Quality: Add regression coverage for privacy mask defaults, legacy privacy-mode migration, and settings mask layout wiring. ###2026.04.24.05 - Fix: Docker support-bundle snapshots, trace storage caps, and rendered-state diagnostics. - Fix: VM runtime rows, folder state, and VM actions. - UX: Dashboard layouts, quick rails, and folder card interactions. - Feature: Setup Assistant, rules, smart-detect, and starter-template workflows. - Refactor: Shared runtime contracts, request plumbing, and cross-page foundations. - Fix: Server endpoints, runtime payloads, and persistence or validation paths. ###2026.04.24.04 - Quality: Release-note generation, retry cleanup, and packaging guards. - Docs: Project documentation and support guidance. ###2026.04.24.03 - UX: Settings workspace layout, section flows, and table behavior. - Quality: Release automation, CI smoke coverage, and packaging guards. ###2026.04.24.02 - Fix: Docker support-bundle snapshots, trace storage caps, and rendered-state diagnostics. - Fix: Docker runtime rows, folder state, and container interactions. - Fix: VM runtime rows, folder state, and VM actions. - UX: Dashboard layouts, quick rails, and folder card interactions. - UX: Settings workspace layout, section flows, and table behavior. - Feature: Setup Assistant, rules, smart-detect, and starter-template workflows. ###2026.04.24.01 - Fix: Docker runtime rows, folder state, and container interactions. ###2026.04.17.08 - UX: Docker Orbit view no longer auto-selects a folder into the center; it now starts with a neutral center prompt until you choose a folder orbit. - UX: Orbit inspector summary stays compact at the top instead of stretching down the full column, and Orbit surfaces now use a unified neutral visual treatment without the orange outline-heavy styling. ###2026.04.17.07 - UX: Simplified Docker Orbit view by removing the top stats strip and left-side folder rail, leaving a cleaner centered stage plus inspector layout. - UX: Orbit member tiles now share the same surface treatment as the center folder and sit on a cleaner circular orbit with improved spacing and less aggressive highlight styling. ###2026.04.17.05 - Fix: Docker support-bundle snapshots, trace storage caps, and rendered-state diagnostics. - Fix: Docker runtime rows, folder state, and container interactions. - UX: Settings workspace layout, section flows, and table behavior. - Feature: Setup Assistant, rules, smart-detect, and starter-template workflows. - Refactor: Shared runtime contracts, request plumbing, and cross-page foundations. - Fix: Server endpoints, runtime payloads, and persistence or validation paths. ###2026.04.17.05 - Feature: Added Docker Orbit view as a new isolated page-view mode with a centered folder hub, orbiting direct members, child-folder navigation, and an inspector panel for practical actions. - UX: Orbit view is wired as its own removable runtime module and stylesheet, with settings/runtime normalization and privacy masking support aligned to the other isolated Docker views. ###2026.04.17.04 - Fix: Docker support-bundle snapshots, trace storage caps, and rendered-state diagnostics. ###2026.04.17.03 - Fix: VM detail rows now stay attached to the VM you clicked inside folders instead of appearing under the previously expanded VM. - Fix: Existing expanded VM detail rows move with their VM during folder renders, and later host-inserted detail rows are adopted back under the correct VM owner. ###2026.04.17.02 - Fix: Folder editor Rules tab now opens Settings directly into Advanced > Rules > Auto-assignment instead of restoring the last basic tab. - UX: Settings bootstrap now honors explicit launch overrides for advanced tab, target section, and Docker or VM rules workspace source. ###2026.04.17.01 - UX: Folder editor flows, previews, and bootstrap behavior. - Refactor: Shared runtime contracts, request plumbing, and cross-page foundations. ###2026.04.16.07 - Refactor: Moved Docker-only folder editor row registration into the Docker type module so VM no longer inherits Docker field grouping from the shared editor chrome. - Refactor: Moved Docker preview signal assembly and runtime member normalization into type modules, keeping the shared editor preview/runtime type-agnostic. - Fix: VM editor now hides Docker-only constrained fields through the VM type module instead of shared-runtime Docker checks. ###2026.04.16.06 - UX: Folder editor flows, previews, and bootstrap behavior. - Refactor: Shared runtime contracts, request plumbing, and cross-page foundations. - Quality: Release automation, CI smoke coverage, and packaging guards. ###2026.04.16.04 - Fix: Docker support-bundle snapshots, trace storage caps, and rendered-state diagnostics. - Fix: Docker runtime rows, folder state, and container interactions. - UX: Settings workspace layout, section flows, and table behavior. - Quality: Release automation, CI smoke coverage, and packaging guards. ###2026.04.16.03 - Fix: VM runtime rows, folder state, and VM actions. - UX: Dashboard layouts, quick rails, and folder card interactions. - UX: Settings workspace layout, section flows, and table behavior. - Quality: Release automation, CI smoke coverage, and packaging guards. ###2026.04.16.02 - Fix: Docker support-bundle snapshots, trace storage caps, and rendered-state diagnostics. - Fix: Docker runtime rows, folder state, and container interactions. - Fix: VM runtime rows, folder state, and VM actions. - UX: Settings workspace layout, section flows, and table behavior. - Feature: Setup Assistant, rules, smart-detect, and starter-template workflows. - Refactor: Shared runtime contracts, request plumbing, and cross-page foundations. ###2026.04.15.39 - UX: Remove the Docker Service Map view and tighten Tree Explorer folder rows and child-folder cards. ###2026.04.15.38 - Fix: Preserve Docker update status across post-update runtime refreshes so folder rows clear after Update All. ###2026.04.15.37 - Fix: Docker runtime rows, folder state, and container interactions. - UX: Settings workspace layout, section flows, and table behavior. ###2026.04.15.36 - UX: Settings workspace layout, section flows, and table behavior. - Fix: Server endpoints, runtime payloads, and persistence or validation paths. ###2026.04.15.35 - Fix: Docker support-bundle snapshots, trace storage caps, and rendered-state diagnostics. - Fix: Docker runtime rows, folder state, and container interactions. - UX: Settings workspace layout, section flows, and table behavior. - Feature: Setup Assistant, rules, smart-detect, and starter-template workflows. - Refactor: Shared runtime contracts, request plumbing, and cross-page foundations. ###2026.04.15.34 - UX: Added a small left inset back to the Docker command-view WebUI, console, and logs icon row so the quick-action icons line up cleanly with the left edge of the container icon. ###2026.04.15.33 - UX: Removed the remaining left padding from the Docker command-view WebUI, console, and logs icon row so the quick actions sit directly under the member content with no extra gap. ###2026.04.15.32 - UX: Reduced the left padding on the Docker command-view WebUI, console, and logs icon row so the quick actions sit closer to the member name and status column. ###2026.04.15.31 - UX: Moved the Docker command-view WebUI, console, and logs icons to the left side under the member name and status, with matching left padding so the quick-action row lines up with the content column. ###2026.04.15.30 - UX: Tightened Docker command-view member tiles again so the bottom border sits closer to the member name, status, and quick-action strip instead of leaving extra dead space below the content. ###2026.04.15.29 - UX: Removed the `experimental` label from the Docker command-view selector and the command-view header. - UX: Expanded the command-view overview row with more runtime summary cards, including container totals and state counts. - UX: Tightened member-tile bottom spacing so the quick-action strip sits closer to the content and the cards read more compactly. ###2026.04.15.28 - Fix: Docker command-view now forwards the original pointer coordinates through the native Docker row trigger so the Unraid container menu opens at the click point instead of the screen corner. - UX: Running command-view member tiles now use a forced green border treatment instead of inheriting the light theme border color. - Quality: Expanded the command-view runtime regression test to cover the pointer-aware native-trigger proxy signature. ###2026.04.15.27 - Fix: Docker command-view container tiles now proxy the native Docker row trigger the same way the regular FolderView preview does, instead of mixing inline-handler hydration with the tile surface. - UX: Command-view hover treatment now stays on the container icon instead of drawing a focus outline around the entire tile row. - UX: Command-view folder titles, subtitle metadata, and running/paused/stopped/update badges now render larger for readability. ###2026.04.15.26 - UX: Docker command-view folder cards now use the saved folder icon in the title, scale it to the command surface, and raise the folder title size for clearer scanning. - UX: Running container tiles now use the runtime started-status green outline instead of the faint white border treatment. - Fix: Command-view container tiles now resolve host rows by real Docker row id or visible app name text, then hydrate the visible tile with the native Unraid inline click and context-menu handlers before falling back to proxied host-row events. ###2026.04.15.22 - Fix: Docker support-bundle snapshots, trace storage caps, and rendered-state diagnostics. - Fix: Docker runtime rows, folder state, and container interactions. - UX: Settings workspace layout, section flows, and table behavior. ###2026.04.15.21 - UX: Docker command-view container cards now restore the outlined member-tile treatment, but the outline colors are theme-aware and use the plugin runtime status/border tokens instead of hardcoded orange chrome. - UX: Command-view quick actions now reuse the regular FolderView Docker preview action classes, and the branch action buttons gain a subtle theme-token outline so they sit closer to the rest of the plugin controls. - Fix: Command-view member surfaces now hydrate Unraid's native Docker trigger handlers onto the visible tile itself and hydrate from the staged full runtime payload for WebUI URLs, so clicking a container uses the native Unraid menu path and the WebUI quick action can render when available. ###2026.04.15.20 - UX: Docker command-view member tiles no longer render the boxed orange tile chrome; the member strip now stays visually closer to the normal FolderView preview surface. - UX: Command-view WebUI, console, and log actions now use the regular Docker preview action classes so their icons match the standard FolderView quick actions instead of a custom button style. - Fix: Clicking or right-clicking a command-view container now proxies Unraid's native Docker row trigger, so the tile opens the same native Unraid container menu path the regular FolderView preview uses instead of a custom command-view menu. ###2026.04.15.19 - UX: Docker command-view member tiles now keep a consistent fixed width by default so folders do not stretch or compress container cards differently based on row count. - UX: Command-view container tiles now expose visible WebUI, console, and log quick-action icons, and clicking a tile opens a lightweight per-container action menu for start, stop, pause, resume, and restart. - Fix: The command-view folder-level `Open WebUIs` action now opens directly from the rendered member targets first, which avoids the broken no-op behavior seen in the experimental surface. ###2026.04.15.18 - Fix: Docker runtime rows, folder state, and container interactions. - UX: Settings workspace layout, section flows, and table behavior. - Quality: Release automation, CI smoke coverage, and packaging guards. - Docs: Project documentation and support guidance. ###2026.04.15.16 - Feature: Added an isolated Docker `Command view (experimental)` mode that loads from its own runtime module and stylesheet, reuses the existing folder/runtime data model, and keeps FolderView and host-list modes on separate paths. - UX: Docker command view renders a dedicated folder command surface with branch status summaries, member chips, and quick actions for start, stop, update, WebUI, edit, pin, and lock. - Quality: The Docker page-view dispatcher now mounts or unmounts the isolated command module cleanly, and regression coverage pins the optional loader, persisted page-view value, and command-mode runtime branch. ###2026.04.15.15 - UX: Settings workspace layout, section flows, and table behavior. - Docs: Project documentation and support guidance. ###2026.04.15.12 - Fix: Docker support-bundle snapshots, trace storage caps, and rendered-state diagnostics. - Fix: Docker runtime rows, folder state, and container interactions. - UX: Settings workspace layout, section flows, and table behavior. - Feature: Setup Assistant, rules, smart-detect, and starter-template workflows. - Refactor: Shared runtime contracts, request plumbing, and cross-page foundations. - Fix: Server endpoints, runtime payloads, and persistence or validation paths. ###2026.04.15.11 - Perf: Debounce legacy folder-regex matching while typing and stop running the duplicate editor recalculation path on every regex keystroke. - Perf: Avoid the extra pre-worker member-table redraw so large regex edits render once per settled pattern instead of twice. ###2026.04.15.10 - Fix: Settings privacy mode no longer blurs the Folder Defaults source picker or saved-default summary. - UX: Folder Defaults action buttons now use the same FolderView Plus settings button styling as the rest of the plugin. ###2026.04.15.09 - Fix: Mount the Docker runtime privacy toggle inside the Basic view control cluster so it stays right-aligned and vertically aligned with the host toggle. - Privacy: Expand Docker runtime toggle anchor detection to reuse the host toolbar cluster before falling back to a standalone row. ###2026.04.15.07 - Feature: Add a Docker runtime privacy toggle beside the Basic view switch. - Privacy: Persist Docker blur mode directly from the Docker tab and keep the runtime toggle in sync after host re-renders. ###2026.04.15.06 - Fix: Docker support-bundle snapshots, trace storage caps, and rendered-state diagnostics. - Fix: Docker runtime rows, folder state, and container interactions. - Fix: VM runtime rows, folder state, and VM actions. - UX: Dashboard layouts, quick rails, and folder card interactions. - UX: Settings workspace layout, section flows, and table behavior. - Feature: Setup Assistant, rules, smart-detect, and starter-template workflows. ###2026.04.15.05 - UX: Settings workspace layout, section flows, and table behavior. - Fix: Server endpoints, runtime payloads, and persistence or validation paths. - Quality: Release automation, CI smoke coverage, and packaging guards. ###2026.04.15.04 - Fix: Theme workspace action buttons in the Appearance tab now use the shared settings button system, so import, update, save, disable, and theme-entry actions match the rest of the plugin chrome. - Quality: `pkg_build.sh` now tolerates GNU tar warning exits when the produced archive is still readable, which hardens Windows worktree packaging against false-negative tar failures. - Test: Added regression coverage for the theme workspace button selector wiring and the readable-archive tar fallback path. ###2026.04.15.03 - UX: Settings workspace layout, section flows, and table behavior. ###2026.04.15.02 - Fix: Fixed concurrent JSON writes during first-load settings normalization so VM and Docker prefs no longer race on the same temporary file. - Fix: Updated atomic JSON writes to use a unique temp file per request before rename, which prevents intermittent `Failed to replace JSON payload` errors during settings bootstrap and diagnostics reads. - Quality: Fixed dev release-note insertion so missing git metadata in Windows worktrees no longer aborts packaging under `set -e`. - Quality: Hardened shell release tooling to resolve `php.exe` and `node.exe` when bare `php` or `node` are not present in the bash environment. - Test: Verified the patched writer with a local concurrent-write repro: the old fixed-temp-path flow produced a rename failure, while the unique-temp-path flow completed successfully in both parallel processes. - Test: Added release-flow regression coverage for broken git probes and manifest-based dev branch resolution during dry-run packaging. ###2026.04.15.01 - Feature: Added a managed Theme Workspace in Settings with GitHub theme import, activate/deactivate, delete, variable overrides, custom CSS, and update checks. - Fix: Added a dedicated `theme_workspace.php` endpoint plus managed CSS generation so imported themes flow through the existing custom asset pipeline safely. - Security: Added GitHub CSS safety scanning and persisted managed-theme metadata and warnings for imported theme sources. - Feature: Added saved Docker and VM folder-default profiles so a source folder's icon, folder settings, and script actions can be reused. - Feature: Added `Apply to all` for saved defaults using the existing guarded folder-settings batch-apply path. - Fix: Added new-folder inheritance in the modern folder editor so create mode hydrates from the saved default profile before the user edits anything. - Quality: Added prefs/runtime contract coverage for saved folder defaults, theme workspace settings wiring, and editor create-mode inheritance. - Maintenance: Updated the settings include-order guard to allow the new Theme Workspace runtime module. ###2026.04.14.15 - UX: Icon picker, bundled icon packs, and custom icon management. - Docs: Project documentation and support guidance. ###2026.04.14.13 - UX: Folder editor flows, previews, and bootstrap behavior. - UX: Icon picker, bundled icon packs, and custom icon management. - Fix: Server endpoints, runtime payloads, and persistence or validation paths. ###2026.04.14.12 - Fix: Docker support-bundle snapshots, trace storage caps, and rendered-state diagnostics. - Fix: Docker runtime rows, folder state, and container interactions. - Refactor: Shared runtime contracts, request plumbing, and cross-page foundations. - Quality: Release automation, CI smoke coverage, and packaging guards. ###2026.04.14.11 - Fix: Docker support-bundle snapshots, trace storage caps, and rendered-state diagnostics. - Fix: Docker runtime rows, folder state, and container interactions. - Fix: Diagnostics surfaces, issue reports, and support bundle coverage. - Refactor: Shared runtime contracts, request plumbing, and cross-page foundations. ###2026.04.14.10 - Fix: Docker support-bundle snapshots, trace storage caps, and rendered-state diagnostics. - Quality: Release-note generation, retry cleanup, and packaging guards. ###2026.04.14.09 - Fix: Docker runtime rows, folder state, and container interactions. - Quality: Release automation, CI smoke coverage, and packaging guards. - Docs: Project documentation and support guidance. ###2026.04.14.08 - Fix: Docker folder rows, member rows, tooltips, and support-bundle expected-action checks now resolve update-state through shared helper logic instead of separate inline rules, which reduces stale or divergent Docker update rendering paths. - Fix: Docker basic and advanced mode syncing now reacts to `docker_listview_mode` cookie writes and passive page lifecycle events instead of a 500ms polling loop, which hardens live row refreshes while removing continuous observer churn. - Quality: Browser smoke now exercises the Docker `loadlist()` rebuild path and persisted diagnostics records, including request-bundle traces, page snapshots, and live list-view toggles. ###2026.04.14.07 - Fix: Docker runtime rows, folder state, and container interactions. - Quality: Release automation, CI smoke coverage, and packaging guards. - Docs: Project documentation and support guidance. ###2026.04.14.06 - Fix: Docker now arms the post-update reconcile window from the host `openDocker('update_container ...')` path, so native Unraid update flows stop rebuilding folder rows with stale non-live update status. - Fix: The Docker runtime actions API now delegates update dialogs through the patched host `window.openDocker`, which keeps FolderView Plus and host-triggered update flows on the same reconcile path. - Quality: Added regression coverage for the host `openDocker` update-command hook, the live-status `loadlist()` rebuild path, and the revised Docker runtime bootstrap order. ###2026.04.14.05 - Fix: Docker runtime rows, folder state, and container interactions. - Quality: Release automation, CI smoke coverage, and packaging guards. ###2026.04.14.04 - Fix: Docker support-bundle page snapshots now read only the visible update-column text, so basic-mode exports stop treating hidden advanced-only `force update` actions as rendered mismatches. - Fix: Docker mismatch summaries now compare runtime expectations against the same visible action token the user actually sees on the page, which removes false-positive folder mismatches in basic view. - Quality: Added regression coverage for visible Docker update-cell parsing in the support-bundle snapshot collector. ###2026.04.14.03 - Fix: Docker runtime rows, folder state, and container interactions. - UX: Settings workspace layout, section flows, and table behavior. - Fix: Diagnostics surfaces, issue reports, and support bundle coverage. - Quality: Release automation, CI smoke coverage, and packaging guards. ###2026.04.14.02 - Fix: Docker `loadlist()` rebuilds now request live update status while the post-update reconcile window is active, so folder rows stop repainting stale `apply update` badges after `update all` finishes. - Fix: Docker live-refresh signature checks now follow the same live-status path during the reconcile window, keeping the full FolderView3-style redraw flow aligned with the cleared server state. ###2026.04.14.01 - Fix: Docker runtime rows, folder state, and container interactions. - Fix: Server endpoints, runtime payloads, and persistence or validation paths. - Quality: Release automation, CI smoke coverage, and packaging guards. ###2026.04.13.01 - Fix: Docker folder ``update all`` and ``force update`` now arm the post-update reconcile window from the global UI dispatch path, so collapsed folder rows keep polling fresh runtime state even when the host dialog callback path is delayed or skipped. - Quality: Docker bulk-update trace writers now recover from invalid cached localStorage payloads instead of dropping new trace entries, so support bundles can capture the actual update dispatch path during troubleshooting. ###2026.04.12.06 - Fix: Docker runtime rows, folder state, and container interactions. - Quality: Release automation, CI smoke coverage, and packaging guards. ###2026.04.12.05 - Fix: Docker folder update rows now trust refreshed runtime state during the post-update reconcile window, so `update all` no longer leaves stale `apply update` folder badges behind after the server state has already cleared. ###2026.04.12.04 - Quality: Republished the Docker diagnostics bundle build under a new dev package version so Unraid can pull the rendered-state and bulk-update trace support-bundle changes. ###2026.04.12.03 - Fix: Docker runtime rows, folder state, and container interactions. - UX: Settings workspace layout, section flows, and table behavior. - Fix: Diagnostics surfaces, issue reports, and support bundle coverage. - Quality: Release automation, CI smoke coverage, and packaging guards. - Docs: Project documentation and support guidance. ###2026.04.12.02 - Diagnostics: Support bundles now include the last persisted Docker-page rendered-state snapshot and a recent Docker bulk-update trace, so Settings-page exports can still show what the Docker UI actually rendered after an update flow. - Diagnostics: The Docker page now records visible folder/member row action text, expanded state, and missing folder-class counts into a support-bundle snapshot to help isolate stale row repaint issues from correct runtime state. - Quality: Added regression coverage for the new Docker support-bundle telemetry collectors and their wiring into the Settings diagnostics export path. ###2026.04.12.01 - Fix: Docker member-row runtime sync now recovers direct folder rows through the canonical direct-member resolver when host DOM updates strip folder-specific row classes, so bulk-update repaints still clear stale `apply update` badges without a full page refresh. - Quality: The Docker preview action runtime now falls back from folder-class selectors to direct member recovery before giving up on a row repaint, which hardens update-state sync against host row mutations after bulk updates. - Regression guard: Added coverage for the direct-member-row fallback path in the Docker update-status regression suite. ###2026.04.11.05 - Fix: Docker folder bulk-update reconciliation now survives the host Docker page redraw that lands after the update dialog completes, so stale `apply update` badges clear without a full page refresh. - Quality: FolderView Plus now replays the post-update runtime sync from the Docker folder-render event during a short reconcile window instead of relying only on early timer backstops. - Maintenance: Refreshed the tracked JavaScript performance baseline after accepting the additional Docker bulk-update reconciliation logic. ###2026.04.11.04 - Fix: Docker runtime rows, folder state, and container interactions. - Quality: Release automation, CI smoke coverage, and packaging guards. - Docs: Project documentation and support guidance. ###2026.04.11.03 - Fix: Docker folder bulk-update backstop refreshes now pull fresh runtime state directly from FolderView Plus after the host update dialog completes, so stale `apply update` badges clear even when the host list itself lags behind. - Quality: The Docker bulk-update recovery path now falls back to the debounced host list refresh only if the direct runtime-state sync fails. - Regression guard: Updated the Docker bulk-update dialog tests to cover direct runtime-state backstop refreshes as well as the legacy host callback path. ###2026.04.11.02 - Fix: Docker folder `update all` and `force update` actions now arm delayed refresh backstops after the host update dialog opens, so stale `apply update` badges clear even when the host modal does not fully reconcile the list immediately. - Quality: FolderView Plus now wires the Docker action runtime to the debounced list refresh queue for this bulk-update path instead of relying only on the modal callback. - Regression guard: Added coverage for the Docker bulk-update dialog refresh callback and backstop refresh scheduling. ###2026.04.11.01 - Fix: Docker runtime rows, folder state, and container interactions. - Quality: Release automation, CI smoke coverage, and packaging guards. ###2026.04.08.08 - Fix: Docker folder expand now re-syncs direct member rows from cached runtime state after moving them out of hidden storage, so collapsed folders no longer make every child row show `apply update` after refresh or expand. ###2026.04.08.07 - Fix: Docker runtime rows, folder state, and container interactions. ###2026.04.08.06 - Fix: Docker folder rows now live-refresh their update actions when switching between basic and advanced view, so member rows stop showing stale `apply update` or `force update` states until a manual page reload. ###2026.04.08.05 - Fix: Docker runtime rows, folder state, and container interactions. - UX: Settings workspace layout, section flows, and table behavior. - Fix: Server endpoints, runtime payloads, and persistence or validation paths. - Quality: Release automation, CI smoke coverage, and packaging guards. ###2026.04.08.04 - Fix: Docker runtime rows, folder state, and container interactions. ###2026.04.08.03 - Fix: Docker folder member rows now hide `force update` unless Docker advanced view is enabled, while still preserving `apply update` for containers that actually have an update ready. ###2026.04.08.02 - Fix: Docker runtime rows, folder state, and container interactions. - Fix: Server endpoints, runtime payloads, and persistence or validation paths. - Quality: Release automation, CI smoke coverage, and packaging guards. ###2026.04.08.01 - Fix: Docker advanced view now resyncs both hidden and expanded folder member rows from per-container runtime state, so `force update` stays visible for dockerman-managed containers after expand. - Feature: Support bundle runtime diagnostics now capture per-entity manager, managed/update state, and manager counts to make update-column issues diagnosable from one export. - Quality: Release validation now runs in this workspace with local `php` and `node` runtimes, and the Docker regression coverage was corrected to assert the member-row selector at the implementation point. ###2026.04.06.18 - Fix: Hidden Docker folder member rows now resync their own update column from per-container runtime state before expand, so a folder with one pending update no longer shows `Apply update` on every container row. - Fix: Docker runtime refreshes now keep minimized and expanded folder member update buttons aligned with each container's actual update availability. ###2026.04.06.17 - Fix: Docker runtime rows, folder state, and container interactions. - UX: Folder editor flows, previews, and bootstrap behavior. - UX: Settings workspace layout, section flows, and table behavior. - Feature: Setup Assistant, rules, smart-detect, and starter-template workflows. - Refactor: Shared runtime contracts, request plumbing, and cross-page foundations. - Fix: Server endpoints, runtime payloads, and persistence or validation paths. ###2026.04.06.16 - Fix: Docker runtime rows, folder state, and container interactions. - Fix: Server endpoints, runtime payloads, and persistence or validation paths. ###2026.04.06.15 - Fix: Docker created-order sorting now restores folder creation order after switching back from A-Z or other explicit sort modes. - Fix: Docker host order sync now rebuilds folder placeholders from saved FolderView Plus order instead of preserving stale placeholder positions. ###2026.04.06.14 - Fix: Docker runtime rows, folder state, and container interactions. - UX: Folder editor flows, previews, and bootstrap behavior. - Fix: Server endpoints, runtime payloads, and persistence or validation paths. ###2026.04.06.13 - Fix: Docker runtime rows, folder state, and container interactions. ###2026.04.06.12 - UX: Settings workspace layout, section flows, and table behavior. - Fix: Diagnostics surfaces, issue reports, and support bundle coverage. - Fix: Server endpoints, runtime payloads, and persistence or validation paths. ###2026.04.06.11 - Fix: Docker runtime rows, folder state, and container interactions. - Fix: VM runtime rows, folder state, and VM actions. - UX: Dashboard layouts, quick rails, and folder card interactions. - UX: Settings workspace layout, section flows, and table behavior. - Feature: Setup Assistant, rules, smart-detect, and starter-template workflows. - Refactor: Shared runtime contracts, request plumbing, and cross-page foundations. ###2026.04.06.10 - Fix: Docker and VM Command Center now target the active visible runtime table instead of attaching to hidden legacy table shells. - Fix: Command Center hosts now re-align after runtime redraws so the custom view stays mounted when the native page refreshes. ###2026.04.06.09 - Fix: Docker runtime rows, folder state, and container interactions. - Fix: VM runtime rows, folder state, and VM actions. ###2026.04.06.08 - UX: Settings workspace layout, section flows, and table behavior. - Refactor: Shared runtime contracts, request plumbing, and cross-page foundations. - Quality: Release automation, CI smoke coverage, and packaging guards. ###2026.04.06.07 - Fix: Docker runtime rows, folder state, and container interactions. - Fix: VM runtime rows, folder state, and VM actions. - Quality: Release automation, CI smoke coverage, and packaging guards. ###2026.04.06.06 - Fix: Docker runtime rows, folder state, and container interactions. - Fix: VM runtime rows, folder state, and VM actions. - UX: Dashboard layouts, quick rails, and folder card interactions. - UX: Settings workspace layout, section flows, and table behavior. - Feature: Setup Assistant, rules, smart-detect, and starter-template workflows. - Refactor: Shared runtime contracts, request plumbing, and cross-page foundations. ###2026.04.06.05 - UX: Settings workspace layout, section flows, and table behavior. - Fix: Diagnostics surfaces, issue reports, and support bundle coverage. - Fix: Server endpoints, runtime payloads, and persistence or validation paths. - Quality: Release automation, CI smoke coverage, and packaging guards. ###2026.04.06.04 - Fix: Diagnostics health cards now name the real Docker or VM integrity finding instead of falling back to generic folder, rule, and backup counts. - Quality: Add contract coverage for orphaned-member and path-issue diagnostics summary rendering. ###2026.04.06.03 - Fix: Docker folder preview click menus now follow live container started, paused, and stopped state after folder actions. - Fix: Default-context preview cards and stored member rows now resync runtime state classes before native container menus are opened. - Quality: Added regression coverage for Docker preview state-surface synchronization. ###2026.04.06.02 - Fix: Docker folder preview rows now live-refresh container started, paused, and stopped state after in-place folder actions. - Fix: Docker preview runtime sync now updates per-container status icons and labels alongside preview action buttons. - Quality: Added regression coverage for in-place Docker preview status refresh. ###2026.04.05.14 - Fix: Docker runtime rows, folder state, and container interactions. - Fix: VM runtime rows, folder state, and VM actions. - Quality: Release automation, CI smoke coverage, and packaging guards. ###2026.04.05.13 - UX: Settings workspace layout, section flows, and table behavior. - Quality: Release automation, CI smoke coverage, and packaging guards. ###2026.04.05.12 - UX: Folder editor flows, previews, and bootstrap behavior. ###2026.04.05.11 - Fix: Folder editor Members-tab bulk move now removes reassigned Docker containers and VMs from the live member list immediately instead of keeping them visible until the editor is submitted or reloaded. ###2026.04.05.10 - UX: Folder editor flows, previews, and bootstrap behavior. ###2026.04.05.09 - Quality: Release automation, CI smoke coverage, and packaging guards. - Docs: Project documentation and support guidance. ###2026.04.05.08 - UX: Folder editor flows, previews, and bootstrap behavior. ###2026.04.05.07 - Fix: Folder editor startup no longer crashes on bulk-move-enabled builds when hydration reaches the current scope and target helpers before those Members-tab bulk move utilities finish initializing. ###2026.04.05.06 - UX: Folder editor flows, previews, and bootstrap behavior. ###2026.04.05.05 - Fix: Folder editor startup no longer crashes on bulk-move-enabled builds when hydration updates Members-tab bulk move UI before the scope collector finishes initializing. ###2026.04.05.04 - UX: Folder editor flows, previews, and bootstrap behavior. - UX: Settings workspace layout, section flows, and table behavior. - Refactor: Shared runtime contracts, request plumbing, and cross-page foundations. - Quality: Release automation, CI smoke coverage, and packaging guards. ###2026.04.05.03 - Fix: Multi-row Docker preview Console and Logs buttons now keep their action wiring after compact preview rendering, so they open the terminal and logs instead of falling back to a top-of-page anchor jump. ###2026.04.05.02 - Fix: Docker runtime rows, folder state, and container interactions. - Fix: VM runtime rows, folder state, and VM actions. - UX: Dashboard layouts, quick rails, and folder card interactions. - UX: Folder editor flows, previews, and bootstrap behavior. - UX: Settings workspace layout, section flows, and table behavior. - Fix: Server endpoints, runtime payloads, and persistence or validation paths. ###2026.04.05.01 - Fix: Docker runtime rows, folder state, and container interactions. - UX: Folder editor flows, previews, and bootstrap behavior. - UX: Settings workspace layout, section flows, and table behavior. - Quality: Release automation, CI smoke coverage, and packaging guards. - Docs: Project documentation and support guidance. ###2026.04.04.29 - UX: Folder editor flows, previews, and bootstrap behavior. - Fix: Server endpoints, runtime payloads, and persistence or validation paths. - Quality: Release automation, CI smoke coverage, and packaging guards. ###2026.04.04.28 - Fix: Docker runtime rows, folder state, and container interactions. - Fix: VM runtime rows, folder state, and VM actions. - UX: Folder editor flows, previews, and bootstrap behavior. - UX: Settings workspace layout, section flows, and table behavior. - Refactor: Shared runtime contracts, request plumbing, and cross-page foundations. - Fix: Server endpoints, runtime payloads, and persistence or validation paths. ###2026.04.04.27 - Fix: Default-context multi-row Docker previews now clone and compact the native container row trigger, so clicking visible preview cards opens the normal Docker menu again when preview rows are set above 1 or Unlimited. ###2026.04.04.26 - Fix: Docker runtime rows, folder state, and container interactions. ###2026.04.04.25 - Fix: Multi-row Docker folder previews now proxy Default context clicks back to the native hidden container trigger, so the Docker menu works again when preview rows are set above 1 or Unlimited. ###2026.04.04.24 - Fix: Docker runtime rows, folder state, and container interactions. ###2026.04.04.23 - Fix: Multi-row Docker folder previews now proxy clicks from the visible compact card content back to the lazy tooltip trigger, so container menus open again when preview rows are set above 1 or Unlimited. ###2026.04.04.22 - Fix: Docker runtime rows, folder state, and container interactions. ###2026.04.04.21 - UX: Diagnostics Suggested fixes and Share with support panels now keep their empty-state copy top-aligned in the workbench layout. ###2026.04.04.20 - UX: Settings workspace layout, section flows, and table behavior. ###2026.04.04.19 - UX: Settings workspace layout, section flows, and table behavior. - Fix: Server endpoints, runtime payloads, and persistence or validation paths. - Quality: Release automation, CI smoke coverage, and packaging guards. ###2026.04.04.18 - Feature: Support bundle v2 now exports exact build identity, packaged manifest checksums, source commit metadata, loaded plugin assets, recent plugin actions, plugin-scoped API error log tails, and browser-side FolderView Plus error snapshots. - Security: Sanitized support bundles redact the new browser and server troubleshooting fields through the shared redaction pipeline while preserving correlation via per-export hashed values. - Quality: Split support-bundle browser collectors into a dedicated settings module and updated include-order, perf-budget, and diagnostics regression guards for the expanded export surface. ###2026.04.04.17 - UX: Settings workspace layout, section flows, and table behavior. - Fix: Diagnostics surfaces, issue reports, and support bundle coverage. - Fix: Server endpoints, runtime payloads, and persistence or validation paths. - Quality: Release automation, CI smoke coverage, and packaging guards. - Docs: Project documentation and support guidance. ###2026.04.04.16 - Fix: Server endpoints, runtime payloads, and persistence or validation paths. - Quality: Release automation, CI smoke coverage, and packaging guards. ###2026.04.04.15 - UX: Settings workspace layout, section flows, and table behavior. - Quality: Release automation, CI smoke coverage, and packaging guards. ###2026.04.04.14 - Fix: Sanitized support bundles now redact folder editor debug URLs, folder names, and folder IDs in uiTelemetry. - Fix: Support bundle uiTelemetry now includes browser capabilities, client storage, and current page context. - Fix: Support bundle plugin prefs now include dashboard, expanded-folder, and pinned-folder state snapshots. - Fix: Support bundle Docker/VM runtime summaries now report entity counts, hierarchy depth, and update-state totals. - Quality: Split support-bundle telemetry helpers into a dedicated settings module and wired archive/perf guards for it. ###2026.04.04.13 - UX: Settings workspace layout, section flows, and table behavior. - Fix: Diagnostics surfaces, issue reports, and support bundle coverage. - Fix: Server endpoints, runtime payloads, and persistence or validation paths. - Quality: Release automation, CI smoke coverage, and packaging guards. ###2026.04.04.12 - Quality: Release automation, CI smoke coverage, and packaging guards. - Docs: Project documentation and support guidance. ###2026.04.04.11 - Fix: Server endpoints, runtime payloads, and persistence or validation paths. - Quality: Release automation, CI smoke coverage, and packaging guards. ###2026.04.04.10 - UX: Settings workspace layout, section flows, and table behavior. - Fix: Diagnostics surfaces, issue reports, and support bundle coverage. - Quality: Release automation, CI smoke coverage, and packaging guards. ###2026.04.04.09 - UX: Settings workspace layout, section flows, and table behavior. - Fix: Diagnostics surfaces, issue reports, and support bundle coverage. ###2026.04.04.08 - UX: Added a support bundle preview panel in Settings / Diagnostics that shows every v2 section included in the export plus the current redaction profile before download. - Privacy: Surfaced hashed/masked/omitted/truncated field counts, bundle salt scope, and per-export salt hash metadata so sanitized exports are easier to inspect before sharing. ###2026.04.04.07 - UX: Settings workspace layout, section flows, and table behavior. - Fix: Diagnostics surfaces, issue reports, and support bundle coverage. ###2026.04.04.06 - Fix: Server endpoints, runtime payloads, and persistence or validation paths. ###2026.04.04.05 - Privacy: Added a support-bundle-only redaction layer with per-export salted hashes, path/IP/user-agent scrubbing, and a generated redaction manifest that records what was hashed, masked, omitted, or truncated. - Quality: Support bundle v2 now builds from a full diagnostics snapshot and applies one centralized sanitizer so sanitized exports avoid raw paths, names, and request metadata while preserving useful in-bundle correlation hashes. ###2026.04.04.04 - Fix: Diagnostics surfaces, issue reports, and support bundle coverage. - Fix: Server endpoints, runtime payloads, and persistence or validation paths. ###2026.04.04.03 - Refactor: Moved support bundle v2 schema assembly into explicit diagnostics-library section builders for `bundleMeta`, `system`, `pluginState`, `runtimeState`, `healthAndHistory`, and `redactionManifest`. - Quality: Kept the `support_bundle` endpoint as a thin wrapper around `getSupportBundleV2Snapshot()`, removed a no-op builder parameter, and updated the server contract test for the new helper layout. ###2026.04.04.02 - Fix: Diagnostics surfaces, issue reports, and support bundle coverage. - Fix: Server endpoints, runtime payloads, and persistence or validation paths. ###2026.04.04.01 - Refactor: Cut the support bundle export endpoint over to the new v2 top-level schema with `bundleMeta`, `system`, `pluginState`, `runtimeState`, `uiTelemetry`, `healthAndHistory`, and `redactionManifest` sections. - Quality: Added a server-side contract guard so `support_bundle` returns the v2 bundle shape only and the old top-level v1 `diagnostics` payload does not come back from the endpoint. ###2026.04.03.02 - Fix: Docker runtime rows, folder state, and container interactions. - UX: Dashboard layouts, quick rails, and folder card interactions. - UX: Folder editor flows, previews, and bootstrap behavior. - UX: Settings workspace layout, section flows, and table behavior. - Fix: Diagnostics surfaces, issue reports, and support bundle coverage. - Fix: Server endpoints, runtime payloads, and persistence or validation paths. ###2026.04.03.01 - UX: Dashboard layouts, quick rails, and folder card interactions. - Quality: Release automation, CI smoke coverage, and packaging guards. ###2026.04.02.13 - UX: Settings workspace layout, section flows, and table behavior. - Fix: Diagnostics surfaces, issue reports, and support bundle coverage. - Refactor: Shared runtime contracts, request plumbing, and cross-page foundations. - Quality: Release automation, CI smoke coverage, and packaging guards. ###2026.04.02.12 - Fix: Server endpoints, runtime payloads, and persistence or validation paths. - Quality: Release automation, CI smoke coverage, and packaging guards. ###2026.04.02.11 - Fix: Docker runtime rows, folder state, and container interactions. - UX: Folder editor flows, previews, and bootstrap behavior. - Refactor: Shared runtime contracts, request plumbing, and cross-page foundations. - Quality: Release automation, CI smoke coverage, and packaging guards. ###2026.04.02.10 - Refactor: Extracted Docker folder action and request helpers into `docker.runtime.actions.js`, including folder edit routes, update actions, WebUI launch fan-out, branch cloning, and branch delete flows. - Fix: Preserved branch clone ordering, clone rollback, branch delete descendant ordering, and scoped folder action counts while moving the Docker action seam out of `docker.js`. - Quality: Docker module load-order, install smoke, release guard, perf guard, and clone or branch-action regression tests now track the extracted runtime-actions module. ###2026.04.02.09 - Fix: Docker runtime rows, folder state, and container interactions. - UX: Folder editor flows, previews, and bootstrap behavior. - Refactor: Shared runtime contracts, request plumbing, and cross-page foundations. - Quality: Release automation, CI smoke coverage, and packaging guards. ###2026.04.02.08 - UX: Folder editor flows, previews, and bootstrap behavior. - Refactor: Shared runtime contracts, request plumbing, and cross-page foundations. - Quality: Release automation, CI smoke coverage, and packaging guards. ###2026.04.02.07 - Refactor: Extracted the folder editor preview runtime glue into `folder.editor.preview-runtime.js`, including preview API wiring, constraint visibility updates, and throttled live-preview rerenders. - UX: Preserved modern editor preview, context, border, vertical-bar, folder WebUI, and accent visibility behavior while moving that runtime seam out of `folder.js`. - Quality: Install smoke, release guard, perf baseline, and architecture tests now track the extracted preview-runtime module as a required editor asset. ###2026.04.02.06 - UX: Folder editor flows, previews, and bootstrap behavior. - UX: Icon picker, bundled icon packs, and custom icon management. - Refactor: Shared runtime contracts, request plumbing, and cross-page foundations. - Quality: Release automation, CI smoke coverage, and packaging guards. ###2026.04.02.05 - Refactor: Extracted settings runtime branch actions, tree-integrity scan and repair, and runtime action preview or apply flows into `folderviewplus.runtime-actions.js`. - Quality: Settings bootstrap, install smoke, release guard, and perf guard now track the extracted runtime-actions module as a required packaged asset. - Quality: Settings architecture and nesting regression tests now verify the extracted runtime-actions module instead of the old in-file implementations. ###2026.04.02.04 - UX: Dashboard layouts, quick rails, and folder card interactions. - UX: Folder editor flows, previews, and bootstrap behavior. - UX: Settings workspace layout, section flows, and table behavior. - Refactor: Shared runtime contracts, request plumbing, and cross-page foundations. - Quality: Release automation, CI smoke coverage, and packaging guards. ###2026.04.02.03 - UX: Dashboard layouts, quick rails, and folder card interactions. - UX: Folder editor flows, previews, and bootstrap behavior. - UX: Settings workspace layout, section flows, and table behavior. - Quality: Release automation, CI smoke coverage, and packaging guards. ###2026.04.02.02 - UX: Dashboard layouts, quick rails, and folder card interactions. - Fix: Diagnostics surfaces, issue reports, and support bundle coverage. - Fix: Runtime actions, templates, import/export, and backup recovery paths. - Fix: Server endpoints, runtime payloads, and persistence or validation paths. - Quality: Release automation, CI smoke coverage, and packaging guards. ###2026.04.02.01 - Fix: Docker runtime rows, folder state, and container interactions. - UX: Folder editor flows, previews, and bootstrap behavior. - Refactor: Shared runtime contracts, request plumbing, and cross-page foundations. ###2026.04.01.18 - UX: Folder editor flows, previews, and bootstrap behavior. - Refactor: Shared runtime contracts, request plumbing, and cross-page foundations. ###2026.04.01.17 - UX: Dashboard layouts, quick rails, and folder card interactions. - UX: Folder editor flows, previews, and bootstrap behavior. - UX: Settings workspace layout, section flows, and table behavior. - Quality: Release automation, CI smoke coverage, and packaging guards. ###2026.04.01.16 - Refactor: Retired the legacy folder editor runtime and modern-only schema path. - UX: Folder editor routes now always launch the modern editor and removed the old compatibility toggle. - Quality: Browser smoke and regression guards now enforce the modern-only editor boot flow. ###2026.04.01.15 - UX: Folder editor flows, previews, and bootstrap behavior. - UX: Settings workspace layout, section flows, and table behavior. - Feature: Setup Assistant, rules, smart-detect, and starter-template workflows. - UX: Icon picker, bundled icon packs, and custom icon management. - Refactor: Shared runtime contracts, request plumbing, and cross-page foundations. - Fix: Server endpoints, runtime payloads, and persistence or validation paths. ###2026.04.01.14 - Quality: Release automation, CI smoke coverage, and packaging guards. ###2026.04.01.13 - Quality: Release workflows now require live browser smoke and theme-matrix targets and fail fast when those release-only smoke URLs are missing. - Quality: Theme-matrix smoke now validates dashboard expand toggles directly, including contrast, hit target, and borderless transparent chevron styling. - Fix: Support bundle exports now include the folder editor bootstrap banner snapshot with the page summary, details, and debug context that appeared during editor startup. ###2026.04.01.11 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.04.01.10 - Fix: Removed host-theme button borders and stretched chrome from dashboard full-width folder expand arrows. - UI/UX: Locked the full-width dashboard chevron toggle to the intended compact icon-only styling. ###2026.04.01.09 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.04.01.08 - Fix: Switched the folder editor parent-folder picker list, separators, and empty state to shared editor surface tokens so the white theme no longer renders the chooser as a flat gray panel. - UI/UX: Updated the parent-picker hover, selected, and scope-chip styling to use the same light/dark theme tokens as the rest of the folder editor. - Quality: Updated the folder editor layout smoke test to lock the parent-picker theme-safe surface contract. ###2026.04.01.07 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.04.01.06 - Fix: Aligned the light-theme folder editor Submit button with the other action-bar buttons instead of rendering it as a separate orange primary action. - Fix: Aligned the light-theme Basic and Advanced mode toggle active state with the neutral editor button style so the toggle no longer switches to a separate orange accent button. - Quality: Added regression coverage for the light-theme action-bar and mode-toggle button contract. ###2026.04.01.05 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.04.01.04 - Fix: Forwarded modern folder editor bootstrap reports back to the page-level diagnostics banner so slow-start editors clear stale runtime warnings once the runtime is ready. - Quality: Added regression coverage to keep the modern editor bootstrap reporter chained to the page bootstrap surface. ###2026.04.01.03 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Fix: Improved backend release-note parsing and category detection for accurate summaries. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.04.01.02 - Maintenance: Refresh perf baseline for docker update fix. ###2026.04.01.01 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Fix: Improved backend release-note parsing and category detection for accurate summaries. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.31.01 - Maintenance: Update docker runtime architecture guard. ###2026.03.30.38 - Fix: Fix docker root folder update status. ###2026.03.30.37 - Feature: Added the new `Folders/Pixel` third-party pack with 32 pixel-style folder icons to the shipped plugin assets. - Feature: Added the new `Icons/Pixel` third-party pack with 167 pixel-style file and app icons to the shipped plugin assets. - UI/UX: These packs are now available through the existing third-party icon picker as `Folders/Pixel` and `Icons/Pixel`. ###2026.03.30.36 - UI/UX: Added a dedicated left rail in the modern folder editor General section so the Name and Folder WebUI cards stack independently of the Parent Folder and Icon card heights. - UI/UX: Prevented the Folder WebUI card from being pushed down when the icon picker expands by decoupling the left column from the shared grid row height. - Regression guard: Added coverage for the General-section left-rail wrapper and wrapped-row layout selector. ###2026.03.30.35 - UI/UX: Moved the Parent Folder and Icon cards to the first General-section row so Folder WebUI sits directly under Name without the previous forced vertical gap. - UI/UX: Expanded the right-side icon column to absorb the remaining section width, removing the trailing blank space while keeping the middle parent picker width stable. - Regression guard: Updated the General section layout coverage for the wider icon column and single-row parent/icon placement. ###2026.03.30.34 - UI/UX: Rebalanced the modern folder editor General section grid so the Name, Parent Folder, and Icon cards sit as a tighter grouped layout instead of stretching apart across wide screens. - UI/UX: Capped the icon card width and replaced the elastic middle column with fixed-range tracks so the parent folder module no longer leaves a large visual void beside it. - Regression guard: Updated the General section layout coverage for the new fixed-range grid and icon card sizing. ###2026.03.30.33 - UI/UX: Reduced the modern folder editor parent folder card width so it no longer stretches across empty space in the General section. - UI/UX: Converted the parent folder options into a tight outlined list with no inter-row gaps and thin dark separators instead of orange boxed cards. - Regression guard: Added layout coverage for the capped parent card width and stacked parent picker list styling. ###2026.03.30.32 - UI/UX: Removed the vertical gaps between parent folder options in the new parent picker scroll list for a tighter stacked layout. - Maintenance: Rebuilt the dev package for the updated parent folder picker presentation. ###2026.03.30.31 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.30.30 - UI/UX: Added a searchable, path-aware parent folder picker to the modern folder editor for large folder trees. - UX: Reworked the General section layout so Name and Folder WebUI stack on the left, the parent folder card fills the center, and the icon picker stays aligned on the right. - Regression guard: Added coverage for the parent picker module, hierarchy path contract, and General section layout wiring. ###2026.03.30.29 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.30.28 - UX: Aligned the modern folder editor Rules cards so the advanced auto-rules card sits beside the Regex card instead of drifting across the section. - UI/UX: Let the advanced auto-rules card expand across the remaining Rules section width on larger layouts while stacking cleanly on narrower screens. - Regression guard: Added smoke coverage for the Rules section two-column layout contract. ###2026.03.30.27 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.30.26 - UI/UX: Added folder-scoped advanced auto-rules directly to the modern folder editor Rules section for saved folders. - UX: Added save-first guidance plus a direct link back to the full Rules workspace for global ordering and label-based rules. - Refactor: Split the new folder editor auto-rules logic into a dedicated `folder.editor.rules.js` module to keep the main editor runtime within perf guard budgets. - Regression guard: Added smoke coverage for the new rules module, boot wiring, and modern editor panel styling. ###2026.03.30.25 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.30.24 - UI/UX: Improved dark-theme visibility for folder editor member reorder arrows by matching the section title accent color. - Regression guard: Added folder editor smoke coverage for the reorder button accent styling. ###2026.03.30.23 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.30.22 - Fix: Improved backend release-note parsing and category detection for accurate summaries. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.30.21 - Quality: Strengthened release automation and regression guards to prevent note drift. - Docs: Updated project documentation to match the latest behavior. ###2026.03.30.20 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Fix: Improved backend release-note parsing and category detection for accurate summaries. ###2026.03.30.19 - Fix: Stop Docker bootstrap from forcing a second host reload when Unraid stages a newer request bundle while FolderView Plus is still rendering folders. - Fix: Drain queued Docker folder renders in place against the latest staged request bundle instead of scheduling another `loadlist()` cycle after the page has already refreshed. - UX: Suppress the extra Docker runtime loading shell when a queued bootstrap render replays in place so the page no longer flashes a second reload. - Regression guard: Cover the primed-request `listview()`/`loadlist()` bootstrap path and the deferred runtime hydration path so Docker refreshes stay in-place. ###2026.03.30.17 - Fix: Stop Docker advanced preview context popups configured for click from eager-opening on the first hover interaction. - Quality: Trim the lazy tooltip trigger-mode fix so the Docker runtime stays inside the repo perf budget while preserving hover-mode eager-open behavior. - Regression guard: Cover lazy tooltip initialization so click-trigger folders only eager-open on click or touch, while hover-trigger folders still open on hover. ###2026.03.30.16 - Fix: Stop Docker advanced preview context popups configured for click from eager-opening on the first hover interaction. - Regression guard: Cover lazy tooltip initialization so click-trigger folders only eager-open on click or touch, while hover-trigger folders still open on hover. ###2026.03.30.15 - Maintenance: Fold docker update state into hydration signature. - Maintenance: Trim docker update signature helper. - Fix: Fix docker update hydration rerender. ###2026.03.30.14 - Fix: Preserve Docker `State.Updated` from the hydrated full runtime payload so folder member rows and folder/root-folder summaries stop getting stuck on `up-to-date` while those containers actually have updates available. - Fix: Keep lightweight `mode=state` refreshes cheap while still carrying forward the most recent known update state instead of dropping it during Docker runtime info merges. - Regression guard: Assert the Docker runtime info merge prefers `source.info.State.Updated` from the full payload and only falls back to the previous cached value when the lightweight state payload omits it. ###2026.03.30.13 - Fix: Preserve Docker `State.Updated` from the hydrated full runtime payload so folder member rows and folder/root-folder summaries stop getting stuck on `up-to-date` when those containers actually have updates available. - Fix: Keep lightweight `mode=state` refreshes cheap while still carrying forward the most recent known update state instead of dropping it back to `null` during runtime merges. - Regression guard: Assert the Docker runtime info merge prefers `source.info.State.Updated` from the full payload and only falls back to the previous cached value when the lightweight state payload omits it. ###2026.03.30.12 - Fix: Restore the Docker page after the collapsed update-summary refactor by resolving advanced-list mode inside the shared folder update-column renderer instead of referencing an out-of-scope runtime variable during bootstrap. - Fix: Prioritize the dedicated Docker runtime banner host so fatal runtime diagnostics render at the top of the page instead of dropping to the bottom canvas area. - Regression guard: Assert the shared folder update-column renderer reads Docker advanced mode locally, and assert fatal-banner host resolution honors selector priority for the dedicated Docker banner host. ###2026.03.30.11 - Fix: Reuse one folder update-column renderer across first paint and runtime hydration so collapsed Docker folders and root folders keep surfacing child container updates without regressing the performance budget. - Fix: Apply the same host-margin row-centering override to VM folder rows so the VM Application column keeps single-row folder content vertically centered like Docker. - Regression guard: Assert the shared folder update-column renderer is used by both folder creation and collapsed runtime refresh, and assert the VM row CSS clears host bottom-margin drift. ###2026.03.30.10 - Fix: Rebuild collapsed Docker folder update columns from hydrated runtime container data so folder and root-folder rows show `Update ready` when child containers have updates available, even while the branch is collapsed. - Fix: Keep the collapsed-folder refresh path aligned with the existing `apply update` and `force update` folder actions instead of leaving the folder row stuck on the lightweight first-paint `up-to-date` state. - Regression guard: Assert the runtime folder-row refresh path owns the update column and refreshes collapsed folder update state from runtime cache without requiring the folder to be expanded. ###2026.03.30.09 - Fix: Restore the modern folder editor bootstrap after the new accent preview swatch change by defining `accentEnabled` and `accentColor` inside `updateLiveSummary()` before that code touches the live preview chips. - Fix: Keep the new accent swatch in the editor live preview insights without crashing hydration when the modern editor loads. - Regression guard: Assert that `folder.editor.preview.js` computes the accent values inside `updateLiveSummary()` before updating `#fvSwatchAccent` and `#fvAccentSwatchItem`. ###2026.03.30.08 - UX: Move the modern folder editor accent color picker into the main `Accent color` card so the toggle and bar color stay together instead of appearing as separate settings blocks. - UX: Add the folder accent color to the editor live preview insights with its own `Accent` swatch, while keeping the live row accent bar preview in sync. - Regression guard: Assert the merged accent editor layout, the live preview accent swatch wiring, and the shared accent color contract across the modern and fallback editor chrome paths. ###2026.03.30.07 - Fix: Override the Docker folder row wrapper bottom margin to `0 !important` so the host `span.outer` / `.folder-outer` `margin-bottom: 20px` no longer pulls folder rows upward in the Application column. - Fix: Revert the recent Docker source-row centering helper experiment and keep the original legacy flex centering path instead of measuring and reapplying source-row heights. - Regression guard: Assert the Docker folder-row margin override is present and that the source-row centering path stays on the stable `applyRowHeight(row, 0)` plus `applyFolderCellCentering(cell, 0)` contract. ###2026.03.30.06 - Fix: Undo the source-row height forcing from the previous build so Docker folder rows no longer balloon vertically or create massive empty spacing in the table. - Fix: Center the Docker folder content block by clearing stale forced row heights, measuring the natural rendered row height, and applying that measurement only to the folder name cell centering helper. - Regression guard: Assert that Docker source rows keep the legacy flex layout, clear forced row height first, and do not reapply `applyRowHeight(row, targetHeight)` in the source-row centering path. ###2026.03.30.05 - Fix: Keep the legacy Docker folder row layout intact and center the folder content block by applying the measured rendered row height to real source rows before the centering helper positions `folder-name-sub`. - Fix: Avoid the previous Application-column layout experiment and correct the original centering helper instead, so the row no longer sits at the top without disturbing column alignment. - Regression guard: Cover the legacy flex-layout plus measured source-row-height contract in `docker.modules.js`. ###2026.03.30.04 - Fix: Revert the Docker and VM Application-column layout experiment and restore the pre-`2026.03.29.26` folder row structure after the centering changes caused row distortion and column misalignment. - Fix: Restore the original Docker folder row centering helper contract in `docker.modules.js`, including the pre-existing CSS gutter pairing for the folder dropdown side. - Regression guard: Remove the Application-column centering regression test that only covered the reverted experiment and keep the shared Docker layout contract aligned with the restored CSS. ###2026.03.30.03 - Fix: Use the measured visible folder-row height when applying the original Docker `folder-name-sub` centering helper instead of resetting source rows to `0`, so the folder icon, name, and started or stopped status center vertically in the row. - UX: Keep the original folder-row centering path and adjust those runtime helper lines directly instead of relying on unrelated host-row-only overrides. - Regression guard: Cover the Docker source-row centering helper contract in `docker.modules.js`. ###2026.03.30.02 - Fix: Vertically center the normal Docker and VM Application-column content blocks so the icon, name, and started or stopped status no longer sit at the top of taller rows. - UX: Keep the Application-column content left-aligned while centering the entire content block within the row height. - Regression guard: Cover the host list-row Application-cell centering contract for both Docker and VM runtimes. ###2026.03.30.01 - UX: Keep the Docker and VM folder row block centered in the Application column while leaving the folder icon, name, and started or stopped text left-aligned inside that block. - Fix: Correct the previous Application-column layout so only the row wrapper is centered, not the inner folder content itself. - Regression guard: Cover the centered-wrapper plus left-aligned-content contract for Docker and VM folder rows. ###2026.03.29.26 - UX: Center the Docker and VM folder application-column content block so the folder icon, name, and started or stopped state stay visually centered. - Fix: Keep folder quick-action chrome anchored while the centered layout is active by reserving the mover on the left and the menu button on the right. - Regression guard: Cover the centered application-column grid contract and Docker runtime row-centering inline style overrides. ###2026.03.29.25 - Fix: Fix folder action restart and reload flows. - Fix: Fix docker quick-action pin persistence. - Maintenance: Trim docker bootstrap perf budget. - Maintenance: Clarify docker refresh release notes. - Maintenance: Trim docker no-cache refresh path. - Maintenance: Stop docker double refresh shell. ###2026.03.29.24 - Feature: Add a separate per-folder `Accent color` setting in the folder editor with a default-disabled toggle plus custom color picker. - Feature: Render the optional accent bar across Docker folders, VM folders, Dashboard cards, and the live folder editor preview without tying it to pinning. - Quality: Carry accent defaults through parent smart defaults, starter templates, plugin defaults, and both modern and legacy folder editor save/load paths. - Regression guard: Cover accent editor bindings, shared normalization helpers, runtime row styling hooks, dashboard card styling, and starter template defaults. ###2026.03.29.23 - Fix: Restore the dashboard Docker folder `Restart` action by wiring it to its own handler instead of falling through a duplicate `Resume` case. - Fix: Stop dashboard Docker, dashboard VM, and VM runtime folder-action error paths from triggering an immediate second reload after showing the error dialog. - Fix: Keep VM folder pin quick actions in-place after saving prefs and cache-bust VM prefs reads so the next runtime refresh cannot revert to stale pinned folder state. - Regression guard: Cover dashboard restart routing, single-reload folder-action error handling, and the no-reload VM pin persistence path. ###2026.03.29.22 - Fix: Keep Docker folder pinning in-place after the quick-action menu saves prefs instead of forcing another runtime reload that could immediately undo the pinned state. - Fix: Cache-bust Docker runtime prefs reads so the next host refresh picks up the latest pinned folder ids instead of a stale prefs response. - Regression guard: Cover the no-reload Docker pin save path and the cache-busted Docker prefs request bundle. ###2026.03.29.21 - Fix: Let Unraid own the visible Docker tab load cycle by suppressing the extra FolderView Plus loading shell during host-driven refreshes. - Fix: Route Docker runtime info fetches through a compact shared no-cache helper so fresh state stays in sync without tripping the Docker script perf budget. - Regression guard: Update runtime refresh coverage for helper-based no-cache URLs and host-owned Docker loading UI suppression. ###2026.03.29.20 - Fix: Stop the Docker tab from showing a second FolderView Plus loading cycle on top of Unraid's own host refresh. - Fix: Force Docker runtime info reads through explicit `nocache=1` URLs so folder state and WebUI metadata stay fresh without another visible runtime reload. - Regression guard: Cover host-owned Docker loading UI suppression plus the no-cache runtime info request path. ###2026.03.29.19 - Fix: Remove the extra Docker tab reload during deferred runtime hydration and keep live preview actions updated in place instead. - Fix: Reuse the shared preview-action builders so the final runtime package stays within the Docker script performance budget. - Regression guard: Update nested preview layout coverage for the shared in-place hydration preview action path. ###2026.03.29.18 - Fix: Remove the extra Docker tab reload during deferred runtime hydration and update live preview actions in place instead. - Fix: Refresh existing preview tooltip payloads after runtime hydration without forcing a second Docker list render. - Regression guard: Cover the in-place hydration path so WebUI detail updates do not trigger another Docker `loadlist()`. ###2026.03.29.17 - Fix: Remove the extra Docker list reload during deferred runtime hydration and update live folder preview actions in place instead. - Fix: Keep preview tooltip payloads fresh after runtime hydration by invalidating lazy-built tooltip content on existing preview triggers. - Regression guard: Cover in-place hydration updates so WebUI detail changes do not queue a second Docker tab reload. ###2026.03.29.16 - Fix: Stop Docker deferred runtime hydration from showing the visible loading banner twice when the second pass only needs refreshed WebUI details. - Fix: Make Docker folder pinning reorder visible root folder rows immediately from the quick-action star instead of waiting on a later full redraw. - Regression guard: Cover silent Docker hydration refresh behavior plus the immediate pin-order sync contract. ###2026.03.29.15 - Fix: Make nested folder pinning move the visible branch root to the top so pinning from the runtime folder action menu no longer appears to do nothing. - Fix: Add a legacy prefs POST fallback for Docker and VM folder pin saves so pinning still persists if the runtime request wrapper is degraded or loads late. - Regression guard: Cover nested pinned branch ordering plus the runtime pin-save fallback contract. ###2026.03.29.14 - Fix: Fix release notes guard tmp creation in CI. - Feature: Add Docker branch folder deletion and clone regression tests. - Fix: Fix Docker branch submenu hover and add branch cloning. - Fix: Fix folder editor asset boot includes. - Fix: Fix nested preview quick actions. - Fix: Fix Docker folder order persistence. ###2026.03.29.13 - Fix: Create the release-notes consistency guard tmp directory before `mktemp` so Release On Main, back-merge, and CI guard lanes succeed on fresh GitHub Actions checkouts. - Regression guard: Add versioning coverage that requires the release-notes consistency guard to create `tmp/release-notes-guard.*` work directories safely. ###2026.03.29.11 - Feature: Add `Delete branch folders` under Docker branch actions to remove a root folder and every nested child folder in that branch. - Quality: Add behavior-level regression coverage for clone-of-clone branch cloning, deep-copy payload safety, rollback ordering, and branch delete ordering. ###2026.03.29.10 - Fix: Restore Docker branch hover submenus by allowing runtime context menus to keep submenu overflow visible. - Feature: Add a Docker `Clone` submenu with `Clone folder` plus `Clone branch`, including nested branch cloning with preserved parent-child structure. ###2026.03.29.09 - Fix: Restore modern folder editor module loading after reinstall by replacing short-tag asset includes in Folder.page with explicit PHP autov tags. - Quality: Add a regression guard to keep Folder.page shared editor assets on explicit PHP include tags instead of short tags. ###2026.03.29.08 - Fix: Stop nested Docker parent previews from forcing WebUI, console, and logs quick-action icons when those preview actions are disabled. - Quality: Add a regression guard that keeps nested preview quick actions aligned with the folder's own preview settings. ###2026.03.29.07 - Fix: Preserve dragged Docker folder order across refreshes instead of re-sorting folder placeholders back to folder definition order. - Quality: Add regression coverage for Docker runtime folder-slot repair and server-side order sync placeholder preservation. ###2026.03.29.06 - Fix: Stop Docker WebUI buttons and Open all WebUIs from using unresolved template URLs like http://[IP]:[PORT:80] during the lightweight runtime pass. - Maintenance: Rebuild folder runtime WebUI targets after full Docker detail hydration so resolved ports replace stale placeholder values. ###2026.03.29.05 - Fix: Restore Docker WebUI launches for preview icons, tooltip actions, and Open all WebUIs without landing on about:blank#blocked. - Maintenance: Keep release-guard-compatible target=_blank markup while routing WebUI clicks through the safe launcher path. ###2026.03.29.04 - Maintenance: Preserve modern editor section across mode switches. - Maintenance: Restore Docker advanced preview context popups. - Maintenance: Set dev channel release metadata. - Fix: Fix release smoke gating. - Maintenance: Release 2026.03.27.30. - Fix: Fix dev branch validation in back-merge workflow. ###2026.03.29.03 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.29.02 - Fix: Keep the modern folder editor on the current section when switching between Basic and Advanced. - Quality: Added a regression guard for modern folder editor section-state sync. ###2026.03.29.01 - Maintenance: Set dev channel release metadata. - Fix: Fix release smoke gating. - Fix: Restore Docker advanced preview context popups for both click and hover activation modes. ###2026.03.27.30 - Docs: Refresh the repository README, bundled plugin README, and troubleshooting guidance so the documented install, settings, rules, recovery, diagnostics, and theme behavior match the current plugin UX. - Docs: Update the packaged plugin description strings to reflect Docker, VM, and Dashboard support plus Setup Assistant, bulk assignment, templates, recovery tools, and copyable diagnostics. ###2026.03.27.27 - UI/UX: Roll up the promoted `dev` line since main `2026.03.26.47`, rebuilding advanced settings around clearer Diagnostics, Folder Health, Bulk Assignment, Rules, Recovery, and Operations workspaces instead of the older split technical panels and duplicated modules. - Fix: Make the advanced settings experience render correctly across white, Azure, and gray themes, including the wizard, diagnostics surfaces, gutters, and the shared settings-module token path so non-dark hosts no longer fall back to broken or unreadable layouts. - UI/UX: Simplify settings flow by removing the old diagnostics dumps, maintenance clutter, quick presets, and the save dock, switching the page fully to autosave, remembering Basic versus Advanced view, and modernizing the button, compact-control, and health-card presentation. - Quality: Expand settings regression coverage for advanced workspace routing, layout contracts, theme compatibility, workspace persistence, and packaged release validation so the new advanced-settings UX stays stable on both `main` and `dev`. ###2026.03.27.26 - Maintenance: Tighten recovery policy and history UX. - Maintenance: Redesign recovery workspace UX. - Maintenance: Redesign rules workspace UX. - Maintenance: Overhaul diagnostics folder health cards. - Fix: Fix diagnostics module gutters and settings mode memory. - Maintenance: Inset diagnostics tab module bodies. ###2026.03.27.25 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.27.24 - UX: Made the Recovery tab backup policy a full non-collapsible card that matches the restore-and-safety stage height and layout. - UX: Replaced the long Recovery backup history card list with a compact snapshot date selector and one shared Restore, Download, and Delete action row. ###2026.03.27.23 - UX: Rebuilt the Recovery tab into a cleaner source-switched Docker/VM workspace with a clear overview, restore-and-safety actions, snapshot history cards, and a simpler backup policy panel. - UX: Replaced the old raw change-history dump with a selected-source undo and recent-changes timeline so Docker and VM recovery history is easier to review and understand. - Quality: Added recovery workspace memory, timeline rendering coverage, and updated settings regression guards for the new Recovery layout. ###2026.03.27.22 - UX: Rebuilt the Rules tab into a cleaner source-switched Docker/VM workspace with rule overview cards, a simpler builder, ordered rule cards, and synced testing/troubleshooting panels. - UX: Rule previews and conflict scans now produce clearer human-readable summaries, and Settings remembers the last Rules source you were working in. ###2026.03.27.21 - UX: Rebuilt the Settings Diagnostics folder health cards into a cleaner summary-first layout with three core stats, optional issue chips, quieter filters, and context-aware actions. - UX: Health card actions can now jump straight into the filtered Basic table view when attention needs review, while conflicts still route directly to the conflict inspector. - Quality: Added regression coverage for the new clean health-card renderer and filtered jump action. ###2026.03.27.20 - Fix: Inset the Diagnostics tab modules so the Folder health and Troubleshoot panels use the same left and right gutter spacing as the rest of Advanced Settings instead of stretching edge to edge. - UX: Remember the last Basic or Advanced settings view and reopen Settings in that same mode, while syncing the saved preference so it stays consistent on later loads. - Quality: Added regression coverage for diagnostics module spacing and settings mode persistence. ###2026.03.27.19 - Fix: Add real inset section bodies to the Diagnostics tab so the folder-health cards, health summary, fixes lane, and support lane no longer stretch edge-to-edge inside their modules. - UI/UX: Align the Diagnostics tab body layout with the rest of Advanced Settings by giving both diagnostics sections the same internal side padding treatment instead of relying on stretched full-width panels. - Quality: Update the settings surface regression guard to lock the diagnostics body wrapper and padding contract in place. ###2026.03.27.18 - Fix: Make the Setup Assistant wizard follow the resolved settings theme so white, Azure, gray, and dark hosts no longer force the wizard into a static dark shell. - UI/UX: Convert the wizard dialog, controls, chips, step badges, quick presets, progress bar, and focus states onto theme-aware tokens so light themes keep readable surfaces and contrast. - Quality: Add wizard theme compatibility coverage for the light-token override path and the runtime theme-surface binding used when the assistant opens. ###2026.03.27.17 - UI/UX: Add the missing inner side gutters to the Settings Diagnostics tab so the health summary, fix lane, and support lane no longer sit edge-to-edge inside the diagnostics module. - Fix: Align the diagnostics tab’s inner module spacing with the rest of Advanced Settings so the white, Azure, gray, and dark themes all keep the same inset layout. - Quality: Add regression coverage for the diagnostics tab inner-gutter rule so those inset margins stay locked in. ###2026.03.27.16 - Fix: Apply the Diagnostics theme-safe surface tokens to the remaining Advanced Settings tabs so Automation, Rules, Recovery, and Operations stay readable on white, Azure, and gray themes. - UI/UX: Convert the shared advanced cards, staged bulk-assignment chrome, preview/result panels, helper copy, and rule modules away from dark-only colors onto the same semantic settings tokens used by the working Diagnostics tab. - Quality: Expand theme and settings regression coverage so the non-Diagnostics advanced tabs stay locked to light-safe tokenized surfaces. ###2026.03.27.15 - Fix: Convert the Automation, Rules, Recovery, and Operations advanced-settings modules to the same shared theme-safe surface tokens already used by Diagnostics so white, Azure, and gray themes stay readable. - UI/UX: Replace the remaining dark-only advanced module cards, pills, lists, preview panels, and helper copy with theme-aware settings tokens for light and dark hosts. - Quality: Add regression coverage to lock the advanced-settings shared modules onto light-safe tokenized surfaces instead of hardcoded dark colors. ###2026.03.27.14 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.27.13 - Fix: Keep the Settings save dock hidden for operational advanced tools like bulk assignment, runtime actions, backups, templates, conflict scans, health cards, and diagnostics. - Fix: Exclude transient bulk-assignment target, filter, and compatibility checklist fields from staged save tracking so selecting Docker containers or VMs no longer triggers the global save pill. - UI/UX: Simplify the Settings save dock by removing `Save and Close`, tightening the status copy, and restyling the dock into a cleaner compact action bar. ###2026.03.27.10 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.27.09 - UI/UX: Pin sparse bulk-assignment lists to the top of the checklist area so single Docker or VM items no longer appear vertically centered. - UI/UX: Apply the same top-alignment rule to both Docker and VM bulk-assignment lists so the two modules behave consistently. - Quality: Extend the bulk-assignment layout guard to lock in top-aligned checklist rows for short lists. ###2026.03.27.08 - UI/UX: Make the Docker and VM bulk-assignment modules reserve the same checklist height so the two panels stay visually aligned. - UI/UX: Remove the outer advanced-module scrollbar from bulk assignment while keeping the inner container and VM checklist areas scrollable. - Quality: Add regression coverage for the matched-height bulk panels and the no-outer-scroll module layout. ###2026.03.27.07 - UX: Move Conflict inspector into the Rules advanced-settings tab and place it after Auto-assignment rules so Automation stays focused on bulk actions. - UI/UX: Wrap Conflict inspector in the same inset module grid as the other Rules sections so its panel width matches the surrounding advanced modules. - UI/UX: Restore the desktop two-column bulk-assignment layout so Docker and VM bulk-assignment panels sit side by side again. ###2026.03.27.06 - UX: Move Auto-assignment rules into a dedicated Rules advanced-settings tab so Automation starts directly with Bulk assignment. - UI/UX: Keep Bulk assignment as the first section in Automation and add a clearer Rules tab label for rule-based folder assignment controls. - Quality: Add regression coverage for the advanced-settings group split so the new Rules tab and Bulk assignment ordering stay stable. ###2026.03.27.05 - UI/UX: Shrink the advanced settings compact controls to true icon-sized buttons instead of letting host theme button chrome expand them into wide pills. - UI/UX: Apply the same hard icon-button sizing and native button reset to both the top advanced compact control and the per-section compact toggles. - Quality: Update the advanced settings layout guards for the smaller compact-button size and stricter compact-control reset path. ###2026.03.27.04 - UI/UX: Dock the advanced settings tab strip back to the right edge and keep the tab controls grouped directly beside the tab compact button. - UI/UX: Replace the remaining advanced settings text `Compact` pills with the smaller icon-only compact controls so the advanced header chrome matches the new shared button style. - Quality: Update the advanced settings layout and mobile regression guards for the right-docked tab bar and icon-only compact controls. ###2026.03.27.02 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.27.01 - UI/UX: Refine the plugin-wide button system to a cleaner flatter style with tighter corner radii, reduced gloss, and less floaty hover behavior across Settings, the folder editor, dashboard quick actions, and runtime dropdown controls. - UX: Keep the newer filled button treatment but make it feel more modern and less bubbly by softening gradients, reducing shadows, and tightening segmented-control chrome. - Quality: Update runtime and layout regression guards for the flatter shared button contract. ###2026.03.26.55 - UI/UX: Replace the old hard-border button chrome with a softer filled button system across Settings, the folder editor, dashboard quick actions, and runtime dropdown controls. - UX: Keep active filters and primary actions readable with warmer filled states while preserving the orange module-outline treatment on surrounding panels. - Quality: Refresh the button-style regression guards and perf baseline for the new shared button system. ###2026.03.26.54 - UX: Remove the top advanced-settings maintenance action buttons so the Settings page opens directly into configuration instead of a utility button strip. - Maintenance: Keep the first-run helper panel and status lines while stripping the visible File Manager, update check, force-refresh, checkpoint, and rollback buttons from the Settings page chrome. - Quality: Add regression coverage so the removed advanced-settings maintenance action buttons stay out of the Settings page markup. ###2026.03.26.53 - UX: Remove the Quick profile presets strip from advanced settings so the top settings toolbar stays focused on the real settings actions. - Maintenance: Remove the page-only quick-preset runtime hook, export, and styling that only existed for the removed advanced settings preset strip. - Quality: Update settings and dashboard regression guards so the advanced settings preset strip stays removed. ###2026.03.26.52 - UX: Remove the Quick profile presets strip from advanced settings so the top settings toolbar stays cleaner and less noisy. - Maintenance: Strip the page-only quick-preset runtime wiring, exports, and CSS now that the advanced settings preset buttons are gone. - Quality: Add regression coverage to keep the removed advanced settings preset strip from returning. ###2026.03.26.51 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.26.50 - UX: Remove the old settings diagnostics panels and keep only the new summary troubleshooting surface. - Fix: Fix remote publish guard temp dir bootstrap. - Maintenance: Update workflow retry guard expectations. - Maintenance: Increase release raw publish retry window. - Maintenance: Stable release 2026.03.26.47. - Fix: Fix legacy editor resolved folder scope. ###2026.03.26.48 - Fix: Fix remote publish guard temp dir bootstrap. - Maintenance: Update workflow retry guard expectations. - Maintenance: Increase release raw publish retry window. ###2026.03.26.47 - Fix: Roll up the promoted `dev` line since main `2026.03.26.21`, adding broader Docker, VM, Settings, and Folder Editor diagnostics so bootstrap, request, template-scan, and host-page compatibility failures now surface with actionable copyable details instead of degrading silently. - Fix: Stabilize the Docker runtime by improving first-paint performance, preserving edit and page-level actions, resolving Compose Manager script collisions, removing the large Docker preview member popup panel, and keeping runtime menus/theme behavior consistent on dark and light hosts. - Fix: Complete the legacy folder editor bootstrap hardening so Docker folder edits now recover the requested target reliably across reused tabs, seeded edit launches, and early hydration, eliminating the chain of legacy bootstrap failures around target recovery, regex or icon helper order, and resolved-folder diagnostics scope. - Quality: Promote the expanded regression coverage for browser smoke, runtime architecture, popup-removal contracts, theme/runtime guards, release validation, and legacy editor bootstrap routing so this release line stays stable on both `main` and `dev`. ###2026.03.26.46 - Fix: Legacy folder editor no longer rejects during bootstrap when diagnostics try to read `resolvedEditFolder` outside the request-resolution branch after a Docker folder edit is loaded. - Fix: The legacy edit-target bootstrap now keeps the resolved folder reference in outer scope, so hydration diagnostics and ready-state reporting can complete without throwing `resolvedEditFolder is not defined`. - Quality: Added route-guard coverage for the shared `resolvedEditFolder` bootstrap binding so this scope bug stays caught in test runs. ###2026.03.26.45 - Fix: Legacy folder editor no longer rejects during seeded Docker edit bootstrap when `hydrateCurrentEditFolder(...)` calls the regex-selection helper before it is initialized. - Fix: Hoisted the legacy regex and icon update helpers so pre-hydrated edit launches can load saved folder data without hitting `Cannot access 'updateRegex' before initialization` or the same follow-on hazard on icon hydration. - Quality: Expanded the legacy route guard so the seeded bootstrap path now requires hoisted regex and icon helpers in test runs. ###2026.03.26.44 - Fix: Removed the Docker preview member action-sheet module from the Docker page, so clicking Docker containers in folder previews no longer opens the large FolderView Plus popup window. - Fix: Docker runtime now strips stale preview member popup trigger attributes and explicitly unbinds the legacy member-menu click handlers to keep the popup path disabled even after cached or mixed assets. - Quality: Updated Docker runtime architecture, overflow, and security guards so the removed preview popup module stays out of the Docker page and runtime. ###2026.03.26.43 - Fix: FolderView Plus no longer opens the large preview popup panel when clicking Docker containers in folder previews, eliminating the duplicate click interaction on the Docker page. - Fix: Legacy folder editor bootstrap now hoists the form-visibility and member-list helpers so edit hydration no longer rejects with `Cannot access 'updateForm' before initialization`. - Quality: Added regression coverage for the disabled Docker preview popup path and the hoisted legacy bootstrap helpers. ###2026.03.26.42 - Fix: Docker and VM runtime dropdown/context menus now follow the active host theme instead of falling back to the default light menu skin on dark themes like Black. - Fix: Folder icon menus now use the same themed runtime menu styling, so container menus and folder menus stay visually consistent on dark and light surfaces. - Quality: Shared runtime menu theming is now reused on Dashboard too, with regression coverage for the runtime menu token contract. ###2026.03.26.41 - Fix: Legacy folder editor no longer crashes during preview bootstrap when binding member helper callbacks before initialization. - Regression guard: Added explicit coverage for the hoisted legacy preview helper functions so this startup-order bug stays caught in test runs. ###2026.03.26.40 - Fix: Folder.page now renders a dedicated top-of-page folder editor bootstrap diagnostics banner, so legacy startup failures can still be copied even when the legacy chrome never initializes. - UX: Legacy editor bootstrap state now mirrors into the page-level diagnostics banner, including copyable launch-vs-bootstrap details for missing edit-target reports. ###2026.03.26.39 - Fix: Legacy folder editor now shows a real top bootstrap diagnostics banner with copyable debug output when edit-target bootstrap fails or the runtime hits an early error. - UX: Added launch-vs-bootstrap details to the legacy editor banner so missing edit-target reports can be copied directly from the page without going through Settings. ###2026.03.26.38 - Fix: Restored folder edit clicks on the Docker and VM pages by re-exporting the inline folder-row handlers after the runtime scripts were moved into private scopes. - Fix: Docker folder rows now expose the required global runtime actions for edit, dropdown, context menu, and update links without reopening the Compose Manager symbol collision. - Quality: Added runtime architecture guards so host-page handler exports stay intact while the Docker and VM runtimes remain collision-safe. ###2026.03.26.36 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.26.35 - Fix: Added a Folder Editor Diagnostics panel to Settings so this browser now shows the last folder-editor launch target beside the last modern or legacy editor bootstrap result. - Fix: Docker, VMs, and Dashboard edit actions now persist launcher telemetry, while both folder-editor runtimes persist bootstrap telemetry, making route-target mismatches and recovery paths visible instead of silent. - Quality: Extended diagnostics exports, support bundles, and route or dashboard regression guards so future legacy editor failures leave a copyable troubleshooting trail. ###2026.03.26.34 - Fix: Added a Folder Editor Diagnostics panel to the Settings page so this browser now shows the last folder-editor launch request and the last editor bootstrap result side by side. - Fix: Docker, VMs, and Dashboard folder edit actions now record launch telemetry, and both the modern and legacy editors record bootstrap telemetry, making route-target mismatches visible instead of silent. - Quality: Added diagnostics export/support-bundle coverage plus route and dashboard regression guards so folder-editor troubleshooting data stays available in future dev builds. ###2026.03.26.33 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.26.32 - Fix: Legacy folder editor now keeps watching shared edit-prefill state after load, so it can recover the requested folder even when Unraid reuses the existing Folder tab without a fresh document bootstrap. - Fix: Legacy no-target recovery no longer clears the shared editor prefill before it has a chance to refresh onto the folder you clicked. - Quality: Expanded legacy route guards so polling, visibility/focus refresh, and persistent prefill recovery stay covered. ###2026.03.26.31 - Fix: Legacy folder editor now listens for shared edit-prefill updates from Docker and VM pages, so reused Unraid xmenu tabs can refresh onto the correct folder instead of staying in blank new-folder mode. - UX: When legacy opens without a valid edit target, it now shows a clear warning banner instead of silently looking like a brand-new folder form. - Quality: Expanded legacy route guards so shared prefill refresh and reused-tab recovery stay locked in. ###2026.03.26.30 - Fix: Restored legacy folder editor edit detection by adding the missing legacy hydrate helper and removing the broken call path that could leave the page stuck in blank new-folder mode. - Fix: Legacy folder edit forms now hydrate the requested folder before member inventory loads, so partial `read_info` failures no longer prevent existing folders from opening in the editor. - Quality: Hardened legacy member inventory parsing and expanded route/editor guards so legacy edit bootstrap and fallback member loading stay covered. ###2026.03.26.29 - Fix: Legacy folder editor now resolves the folder you clicked even when the incoming edit reference is stale or stripped, by falling back across the full bootstrap, resolved-id, and navigation-prefill candidate set. - UX: Both folder editor runtimes now keep the bootstrap folder record and ID aligned during edit hydration, preventing blank new-folder forms when reopening an existing folder through legacy paths or reused xmenu windows. - Quality: Expanded folder editor route/nesting guards so candidate-based edit resolution and bootstrap-ID fallback stay locked in. ###2026.03.26.28 - Performance: Folder editor submit now returns immediately after save instead of waiting on Docker host-order sync to finish before redirecting back to the runtime page. - UX: Docker folder edits in both the modern and legacy editors now feel faster because post-save order sync is queued in the background with browser-safe keepalive transport. - Quality: Added regression coverage so Docker post-save sync stays off the folder editor submit critical path in both runtimes. ###2026.03.26.27 - Performance: Docker folder rendering now paints from lightweight runtime state first, derives host order from the live DOM, and defers heavy runtime detail hydration until after the initial folder view is visible. - UX: Docker now shows an earlier loading shell while folders are building, and preview tooltips initialize on first interaction instead of during the initial render pass. - Quality: Expanded Docker perf guards and lightweight state payload coverage so staged bootstrap, deferred hydration, and first-paint loading behavior stay locked in. ###2026.03.26.26 - Performance: Docker folder rendering now paints from lightweight runtime state first, derives host order from the live DOM, and defers heavy runtime detail hydration until after the initial folder view is visible. - UX: Docker now shows an earlier loading shell while folders are building, and preview tooltips initialize on first interaction instead of during the initial render pass. - Quality: Expanded Docker perf guards and state payload coverage so staged bootstrap, deferred hydration, and first-paint loading behavior stay locked in. ###2026.03.26.25 - Fix: Hardened Docker `read_info` template scanning so Unraid template-directory errors no longer break the Settings page or Docker runtime info bootstrap. - Fix: Kept Docker runtime info alive when `DockerTemplates->getTemplates('all')` or XML template indexing throws, falling back to no template metadata instead of a hard request failure. - Quality: Expanded runtime hardening guards so template-scan exceptions stay non-fatal and future Settings degraded diagnostics keep pointing at the exact failing backend path. ###2026.03.26.23 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Fix: Improved backend release-note parsing and category detection for accurate summaries. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.26.22 - Fix: Add Docker and VMs runtime preflight diagnostics so unsupported Unraid versions, missing host dependencies, Docker/libvirt probe failures, and active override files surface in a top-of-page troubleshooting banner before the runtime starts. - Fix: Detect Docker and VM host-table signature drift explicitly, so missing `#docker_containers` / `#docker_list` or `#kvm_table` / `#kvm_list` markup now reports as a named page-structure failure instead of a vague runtime break. - Quality: Harden server bootstrap with safe host dependency loading plus new runtime preflight regression coverage, keeping Docker/VM troubleshooting visible even when old or broken hosts would previously fatal before the banner loaded. ###2026.03.26.21 - Fix: Roll up the promoted `dev` line since main `2026.03.26.17`, adding top-of-page runtime diagnostics banners on the Docker and VMs pages so bootstrap, request, and render failures no longer fail silently. - Fix: Restore the page-level Docker and VM `Add Folder` actions by exposing the runtime handler globally, keeping the inline host-page buttons working after update. - Quality: Extract the shared runtime diagnostics bridge into the common Docker/VM runtime module and expand architecture guards so diagnostics stay visible without tripping the performance ratchet. ###2026.03.26.20 - Fix: Added a top-of-page runtime diagnostics banner on the Docker and VMs pages so bootstrap, request, and render failures now surface with copyable details instead of silently failing. - Fix: Bound the Docker and VM `Add Folder` page actions onto the live runtime so inline page buttons still work even when the host page expects global handlers. - Quality: Moved the shared runtime diagnostics bridge into the common runtime module and added architecture guards so Docker and VM runtime failures stay visible without tripping the file-size ratchet. ###2026.03.26.18 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.26.17 - Feature: Roll up the promoted `dev` line since main `2026.03.25.31`, including the modern folder editor rollout with grouped sections, live preview, richer icon handling, and stronger runtime/bootstrap wiring. - Fix: Resolve the promoted editor regressions across save/bootstrap flow, member reorder preview sync, tab and settings-block layouts, inheritance controls, and light, dark, and Azure theme rendering. - UI/UX: Refine folder and settings surfaces with stronger title accents, shared outline treatment, larger editor field controls, improved light-theme readability, and cleaner row action button chrome. - Quality: Expand regression coverage with editor settings-contract checks, runtime theme guards, real browser smoke interactions, and remote raw publish validation for release artifacts. ###2026.03.26.16 - Fix: The shared theme resolver no longer hard-forces the Unraid Azure host theme into the dark compatibility path, so the new folder editor now follows the actual page luminance instead of rendering a mismatched dark shell on Azure. - Fix: Azure and other non-black named host themes now fall back to computed surface brightness for folder editor theme classification, keeping light host pages on the light editor palette. - Regression guard: Updated the resolver contract test so only explicit black themes are pinned dark while transparent-surface and light-host inference stays enforced. ###2026.03.26.15 - UI/UX: Removed the boxed square chrome from the row action buttons in the basic settings tables so the standard actions render as clean orange icons instead of outlined mini-buttons. - UI/UX: Kept the trailing overflow `...` action boxed so the expandable action affordance still reads as a separate control. - Regression guard: Added a layout assertion covering the unboxed action-button rule for non-overflow row actions. ###2026.03.26.14 - Fix: The settings page now exports the host theme name like the folder editor so white and other light themes enter the correct readable settings palette on the basic page. - Fix: The shared theme resolver now ignores transparent root backgrounds and no longer hard-forces grey-named themes dark, preventing white-theme settings tables from inheriting unreadable dark tokens. - Regression guard: Added resolver and settings-page bootstrap assertions to lock the light-theme classification path and prevent another unreadable basic-page regression. ###2026.03.26.13 - Fix: Hardened the modern folder editor field sizing with force-win input rules and class-based inherited-row hiding so health and status controls no longer collapse into tiny clipped placeholders on the live page. - Fix: Added direct white-theme settings table overrides for nested folder metadata, pin/runtime chips, and empty-state status or alert chips so those cells stay readable even when host page styles outrank the softer token path. - Regression guard: Extended the folder editor and settings light-theme layout assertions to cover the forced input widths, inherited-row hide rule, and direct readability overrides. ###2026.03.26.12 - Fix: Moved the settings page white-theme breadcrumb, nested metadata, and empty-chip colors onto resolver-applied semantic tokens so light themes no longer fall back to the unreadable dark palette. - UI/UX: Enlarged the folder editor `Use global` inherit control so the label no longer clips into a tiny `Use g` pill in the modern settings blocks. - Regression guard: Added runtime token and layout assertions covering the settings semantic palette plus the larger inherit button sizing. ###2026.03.26.11 - Fix: Re-themed the light settings page tree meta, nested folder hints, and neutral status or alert chips so white themes keep readable folder text and empty-state indicators. - UI/UX: Increased the modern folder editor field control sizes so text, number, select, and textarea inputs are easier to read while editing settings blocks. - Regression guard: Added light-theme settings contrast and modern editor control sizing assertions to keep these readability fixes from regressing. ###2026.03.26.10 - UX: Removed the duplicate `Using global` inherit control from inherited folder-editor rows so only the inherited-default notice remains visible. - UI/UX: Shrunk the blue inherited-default badge so it reads as a compact notice instead of a large pill next to the field title. ###2026.03.26.09 - UX: Tightened modern folder editor inheritance notices so `Using global` renders as a compact blue info label instead of a large gray control. - UI/UX: Applied the orange editor outline treatment across both light and dark modern folder editor surfaces, including cards, controls, settings blocks, and the hero/icon framing. - Fix: Re-themed the Members section table to use editor surface tokens so light themes no longer render the member list as a flat gray slab. ###2026.03.26.08 - Fix: Restyled inherited folder-editor notices so `Using global` reads as a compact blue info label instead of a full gray button. - Fix: Extended the modern folder editor orange outline treatment across both light and dark themes, including control borders, hero icon framing, and the remaining settings blocks. - Fix: Re-themed the Members section table to use the editor surface tokens so light themes no longer render the member list as a flat gray slab. ###2026.03.26.07 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.26.06 - Fix: Member reordering in the folder editor now refreshes the live preview immediately and keeps the in-memory member order synchronized before save in both the modern and legacy runtimes. - Regression guard: Browser smoke now exercises real modern folder editor interactions, including preview section revert/defaults, member reorder-to-preview verification, custom action add/remove, save, and smoke-folder cleanup. - Quality: Added a remote raw publish guard for the live `.plg`, archive, and checksum, and trimmed redundant regression guard coverage by keeping only the higher-signal workflow and layout contracts. ###2026.03.26.05 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.26.04 - Quality: Audited the remaining modern folder editor settings contract so every schema-backed field is present in the page markup, bound during load, serialized during save, and covered by section restore/default metadata. - Regression guard: Added a dedicated modern folder editor settings contract test to catch future mismatches between the schema, page controls, and runtime save/load paths before they ship. ###2026.03.26.03 - Fix: Restored the missing `folder.editor.icon-api.js` dependency on the folder editor page so member reordering and any other folder save path no longer fail in the modern editor with `Cannot read properties of null (reading 'securePost')`. - Regression guard: The modern folder editor bootstrap now treats the icon API helper as a required module and the editor smoke coverage checks that the page ships it before runtime save handlers execute. ###2026.03.26.02 - Fix: Rebuilt the modern folder editor Preview layout around real constraint-aware field cards, which removes the broken gaps, restores the correct row order, and hides advanced preview controls unless their parent options are enabled. - Fix: Reworked the modern Status and Actions modules so the status palette card keeps the same row height as neighboring cards, the custom-actions area becomes one full-width module, and the add-action control sits under the action list instead of in a separate fake button card. ###2026.03.26.01 - Fix: Restored the original orange heading treatment for the modern folder editor and settings module titles on darker themes, avoiding black-on-black title regressions. - Quality: Added regression coverage for dark-theme title accents across the folder editor and settings surfaces. ###2026.03.25.71 - Fix: Keep the modern folder editor shell hidden behind the loading placeholder until runtime hydration completes, so existing-folder edits no longer flash the blank generic shell first. - Fix: Reveal the modern editor stage only after runtime-ready or on bootstrap failure, which preserves diagnostics while removing the intermediate empty-state repaint during normal loads. ###2026.03.25.70 - Fix: Finalize the shipped modern folder editor stage/scaffold boot path so the old legacy form no longer flashes before existing-folder hydration completes. - Fix: Keep modern section titles and field-card layout on the modern theme/layout contract by loading folder editor styles after the host theme and scoping legacy alignment rules to legacy mode only. - Quality: Rebuild the packaged dev archive and smoke guards around the mode-scoped modern editor root. ###2026.03.25.69 - Fix: Render the modern folder editor through its own visible stage while keeping the legacy scaffold hidden, so the legacy form no longer flashes before the modern editor hydrates. - Fix: Stop legacy runtime left-alignment overrides from applying to modern editor rows, which keeps modern field cards and section spacing under the modern layout contract. - Quality: Load folder editor styles after the host theme and lock the modern-stage/scaffold split into the editor smoke guards. ###2026.03.25.68 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.25.67 - Maintenance: Refresh perf baseline for folder editor UI update. ###2026.03.25.66 - Maintenance: Update release notes for modern editor field row fix. ###2026.03.25.65 - Fix: Keep the modern folder editor field cards on their intended stacked `dt/dd` layout instead of letting the legacy left-alignment runtime force them back into a two-column grid. - Fix: Preserve the modern section-card control geometry so toggles, text inputs, and inline controls stay aligned inside each editor card after runtime refreshes. ###2026.03.25.64 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.25.63 - Maintenance: Compress the folder editor bootstrap disclosure styles to stay within the CSS perf budget without changing the new collapsed-by-default diagnostics behavior. ###2026.03.25.62 - UX: Collapse the folder editor bootstrap diagnostics by default behind a `Bootstrap diagnostics` disclosure so routine editing stays clean while full runtime details remain available for troubleshooting. - Regression guard: Enforce that the modern editor startup begins only after late runtime helpers like `folderHierarchyState` are declared, preventing future bootstrap-order regressions from creeping back in unnoticed. ###2026.03.25.61 - Fix: Defer the modern folder editor startup bootstrap until the end of `folder.js`, so saved-folder hydration no longer executes before later runtime helpers like `folderHierarchyState` are initialized. - Regression guard: Lock the deferred `startFolderEditorRuntime()` bootstrap path into the modern editor smoke and nesting guards so early-start TDZ failures do not regress. ###2026.03.25.60 - Fix: Hoist `updateForm` into a function declaration so the modern editor bootstrap can safely call it before later layout helpers finish loading, preventing the `updateForm` initialization crash during saved-folder hydration. - Regression guard: Lock the hoisted `updateForm` bootstrap shape into the modern editor smoke and nesting guards so the late `const updateForm` path does not regress. ###2026.03.25.59 - Fix: Promote `normalizeParentFolderId` to a plain top-level editor helper so modern validation can run before the folder hierarchy module is initialized, preventing the remaining parent-folder bootstrap crash before hydration. - Regression guard: Lock the direct parent-id helper into the modern editor smoke and nesting guards so the late hierarchy alias does not regress. ###2026.03.25.58 - Fix: Delay modern folder editor shared helper API creation until the folder hierarchy helpers are initialized, preventing the early `normalizeParentFolderId` bootstrap crash before hydration. - Regression guard: Lock the lazy shared-editor bootstrap path into the folder editor guards so eager helper initialization does not regress. ###2026.03.25.57 - Fix: Delay modern folder editor preview API creation until its helper functions are initialized, preventing the early `getIncludedMemberNames` bootstrap crash before hydration. - Regression guard: Lock the lazy modern preview bootstrap path into the folder editor smoke test so eager preview initialization does not slip back in. ###2026.03.25.55 - Fix: Move the folder editor runtime boot into a page-owned script loader so `Folder.page` can force fresh modern or legacy editor scripts into the active xmenu window on every open. - Quality: Lock the new injected runtime boot path into the folder page architecture and security guards so the editor no longer depends on passive bottom-of-page script tags. ###2026.03.25.54 - Fix: Scope the modern and legacy folder editor runtimes so Unraid can execute them repeatedly in the same xmenu window without global redeclaration collisions. - Quality: Reset the folder editor bootstrap sentinels on every page load so the on-page runtime diagnostics reflect the current editor launch instead of stale global state. ###2026.03.25.53 - Fix: Force the folder editor page to request build-versioned runtime assets so updated `folder.js` and `folder.editor.chrome.js` cannot be masked by stale browser cache. - Quality: Ship the page-level folder editor runtime script monitor and visible bootstrap watchdog directly from `Folder.page` so stalled editor boots surface actionable diagnostics on the live page. ###2026.03.25.52 - Quality: The modern folder editor bootstrap panel now reports as soon as `folder.js` executes, including page, query, hash, and fallback seed identity values. - Regression guard: Added a check so the explicit modern-runtime bootstrap marker stays present in the shipped editor runtime. ###2026.03.25.51 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.25.50 - Fix: Brought `window.name` bootstrap recovery into the restored legacy folder-editor runtime so it can consume the same launcher fallback path as Docker, VM, and Dashboard edit actions. - Quality: Updated the route guard to lock the shared bootstrap seed path for the legacy runtime and prevent storage-only regressions. ###2026.03.25.49 - Fix: Restored the proven modern-folder-editor runtime path by keeping the new editor chrome but routing existing-folder hydration back through `folder.legacy.js`. - Compatibility: Updated architecture and page-smoke guards to lock the modern-shell plus legacy-hydration include order so future refactors do not silently break existing-folder editing again. ###2026.03.25.48 - Quality: Tightened the folder editor bootstrap watchdog so `script-evaluated` and other stalled early stages now render a failure block instead of leaving the static waiting placeholder. - Regression guard: Added route-guard coverage for the explicit `runtime-ready` stage and the stalled-bootstrap reporter text so early runtime failures stay visible on-page. ###2026.03.25.47 - Quality: Added a chrome-level folder editor bootstrap watchdog that reports top-level script crashes, unhandled rejections, and missing runtime startup directly in the on-page debug panel. - Regression guard: Locked the new early-runtime reporter and boot-stage sentinels into the folder editor route guard so blank placeholder output becomes actionable diagnostics. ###2026.03.25.46 - Quality: Expanded the modern folder editor bootstrap panel to show page mode, seed summaries, navigation prefill, folder-map load count, member load count, and the final hydrate resolver path. - Quality: Locked the new bootstrap debug fields into the route guard so future editor-launch regressions are visible on-page instead of failing silently. ###2026.03.25.45 - Fix: Modern and legacy folder editors now keep `type/id` bootstrap identity even when the launch payload does not include an embedded folder object. - Fix: Existing-folder hydration can now resolve from storage and window-name identity fallbacks after query or hash state is stripped during navigation. - Quality: Route guard coverage now locks the identity-only bootstrap contract so folder-edit launches do not silently regress back to blank-editor mode. ###2026.03.25.44 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.25.43 - Fix: Stamp the active Unraid host theme onto the folder-editor page shell so White mode can force light editor chrome and action-bar surfaces instead of falling back to dark defaults. - Fix: Carry modern folder-editor bootstrap state through `window.name` in addition to query, hash, and storage fallback paths so existing folder edits survive more navigation flows. - Quality: Show live bootstrap diagnostics in the modern editor shell so missing folder target state is visible immediately instead of silently opening as a blank new folder. ###2026.03.25.42 - Fix: Modern folder editor now carries folder bootstrap data through query, hash, storage, and `window.name` fallback so editing an existing folder is more resilient when Unraid navigation strips route state. - Fix: White-theme folder editor chrome, live panel, and action bar now inherit explicit light tokens from the active Unraid host theme instead of falling back to dark header/footer surfaces. - Quality: Added visible folder-editor bootstrap diagnostics plus stronger route guard coverage so missing target state is obvious instead of silently opening in blank new-folder mode. ###2026.03.25.41 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.25.40 - Maintenance: Update folder editor runtime security guard. ###2026.03.25.39 - Maintenance: Update release notes for theme resolver rollout. - Maintenance: Update theme runtime guard for shared resolver. ###2026.03.25.38 - UX: Detect and adapt to the active Unraid host theme across settings, dashboard, Docker, VMs, and the folder editor. - Fix: Rework folder editor chrome and preview surfaces to stay readable under light host themes, including Unraid White. - Quality: Add shared theme-resolver coverage and theme-matrix smoke checks for the folder editor. ###2026.03.25.37 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.25.36 - Fix: Fix release notes for dashboard rail style update. ###2026.03.25.35 - UX: Removed the boxed chrome from dashboard widget action-rail buttons for Docker and VM widgets. - Quality: Added regression coverage so dashboard quick-action rails stay borderless. ###2026.03.25.34 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. - Docs: Updated project documentation to match the latest behavior. ###2026.03.25.33 - Maintenance: Align VM preview row centering. ###2026.03.25.32 - Maintenance: Tighten settings search and dropdown hover behavior. ###2026.03.25.31 - UX: Keep the settings search field tight to the Basic/Advanced mode toggle and right-align the advanced-scope checkbox. - UX: Recenter Docker preview cards within folder rows for cleaner single-row and multi-row alignment. - Quality: Update layout smoke coverage for the revised search placement and preview centering rules. ###2026.03.25.30 - Maintenance: Refine settings search alignment and preview centering. ###2026.03.25.29 - Maintenance: Sync stable main packaging and beta-channel removal back into dev. ###2026.03.25.28 - Fix: Fix shellcheck issue in main history guard. - Maintenance: Remove beta release channel support. ###2026.03.25.27 - Maintenance: Recenter single-row docker preview cards. ###2026.03.25.26 - Maintenance: Lift multi-row docker preview cards for centering. - Maintenance: Build dev package 2026.03.25.23. - Maintenance: Center docker cards in multi-row preview rows. - Maintenance: Build dev package 2026.03.25.22. - Maintenance: Keep settings search left of mode toggle. - Maintenance: Build dev package 2026.03.25.21. ###2026.03.25.25 - Maintenance: Build dev package 2026.03.25.23. - Maintenance: Center docker cards in multi-row preview rows. - Maintenance: Build dev package 2026.03.25.22. - Maintenance: Keep settings search left of mode toggle. - Maintenance: Build dev package 2026.03.25.21. - Fix: Fix multi-row measurement and settings search layout. ###2026.03.25.24 - Docker multi-row preview rows keep the corrected wrap behavior while removing the low card offset. ###2026.03.25.23 - Maintenance: Center docker cards in multi-row preview rows. ###2026.03.25.22 - Maintenance: Keep settings search left of mode toggle. ###2026.03.25.21 - Fix: Fix multi-row measurement and settings search layout. ###2026.03.25.20 - Maintenance: Match multi-row row geometry to single-row. ###2026.03.25.19 - Maintenance: Center multi-row preview items within rows. ###2026.03.25.18 - Maintenance: Restyle alerts chips to match status pills. ###2026.03.25.17 - Maintenance: Use wrapped row positions for multi-row previews. ###2026.03.25.16 - Maintenance: Match multi-row wrapping to single-row flow. ###2026.03.25.15 - Maintenance: Align multi-row preview wrapping with single-row. ###2026.03.25.14 - Fix: Fix preview row wrapping and status info icon. ###2026.03.25.13 - Maintenance: Clamp multi-row preview rows by width and item cap. ###2026.03.25.12 - Fix: Fix divider width budgeting and hover visibility. ###2026.03.25.11 - Fix: Fix multi-row preview wrap width budgeting. ###2026.03.25.10 - Maintenance: Restore preview row layout and keep WebUI placeholders. ###2026.03.25.09 - Maintenance: Use hidden WebUI placeholders for multi-row bars. ###2026.03.25.08 - Maintenance: Scope preview bar alignment to multi-row only. ###2026.03.25.07 - Maintenance: Narrow preview bar alignment to action strips. ###2026.03.25.06 - Maintenance: Reserve WebUI slots when preview bars are enabled. ###2026.03.25.05 - Maintenance: Center docker preview cells and dividers. - Maintenance: Allow GitHub PR merges in main history guard. - Maintenance: Update history guard regression expectations. - Maintenance: Allow main promotion merges in history guard. - Maintenance: Build 2026.03.25.04 release artifacts. - Fix: Fix setup assistant fallback bootstrap. ###2026.03.25.02 - UX: Refined settings and on-screen update messaging for clarity and consistency. ###2026.03.25.01 - Fix: Improved backend release-note parsing and category detection for accurate summaries. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.24.62 - Maintenance: Tighten modern rules layout and action dialog. - Maintenance: Tighten modern rules card and dialog layout. - Maintenance: Refine modern rules and action dialog sizing. - Maintenance: Refine modern editor action dialog layout. - Maintenance: Tighten modern advanced editor cards. - UX: Polish modern rules/actions editor cards. ###2026.03.24.61 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.24.60 - Maintenance: Tighten modern rules card and dialog layout. - Maintenance: Refine modern rules and action dialog sizing. - Maintenance: Refine modern editor action dialog layout. - Maintenance: Tighten modern advanced editor cards. - UX: Polish modern rules/actions editor cards. - Maintenance: Standardize modern editor card sizing. ###2026.03.24.59 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.24.58 - UX: Overrode the legacy folder-row width rule for the modern Rules and Actions sections so compact advanced cards no longer inherit the old full-width shell sizing. - UX: Reduced the custom action dialog to a narrower 500px presentation and forced the dialog form to anchor left with compact field widths instead of centering in the modal. - Test: Added stronger smoke coverage for the exact Rules-section width override and the smaller action-dialog contract. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.24.57 - UX: Forced the modern Rules section card to use a compact fixed-width advanced-card layout so the regex module no longer stretches across the full editor width. - UX: Refined the custom action dialog into a narrower single-column form with left-aligned labels and fields instead of the old centered layout. - UX: Kept the modern Basic/Advanced mode toggle spacing slightly wider on the left edge so the Basic button does not crowd the outer border. - Test: Updated the modern editor smoke guard to lock the compact Rules card width override and the new custom action dialog grid contract. ###2026.03.24.56 - UX: Fixed the modern Rules card and other compact advanced cards by overriding the base full-width card contract so they render as true compact modules instead of stretching across the editor. - UX: Tightened the custom action dialog with a smaller themed layout, left-aligned form labels/fields, and a higher page position so it no longer uses the oversized centered legacy presentation. - UX: Increased left-side padding on the modern Basic/Advanced mode control so the Basic button no longer sits too close to the outer edge. - Test: Expanded modern editor smoke coverage for the compact advanced-card width override, smaller custom action dialog contract, and updated mode-control padding. ###2026.03.24.55 - UX: Polish modern rules/actions editor cards. - Maintenance: Standardize modern editor card sizing. - Maintenance: Separate modern field headers from content. - Maintenance: Move modern field headers up. - Maintenance: Refine modern field card header layout. - Maintenance: Adjust modern editor header spacing. ###2026.03.24.54 - UX: Constrained the modern Rules and Actions cards so sparse advanced controls no longer stretch across the full editor width. - UX: Restyled the `Add a custom action` trigger as a real button, fixed the custom-action wrapper overflow, and aligned the modern Basic/Advanced toggle padding symmetrically. - UX: Skinned the custom action dialog to match the active folder editor theme and moved it higher on the page instead of leaving the legacy white centered modal. - Test: Added regression coverage for the compact advanced-card sizing, themed custom-action dialog hook, and updated editor mode control padding. ###2026.03.24.53 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.24.52 - UX: Standardized the modern folder editor card grid so Preview and other sections use evenly sized modules instead of content-sized cards that drift out of alignment. - UX: Removed the special narrow modern `Folder WebUI` card width and made normal field cards stretch to a shared column contract with consistent base height. - Test: Updated the modern editor smoke guard to lock the new unified card-grid sizing contract. ###2026.03.24.51 - UX: Lowered the modern field-card content block explicitly so module titles stay visually separated from the control area instead of sharing the same vertical band. - UX: Reduced the modern card top padding again while adding explicit top padding on the content block, so titles read closer to the top-left edge and fields sit lower. - Test: Added a regression check for the modern field-card content offset contract. ###2026.03.24.50 - UX: Moved modern module titles noticeably closer to the top-left edge of each card instead of leaving them visually centered between the border and the field content. - UX: Increased the title-to-content separation further so the module heading no longer reads like it belongs inside the control area. - Test: Updated the modern field-card layout smoke guard to lock the stronger header-spacing contract. ###2026.03.24.49 - UX: Switched modern field cards to an explicit stacked header/content layout so every module title sits clearly in the top-left instead of drifting toward the control area. - UX: Increased the consistent header-to-content separation inside modern field cards without changing the fixed-height input and dropdown sizing. - Test: Added a modern editor smoke assertion for the new flex-column field-card layout contract. ###2026.03.24.48 - UX: Moved the modern editor field titles higher inside each module so the header sits closer to the top edge instead of crowding the input box. - UX: Increased the title-to-control gap in modern field cards without changing the new fixed input and dropdown heights. ###2026.03.24.47 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.24.46 - UX: Reverted the accidental module-title typography downgrade in the modern folder editor so field headers render at the original size again. - UX: Tightened the modern text and dropdown control chrome further by trimming the actual box height and inner padding instead of shrinking the labels. - Test: Updated the modern editor smoke guard to assert the restored `1rem` field-title size alongside the smaller `32px` control-height contract. ###2026.03.24.45 - UX: Restored the modern folder editor field-title text sizing after the previous pass reduced it too far. - UX: Reduced the actual text input, number input, and dropdown control height in the modern editor so labels no longer feel clipped by oversized fields. - Test: Updated the modern editor smoke guard to lock the corrected field-title size and compact control-height contract. ###2026.03.24.44 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.24.43 - UX: Tightened the modern General section so the name field no longer spans an unnecessary full-width card and text fields stay aligned to compact card widths. - UX: Narrowed modern text, number, select, and textarea controls so they stop filling cards edge-to-edge and clipping visually into section headers. - UX: Added cleaner compact sizing rules for General, Preview, and Status field cards, while keeping URL and icon rows wider where that extra width is actually useful. - Quality: Reset modern field-card class decoration before reapplying layout tags so stale wide-row classes do not survive into reopened editor sessions. ###2026.03.24.42 - UX: Removed the modern folder editor live-preview surface switch so the preview stays focused on the real row layout instead of alternate dashboard or nested mockups. - UX: Tightened General, Preview, and Status card sizing in the modern editor so compact controls stop stretching into random full-width modules. - UX: Reset icon buttons in the folder editor now render as icon-only controls with no bordered button chrome. - Quality: Updated the modern editor bootstrap shell and regression guards to match the simplified live-preview and compact-card layout contract. ###2026.03.24.41 - UX: Expanded the modern Docker and VM folder editors with richer member tools, including state filters, quick include/exclude actions for visible rows, and live member summary chips. - UX: Added inherited-default indicators and one-click `Use global` controls for key folder fields in the modern editor. - UX: Added live preview surface switching so the modern editor can preview the folder as a tab row, dashboard card, or nested child row. - UX: Tightened the modern editor chrome, preview panel, and section-card spacing so more controls stay visible higher on the page. - UX: Aligned the modern VM editor preview path with the Docker editor so both use the same preview border and row-layout contract. - Quality: Updated the modern editor bootstrap shell and regression guards so the new preview-surface and inheritance controls stay shipped and aligned with the runtime. ###2026.03.24.39 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.24.38 - UX: Reduced the extra empty space inside the modern folder editor live preview border so the row sits tighter. - UX: Increased the live preview member icon size again so previewed containers read closer to the real row. - Test: Updated live preview layout smoke coverage for the larger preview member icon contract. ###2026.03.24.37 - UX: Tightened the modern folder editor live preview so member containers sit inline to the right of the chevron with better spacing. - UX: Increased live preview member icon and text sizing so the preview row reads closer to the real Docker row. - Test: Added regression coverage for the modern live preview row alignment and member sizing contract. - Fix: Fix live preview chevron chrome. - Maintenance: Match live preview chevron to runtime sizing. ###2026.03.24.36 - UX: Tightened the modern folder editor live preview so member containers sit inline to the right of the chevron with clearer spacing. - UX: Increased live preview member icon and text sizing so the preview row matches the real runtime row more closely. - Test: Added regression coverage for the modern live preview row alignment and member sizing contract. ###2026.03.24.35 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.24.34 - UX: Removed the modern folder editor’s pending-changes summary panel from the live preview area to keep the new UI tighter and less cluttered. - UX: The modern editor still keeps dirty state in the action bar, but no longer repeats that status in a separate summary card. - Quality: Added regression coverage to keep the removed pending-changes chrome out of the modern folder editor shell. ###2026.03.24.33 - UX: Removed the folder editor recommendation that pushed users toward regex just because the regex field was empty; folders can now stay manual without showing that advisory. - UX: The “no members selected” editor message now renders as an informational blue note instead of a warning banner. - Quality: Added regression coverage for the removed regex advisory string and the new validation-banner info state. ###2026.03.24.32 - Feature: Added `Ghost`, `Pill`, and `Filled` chevron style options alongside the existing `Minimal` and `Boxed` styles in the folder editor. - UX: Docker rows, VM rows, and the modern folder editor live preview now share the same chevron style-token contract so the new styles render consistently across the real runtime and the editor preview. - Quality: Expanded chevron-style regression coverage to lock in the extended dropdown-style normalization and the new live-preview/runtime style hooks. ###2026.03.24.31 - Fix: Modern folder editor live preview now renders the chevron as display chrome instead of a real button, preventing theme button styles from overriding boxed and minimal chevron previews. - Fix: Live preview chevron color, border, and background variables now sync on the preview row itself as well as the chevron element, keeping boxed and minimal states aligned with the current editor values. - Quality: Added regression coverage to lock the non-button chevron preview markup and live chevron style-state sync into the editor runtime. ###2026.03.24.30 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.24.29 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.24.28 - Fix: Fix live preview chevron sync and nested preview borders. - Maintenance: Align live preview chevron with folder row. - Maintenance: Refresh live preview after editor resets. - Maintenance: Harden folder editor mode resolution. - Maintenance: Ignore folder editor mode query overrides. - Fix: Resolve folder editor mode on server. ###2026.03.24.27 - Fix: Modern folder editor now refreshes the live preview immediately when chevron style, chevron colors, or preview border fields change instead of waiting on the generic recalculation debounce. - Quality: Added regression coverage to keep the chevron-specific editor refresh path immediate in both the shared modern runtime and the legacy-backed editor runtime. ###2026.03.24.26 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.24.25 - Fix: Modern folder editor live preview now renders the chevron beside the folder name instead of isolating it at the far-right edge, matching the real runtime row layout more closely. - UX: Live preview chevron styling now reflects `Minimal` vs `Boxed` changes more clearly, including the active normal and hover colors used by the folder row. - Quality: Added regression coverage to lock in the live preview folder-head layout and chevron style states for the new editor. ###2026.03.24.24 - Fix: Resetting preview border defaults now refreshes the folder editor live preview immediately instead of leaving the old border styling on screen. - Fix: Resetting chevron colors now also refreshes the live preview immediately so the preview stays in sync with the saved field values. - Quality: Added regression coverage to keep folder editor reset helpers driving the live preview refresh path in both modern and legacy runtimes. ###2026.03.24.23 - Fix: Centralized Docker and VM folder editor mode resolution in the shared server helper so `Folder.page` consistently follows the saved per-type preference. - Quality: Folder.page now exposes resolved editor mode and mode source debug markers while continuing to ignore stale query-string editor overrides. - Quality: Added stronger regression coverage and browser smoke checks for Docker and VM `Use new folder settings page` toggle persistence and folder-editor mode resolution. ###2026.03.24.22 - Fix: Folder.page no longer honors query-string editor mode overrides, so stale VM or Docker tabs cannot force the wrong folder editor after the saved setting changes. - Fix: Opening a folder editor now always resolves modern vs legacy from the latest saved server-side prefs for that type, even if an older page shell still appends `editor=modern` in the URL. - Quality: Added regression coverage to keep query-based folder-editor mode overrides disabled in the shared folder editor page bootstrap. ###2026.03.24.21 - Fix: Docker, VM, and Dashboard folder editor routes no longer pass a stale page-cached `editor` override, so opening the folder editor now follows the latest saved server-side editor setting immediately. - Fix: VM folder edits now respect an unchecked `Use new folder settings page` toggle even if the VM runtime page itself was loaded before that setting changed. - Quality: Added regression coverage to keep runtime folder editor routes deferring editor-mode resolution to `Folder.page`. ###2026.03.24.20 - Fix: Folder editor mode saves now force an explicit user-choice flag server-side, so unchecking `Use new folder settings page` persists correctly even if a stale Settings page still posts the older folder-editor payload shape. - Fix: Docker and VM folder editor toggles no longer bounce back to checked on refresh just because the browser submitted `folderEditorMode` without the newer explicit-choice field. - Quality: Added regression coverage to keep the prefs endpoint upgrading folder-editor mode writes into explicit saved choices. ###2026.03.24.19 - Fix: VM folder editor pages now follow the saved VM editor setting again instead of being forced into the new editor by Docker's mode. - UX: New installs and upgrades now default both Docker and VM folder editor settings to the new editor unless the user explicitly switches back to the old editor. - Fix: Legacy editor opt-outs now persist across future upgrades through an explicit folder-editor mode preference flag for both Docker and VMs. - Quality: Added regression coverage for the new default-modern preference contract and removed the old VM-to-Docker forced-editor fallback path. ###2026.03.24.18 - Fix: VM folder editor pages now inherit the active Docker modern editor mode instead of dropping back to the legacy editor when the VM path would otherwise resolve legacy. - Fix: Folder.page now promotes VM folder editor loads to modern when Docker is already configured for the new editor, keeping both runtime tabs on the same editor experience. - Quality: Added regression coverage for the VM modern-editor fallback in the shared folder editor page bootstrap. ###2026.03.24.17 - Fix: VM folder edit routes now pass the resolved editor mode explicitly so the VMs tab opens the same new or legacy folder editor that is active for that type. - Fix: Folder.page now honors explicit editor-mode query overrides for Docker, VMs, and Dashboard folder editor entry points instead of falling back to legacy unexpectedly. - Quality: Added regression coverage so Docker, VMs, and Dashboard keep forwarding the resolved folder editor mode into the shared folder editor page. ###2026.03.24.16 - UX: Compacted the modern folder editor summary column so the right-side preview details consume less vertical space and keep the editable sections closer to the top of the page. - UX: Rearranged the modern summary into a denser two-column insights layout with narrower stat cards, side-by-side chip panels, and a tighter change summary card. - Quality: Added a regression guard so the modern folder editor keeps the compact insights grid instead of drifting back to a tall stacked summary layout. ###2026.03.24.15 - UX: Removed the Regex simulator from the modern folder editor overview so the General flow stays focused on the live preview and summary. - UX: Restyled the modern folder editor summary area with stat cards, status color chips, cleaner Docker signal pills, and a more polished change summary panel. - Fix: Updated the shared folder editor runtime so the modern overview still shows and hides Docker-specific summary chips correctly with the new chrome layout. ###2026.03.24.14 - Fix: Fix modern folder editor live preview. - Maintenance: Use legacy runtime for modern folder editor. - Fix: Fix modern folder editor bootstrap hydration. - Maintenance: Auto-reload plugin pages after version change. - Fix: Fix legacy folder editor chevron and reset controls. - Maintenance: Guard no-cache headers on plugin pages. ###2026.03.24.13 - UX: Reworked the modern folder editor section bodies into card-style panels so the new editor no longer exposes the raw legacy left-label form layout. - UX: Added per-section descriptions, wider field cards for icon, actions, regex, and member controls, and cleaner grouped list styling for nested preview and advanced options. - Fix: Updated the shared editor runtime layout enforcement so modern mode preserves the redesigned card layout instead of reapplying the legacy left-aligned row grid. ###2026.03.24.12 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.24.11 - Fix: Fix modern folder editor bootstrap hydration. - Maintenance: Auto-reload plugin pages after version change. - Fix: Fix legacy folder editor chevron and reset controls. - Maintenance: Guard no-cache headers on plugin pages. - Maintenance: Restore dedicated legacy folder editor runtime. - Maintenance: Harden legacy folder editor prefill recovery. ###2026.03.24.10 - Fix: Reworked the modern folder settings page to use the proven legacy folder-editor runtime underneath the new chrome, so existing-folder load/save behavior now comes from the same path that already works on the classic editor. - UX: The new folder settings page is now a true UI overlay on top of the shared form state instead of a second competing bootstrap path, which avoids blank-folder loads when editing existing Docker or VM folders. - Fix: Modern editor buttons now resolve their actions lazily through the legacy runtime exports, and the legacy runtime now exposes the modern top-bar actions needed by the new chrome. - Test: Updated folder-editor smoke coverage so modern mode must ship the chrome layer while still relying on the legacy runtime wiring. ###2026.03.24.09 - Fix: Modern folder editor now receives a server-resolved requested-folder bootstrap context, so editing an existing Docker or VM folder can hydrate from the saved record immediately instead of opening as a blank new-folder form. - Fix: Modern folder editor no longer hard-fails just because `folder.editor.hierarchy.js` is stale or missing; it falls back to an inline hierarchy controller so the form can still load, bind buttons, and populate parent-folder options. - UX: Existing-folder values are now applied to the new editor as soon as the page boots, before slower runtime lookups finish, which makes the modern form much more resilient during partial loads. - Fix: Added explicit modern-editor load failure reporting in the in-page validation panel so future bootstrap failures do not silently leave the redesign shell half-loaded. - Test: Added regression coverage for modern editor bootstrap context emission and the hierarchy-fallback hydration path. ###2026.03.24.08 - Fix: Added a page-version sentinel to Settings, Folder editor, Docker, VMs, and Dashboard so plugin pages force one automatic reload when the installed FolderView Plus version changes during the current browser session. - UX: This reduces the need for manual `Ctrl+Shift+F5` refreshes after updates by self-healing stale in-memory page shells on the next page load. - Test: Added security regression coverage so every plugin page must emit the version sentinel along with the no-cache guards and request-token meta tag. ###2026.03.24.07 - Fix: Restored legacy folder editor reset helpers for preview border and chevron colors, so the grouped reset buttons work again on the old form. - Fix: Legacy folder editor chevron-style normalization now accepts `boxed` and legacy chevron aliases instead of collapsing everything back to `minimal`. - Fix: Legacy folder editor now reloads and saves chevron style compatibility aliases, so reopening a folder preserves `Boxed` correctly. - Test: Added regression coverage for legacy editor reset helpers and boxed chevron compatibility on the split legacy runtime. ###2026.03.24.06 - Test: Expanded the no-cache page guard to discover plugin page entrypoints automatically instead of checking only a fixed hardcoded list. - Quality: Newly added plugin `.page` files must now emit the document no-cache headers, no-cache meta tags, and request-token meta tag or the security regression suite will fail. ###2026.03.24.05 - Fix: Legacy folder settings mode now loads a dedicated pre-redesign editor runtime instead of sharing the redesigned `folder.js` path, so the old form no longer inherits modern editor chrome and mixed save logic. - Fix: `Folder.page` now boots the modern editor stack only when `folderEditorMode` is `modern`; legacy mode skips the redesign chrome and loads `folder.legacy.js` directly. - UX: This restores a clean separation between the old and new folder settings pages while the redesigned editor continues behind the opt-in toggle. - Test: Added page-smoke and security regression coverage for the split legacy/modern editor runtime loading contract. ###2026.03.24.04 - Fix: Folder editor type detection now falls back to the page path, so legacy editor loads still resolve as Docker or VM even when the query string is incomplete or stripped by navigation. - Fix: Existing-folder editor prefill is now stored in both `sessionStorage` and `localStorage`, and the editor reads either source when recovering the clicked folder record. - UX: This gives the legacy folder settings page a more robust edit recovery path instead of dropping into a blank new-folder form when one storage/path route fails. - Test: Added regression coverage for persistent folder-editor prefill storage and the cache-busted redirect helpers. ###2026.03.24.03 - Fix: Added document-level no-cache headers and no-cache meta tags to the Settings, Folder editor, Docker, VM, and Dashboard plugin pages so updated page shells stop sticking in browser cache after installs. - Fix: Folder-editor redirects from Docker, VMs, and Dashboard now append a cache-busting query marker so opening the editor requests a fresh page document immediately after an update. - UX: This reduces the need for manual browser cache clears after plugin updates and helps newly shipped folder editor fixes show up on the next navigation instead of after a hard refresh. - Test: Added regression coverage for no-cache page guards and cache-busted folder-editor redirects. ###2026.03.24.02 - Fix: The legacy folder settings page now falls back to server-emitted editor context for `type` and requested folder id instead of depending only on the URL query string. - Fix: Existing-folder edits in legacy mode now resolve the saved folder record again, so the original editor loads the current name, icon, preview, chevron, and other saved settings instead of opening as a blank new-folder form. - UX: With the saved folder binding restored, the legacy submit, save-as-copy, reset, and cancel controls work through the original form flow again instead of being blocked by an empty required name field. - Test: Added editor context coverage for the server-emitted requested folder id and legacy hydration fallback path. ###2026.03.24.01 - Feature: Added a per-type settings toggle under Sort mode and view settings so Docker and VM users can choose the new folder settings page or keep the legacy editor. - Fix: The folder editor page now emits the selected editor mode before runtime bootstrap, and the redesign chrome only loads when that mode is explicitly set to `modern`. - UX: Legacy mode now stays on the original folder settings form instead of rendering a mixed old/new editor shell with modern tabs, preview chrome, and layout overrides on top. - Test: Added normalization and page-smoke coverage for the new `folderEditorMode` preference, shipped settings toggles, and modern-editor gating. ###2026.03.23.44 - Fix: The folder editor now accepts legacy folder query keys and can recover the requested folder from recent edit context even when the edit page arrives without a usable `id` in the URL. - Fix: Docker and VM create-folder routes now clear stale editor prefill so new-folder flows cannot accidentally inherit the last edited folder. - Test: Added regression coverage for legacy query-key and prefill-based folder editor recovery. ###2026.03.23.43 - Fix: Existing-folder edits now carry the clicked folder record from Docker, VMs, and Dashboard into the redesigned folder editor, so edit sessions no longer fall back to a blank new-folder form when the saved folder id cannot be resolved from `read.php` alone. - UX: The folder editor now reports when it recovered the requested folder from navigation context instead of silently opening with default values. - Test: Added regression coverage for editor navigation-prefill recovery and Dashboard edit redirects. ###2026.03.23.42 - Fix: Existing-folder edits now recover folder data from the clicked Docker, VM, or Dashboard folder before redirecting, so the redesigned editor no longer opens blank when the saved folder id cannot be resolved from `read.php` alone. - UX: The folder editor now surfaces recovered edit sessions from navigation context instead of silently falling back to a new-folder form. - Test: Added regression coverage for folder-editor navigation prefill handling in the editor runtime and Dashboard edit actions. ###2026.03.23.41 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.23.40 - Fix: Existing folder settings now hydrate from `read.php` before the member catalog request runs, so editing a saved folder no longer opens with a blank form when `read_info.php` is slow or fails. - UX: The redesigned folder editor keeps its tabbed shell while loading, but now the saved folder name, icon, preview, chevron, status, and advanced values bind immediately for edit sessions. - Test: Added regression coverage for the pre-member-catalog edit hydration order in the folder editor runtime. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.23.39 - Fix: Moved the folder editor’s section grouping, tab visibility, and old-row hiding into the dedicated chrome bootstrap so the redesigned layout no longer depends on the later editor runtime to become usable. - UX: The new folder editor now opens in `Basic`, uses real section tabs even during early bootstrap, and wires the top restore/default/suggest actions through the shared runtime hooks. - Test: Kept the shipped-folder-editor chrome contract covered so bootstrap anchors, tab controls, and grouped layout selectors stay in the package together. ###2026.03.23.38 - Fix: Reworked the folder editor chrome bootstrap so the main runtime can bind the new buttons, live preview, and mode controls instead of leaving a dead placeholder shell behind. - UX: Converted the folder editor section pills into real tabs, defaulted the editor back to `Basic` on open, and hid any leftover unsectioned legacy rows so the old flat form no longer bleeds through underneath. - Test: Expanded folder editor UI smoke coverage for tab activation, parent-folder section tagging, and shipped bootstrap control anchors. ###2026.03.23.37 - Fix: Added a dedicated `folder.editor.chrome.js` page bootstrap so the redesigned folder editor shell renders immediately instead of depending only on the later `folder.js` hydration path. - UX: The folder editor now has a guaranteed bootstrap path for the top chrome, live preview panel, grouped section shells, and sticky action bar. - Test: Added a page-contract regression check so the redesign bootstrap script and required chrome anchors stay shipped together. ###2026.03.23.35 - Fix: Moved the folder editor shell initialization earlier in the editor bootstrap so the redesigned chrome appears before the icon/member async setup runs. - Quality: Kept the new folder editor layout path idempotent so later runtime hydration can rebind controls without duplicating the editor chrome. ###2026.03.23.34 - UX: Redesigned the folder editor with a richer hero/header, grouped section cards, per-section reset/default actions, a sticky action bar, and a live folder-row preview surface. - UX: Added change summary messaging, inheritance/default indicators, compact grouped reset controls, and cleaner mobile/editor spacing for the folder settings page. - Quality: Refreshed the performance baseline after the intentional folder editor runtime growth introduced by the redesign. ###2026.03.23.33 - Feature: Added the Dashboard `Legacy` view for both Docker and VMs, expanded Docker multi-row preview capabilities, richer preview member actions, and new per-folder chevron, preview border, and divider styling controls. - Fix: Resolved Dashboard `Legacy` switching/action-rail regressions, restored boxed chevron and preview-row persistence, fixed single-row Docker/VM preview alignment, and corrected preview divider, count-clipping, and folder editor reset-control behavior. - Maintenance: Split major runtime/settings modules into smaller units, kept fatal diagnostics scoped to Settings, and expanded browser/bootstrap/theme/regression guard coverage plus release automation hardening. ###2026.03.23.32 - Fix: Tightened the folder editor inline-control layout so preview border and chevron reset buttons stay anchored beside their related fields instead of stretching or drifting across the row. - Fix: Reduced the reset buttons back to compact icon size and forced grouped control rows to ignore the editor's generic auto-margin field rules. - UX: Resetting preview border or chevron colors now triggers the normal editor recalculation flow so the change is reflected immediately. ###2026.03.23.31 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.23.30 - Fix: Reverted the last single-row Docker and VM preview alignment overrides back to the prior runtime layout so folder preview members sit in the correct vertical position again. - Fix: Removed the extra single-row preview container overrides that were stretching and shifting preview content within the folder row after recent centering experiments. - Test: Updated preview layout regressions to lock the restored single-row Docker and VM preview wrapper contract in place. ###2026.03.23.29 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Fix: Improved backend release-note parsing and category detection for accurate summaries. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.23.28 - Fix: Canonicalized legacy top-level `dropdown_style`/`chevron_style` and `preview_rows` aliases back into `settings` so existing folders no longer reopen with boxed chevrons or multi-row preview limits silently falling back to defaults. - Fix: Tightened folder editor normalization to honor both canonical and legacy chevron/preview-row keys during edit-page reloads. - Fix: Re-centered Docker and VM single-row preview members by anchoring the preview cell and stretching single-row wrappers instead of relying on the earlier broad flex alignment tweak. - Test: Expanded chevron and preview-row regressions to cover legacy alias recovery plus the new single-row preview centering contract. ###2026.03.23.27 - Fix: Fix chevron persistence and preview row centering. - Maintenance: Improve settings fatal banner diagnostics. - Maintenance: Expand settings fatal banner diagnostics. - Maintenance: Limit fatal banner to settings page. - Fix: Fix preview dividers and add fatal runtime banner. - Fix: Fix dashboard widget render and vm folder alignment. ###2026.03.23.26 - Fix: Restored Docker and VM single-row preview alignment after the last row-centering regression by switching to a narrower wrapper-level centering fix instead of the broader preview container override. - Fix: Canonicalized `preview_rows` from both `preview_rows` and legacy `previewRows` keys across the folder editor, server normalization, and Docker runtime so existing multi-row folders do not collapse back to the 1-row default. - Quality: Expanded preview persistence regression checks to cover alias-safe preview row loading plus the single-row preview wrapper centering contract. ###2026.03.23.25 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Fix: Improved backend release-note parsing and category detection for accurate summaries. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.23.24 - UX: Expanded the Settings-only fatal banner with phase, severity, category, recent-action history, richer request diagnostics, and deeper prefs normalization context in the copied support report. - UX: Added a Settings-only degraded-mode banner path so the page can stay open while clearly reporting partial bootstrap failures and affected areas. - Quality: Instrumented the Settings bootstrap and request wrappers with explicit phase/action tracking so failures are categorized more precisely without reintroducing banners on Dashboard, Docker, VMs, or the folder editor. ###2026.03.23.23 - UX: Expanded the Settings-only fatal banner with error codes, failure phase, last successful step, expandable technical details, and a one-click copy diagnostics action. - Quality: Added Settings bootstrap diagnostics for required module status, recent request outcomes, prefs normalization state, and environment snapshot data so support reports only appear when the banner is shown for a real issue. ###2026.03.23.22 - Fix: Reverted the fatal runtime banner to Settings-only so Dashboard, Docker, VMs, and the Folder editor no longer inject on-page failure panels. - Quality: Kept runtime bootstrap guards in place while removing the runtime-page fatal-banner dependency wiring and updating page-contract regressions to lock that behavior down. ###2026.03.23.21 - Fix: Restored boxed chevron preference persistence by accepting and saving both `minimal` and `boxed` dropdown style values in the folder editor and shared runtime normalizers. - Fix: Reworked Docker preview divider spacing so multi-row previews keep visible dividers, single-row dividers stay vertically centered, and action menus no longer sit flush against the divider. - UX: Added a shared fatal runtime banner across Settings, Docker, VMs, Dashboard, and the Folder editor so uncaught bootstrap/runtime failures surface a clear on-page error instead of silently breaking. - Quality: Added early bootstrap dependency guards and plugin asset load detection for page-critical runtimes, then removed the obsolete Settings-only bootstrap banner styling. ###2026.03.23.20 - Fix: Fix dashboard widget render and vm folder alignment. - Fix: Fix extracted helper bootstrap fallbacks. - Fix: Fix settings and editor lazy bootstrap ordering. - Fix: Fix settings wizard bootstrap ordering. - Maintenance: Extract dashboard wizard and editor helper modules. - Maintenance: Extract runtime support modules. ###2026.03.23.19 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.23.18 - Fix: Restored Dashboard folder cards and the widget action rail by wiring `buildFolderChildrenIndex` back into the extracted dashboard folder-match-cache runtime path. - Fix: Corrected VM folder row name-cell anchoring so folder labels no longer shift left and clip against the edge of the table. - Test: Added regression coverage for the dashboard tree-index dependency and the VM anchored name-cell layout contract. ###2026.03.23.17 - Fix: Restored Docker and VM folder rendering by correcting extracted helper modules that were falling back to an out-of-scope `root` reference during runtime bootstrap. - Fix: Hardened extracted settings and runtime support modules to resolve global window/location state safely across page contexts. - Test: Added bootstrap guards for extracted helper modules so future refactors cannot reintroduce top-level runtime aborts. ###2026.03.23.16 - Fix: Deferred settings row-details and folder-editor hierarchy module creation until their dependent runtime helpers are initialized, restoring the settings tabs/basic layout and preventing folder runtime regressions from partial script aborts. - Fix: Hardened the refactor bootstrap path so extracted helper modules no longer trigger top-level temporal-dead-zone failures during page load. - Test: Added and updated regression coverage for lazy row-details and hierarchy module bootstrap behavior. ###2026.03.23.15 - Maintenance: Extract dashboard wizard and editor helper modules. - Maintenance: Extract runtime support modules. - Maintenance: Extract dashboard quick-rail controller. - Maintenance: Build dev package 2026.03.23.10. - Refactor: Refactor settings metadata and runtime smoke guards. - Maintenance: Release main 2026.03.23.09 with dashboard and preview rollup. ###2026.03.23.14 - Fix: Deferred setup-assistant smart-detect API creation until the main settings runtime globals are ready, preventing the settings page from aborting with a false `folderviewplus.wizard.js` missing-module error. - Test: Added bootstrap coverage for the lazy wizard smart-detect path and updated smart-detect regressions to match the extracted module boundary. ###2026.03.23.13 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.23.12 - Refactor: Extracted settings support actions into `folderviewplus.actions-support.js` so the main settings runtime no longer owns the backup, rollback, import/export, diagnostics, and window-action export wall inline. - Refactor: Extracted shared Docker/VM expanded-state lifecycle and theme/viewport reflow observers into `folder.runtime.state-observers.js`, then rewired both runtimes through controller wrappers instead of duplicating sync timers and DOM lifecycle hooks. - Refactor: Extracted Docker preview member action handling into `docker.member-menu.js` and folder editor icon upload/request helpers into `folder.editor.icon-api.js` to reduce DOM/event and request plumbing inside `docker.js` and `folder.js`. - Test: Updated architecture, mobile, security, expanded-state, preview, and UI smoke regressions to follow the extracted module boundaries and keep include-order/browser-compat contracts enforced. ###2026.03.23.11 - Refactor: Extracted the Dashboard quick-rail and layout DOM controller into `dashboard.layout-quickrail.js` so `dashboard.js` no longer owns quick-rail timers, observers, or inline host plumbing directly. - Quality: Kept Dashboard business logic in `dashboard.js` behind thin controller wrappers while moving quick-rail visibility, alignment, and layout-apply state orchestration into the dedicated module. - Test: Added regression coverage for Dashboard page load order and updated layout-contract assertions to follow the extracted quick-rail controller boundary. ###2026.03.23.10 - Refactor: Extracted settings table schema and width metadata into `folderviewplus.settings-metadata.js` so the main settings runtime no longer owns the full table contract inline. - Quality: Centralized dashboard layout metadata, dashboard overflow normalization, and runtime-safe escaping/image sanitization helpers in `folderviewplus.utils.js`, then reused them across Dashboard, Docker, VM, and the folder editor. - Test: Expanded browser smoke coverage for Dashboard quick-rail layout cycling and extended theme-matrix runtime checks to inspect Docker, VM, and Dashboard surfaces for visibility and contrast regressions. - Quality: Added a main-branch history guard and wired it into CI, pre-push, and release workflows to catch fresh merge commits before release automation runs. ###2026.03.23.09 - Maintenance: Release main `2026.03.23.09` with the full `dev` rollup since main `2026.03.22.07`, including Dashboard, preview, settings, and packaging improvements. - Feature: Added a Dashboard widget `Legacy` layout for both Docker and VM widgets so each widget can show native Unraid rows without FolderView Plus grouping. - Feature: Added per-folder Docker `Preview rows` plus a richer member action sheet for preview and expanded-folder actions. - UX: Added per-folder chevron style/color controls and adjustable preview border and vertical-bar thickness for better visibility on stock Unraid themes. - Fix: Rebuilt Docker multi-row previews to resolve clipping, wrapping, spacing, status-text, and action-placement regressions, including truncated counts like `9/9 started`. - Fix: Reworked Dashboard `Legacy` transitions so they rebuild locally and keep the action rail visible while switching in or out of bypass mode. - UX: Simplified plugin settings with a fixed action bar, instant-persist table width/layout controls, and cleaner section apply indicators. - Quality: Hardened branch-aware packaging, manifest/update metadata, release validation, and regression coverage across Dashboard, preview, settings, and runtime paths. ###2026.03.23.08 - Fix: Kept the Dashboard widget action rail visible from the start of `Legacy` view exits instead of waiting for the async widget rebuild to begin. - Quality: Cleared per-widget `Legacy` transition state on failed or superseded view switches so quick-rail visibility does not get stuck. - Test: Expanded Dashboard layout regression coverage for early transition-state activation during `Legacy` view switches. ###2026.03.23.07 - Fix: Kept the Dashboard widget action rail visible during `Legacy` view transitions by tracking per-widget layout rebuild state instead of hiding the rail while cards are temporarily absent. - Quality: Hardened the Dashboard quick-rail visibility logic so it treats local widget rebuilds as an active state rather than a collapsed/empty widget. - Test: Added regression coverage for transition-in-flight handling in the Dashboard layout runtime. ###2026.03.23.06 - Fix: Reworked Dashboard widget `Legacy` transitions to restore native rows locally instead of forcing a full `loadlist()` refresh, removing the extra delay when cycling in and out of bypass mode. - Fix: Prevented one widget entering `Legacy` from short-circuiting the other widget's folder render path by scoping dashboard rebuilds to the affected type. - Test: Expanded dashboard layout regression coverage for the local `Legacy` rerender path and type-scoped widget rebuilds. ###2026.03.23.05 - Feature: Added `Legacy` as a Dashboard widget layout for Docker and VM widgets so they can show native Unraid rows without FolderView Plus folder grouping. - Quality: Persisted the new `Legacy` layout across settings, runtime normalization, and manifest-backed preferences, with a safe widget reload when switching in or out of bypass mode. - Test: Added regression coverage for `Legacy` dashboard layout normalization and runtime wiring. ###2026.03.23.04 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.23.03 - Feature: Add docker multi-row preview regression guards. ###2026.03.23.02 - UX: Refined settings and on-screen update messaging for clarity and consistency. ###2026.03.23.01 - Maintenance: Center docker multi-row preview rows. - Maintenance: Align docker multi-row metadata under name. - Fix: Fix docker multi-row wrap and status color. - Fix: Fix docker multi-row preview renderer. - Maintenance: Wrap multi-row docker previews by width. - Maintenance: Show full icon-label multi-row previews. ###2026.03.22.54 - Fix: Remove leftover multi-row preview row and wrapper minimum heights so wrapped Docker previews center off real content height instead of reserved single-row space. - UX: Tighten multi-row preview box padding and row gap so wrapped containers sit more naturally in the middle of the folder row. ###2026.03.22.53 - UX: Center multi-row Docker preview content with balanced vertical padding and tighter row height. - Fix: Reduce the top-heavy row stack bias in multi-row previews so wrapped rows sit more like the normal preview box. ###2026.03.22.52 - Fix: Stack compact multi-row Docker preview cards like the normal preview, with status and quick actions on the second line under the name. - UX: Keep multi-row preview metadata grouped beneath the name instead of inline on the first row. ###2026.03.22.51 - Fix: Measure Docker multi-row preview items at natural width so the first row fills before wrapping. - Fix: Keep compact multi-row status text on the normal text color while only the status icon uses the started/stopped color. - UX: Align multi-row preview rows to the same horizontal flow model as the normal single-row preview. ###2026.03.22.50 - Fix: Route Docker multi-row previews through the real preview renderer instead of legacy cloned markup. - Fix: Keep multi-row member names horizontal beside the icon and send quick actions into the dedicated trailing action cluster. - UX: Preserve the stable single-row preview path while keeping multi-row wrapping isolated to folders that opt into it. ###2026.03.22.49 - UX: Refined settings and on-screen update messaging for clarity and consistency. ###2026.03.22.48 - Fix: Multi-row Docker previews now fill each row by available width before wrapping instead of stopping at a fixed item count. - UX: Added light vertical row padding so wrapped preview rows sit closer to the same centered feel as the normal single-row preview. - Fix: Prevented wide folders like Plex from leaving avoidable unused space at the end of the first row before wrapping. ###2026.03.22.47 - UX: Refined settings and on-screen update messaging for clarity and consistency. ###2026.03.22.46 - Fix: Restored `Icon and label` multi-row previews to 4 items per row so two-row folders can show full sets like `8/10 started` Plex instead of clipping at 6. - UX: Centered multi-row preview wrappers and cards to match the vertical alignment of the normal single-row preview. - Fix: Kept the legacy single-row preview styling intact while only adjusting multi-row row grouping and alignment. ###2026.03.22.45 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.22.44 - UX: Reworked compact multi-row Docker preview cards into separate name, status, and action clusters so `started/stopped` and quick actions no longer collapse into one stream. - Fix: Reduced multi-row preview density for `Icon and label` mode to stop names from truncating as aggressively in folders like Plex. - UX: Aligned compact multi-row action spacing with the restored single-row preview behavior while leaving one-row folders unchanged. ###2026.03.22.43 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.22.42 - UX: Refined settings and on-screen update messaging for clarity and consistency. ###2026.03.22.41 - Refactor: Split Docker folder previews into separate single-row and compact multi-row render paths so `Preview rows > 1` no longer reuses the legacy single-row card template. - Fix: Keep single-row previews on the original richer layout while multi-row previews use a dedicated one-line compact card with normalized actions and status. - UX: Restore normal-sized icons in multi-row mode and remove the hybrid CSS tweaks that only changed some folders without producing a coherent multi-row layout. ###2026.03.22.39 - UX: Restore normal-sized preview icons in multi-row Docker mode so dense rows do not look shrunken while keeping the one-line compact layout. - Fix: Remove the overly aggressive font scaling from compact multi-row preview text so folders like Plex no longer render as the only visibly altered row. - UX: Keep multi-row density gains from the one-line layout without making preview cards feel visually undersized. ###2026.03.22.38 - UX: Convert multi-row Docker previews to a true compact row layout by collapsing the second text line, shrinking preview icons, and tightening action spacing. - Fix: Make multi-row preview cards render as single-line compact entries so enabling more than one row visibly reduces wasted height instead of repeating full-size cards. - UX: Cap multi-row preview name width so compact rows stay dense and consistent across mixed container-name lengths. ###2026.03.22.37 - UX: Add a dedicated compact density mode for multi-row Docker previews so stacked preview rows use smaller icons, tighter gaps, and reduced action spacing. - Fix: Mark multi-row and unlimited preview containers explicitly so the denser preview layout only applies when more than one row is enabled. - UX: Reduce row padding and card spacing in multi-row mode so the second preview row no longer feels like a full-height duplicate of the first. ###2026.03.22.36 - Fix: Use the normalized preview WebUI URL in the main Docker row so preview globe icons stay available when a container only exposes fallback WebUI metadata. - UX: Remove oversized row-height centering from multi-row Docker previews so rows hug their content instead of leaving extra bottom space. - Fix: Tighten wrapper and card alignment so the vertical gap between preview rows is reduced without changing the multi-row renderer. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.22.35 - Fix: Tighten multi-row Docker preview row heights and inter-row spacing so preview cards no longer leave excess bottom padding or oversized gaps between rows. - Fix: Reduce compact preview card vertical size so multi-row previews stay dense without distorting the folder row height. - Compatibility: Fall back to `TSWebUi` for preview WebUI actions when a container does not expose a standard `WebUi` value. ###2026.03.22.34 - Fix: Remove rigid preview-card minimum widths so multi-row Docker previews no longer look spaced like fixed columns. - UX: Move the left preview gutter to the row container and tighten row/card spacing so compact preview cards pack naturally. - Fix: Let preview card content shrink from the inner text block instead of forcing oversized gaps between member cards. ###2026.03.22.33 - Feature: Reintroduce `Preview rows` with a dedicated compact Docker preview renderer instead of cloned container-row markup. - Fix: Render multi-row Docker previews as stable compact cards so row count changes no longer distort spacing or collapse the tail of a row into orphaned quick-action icons. - UX: Keep the richer member action sheet while aligning nested/aggregate previews to the same compact card renderer and row-grouping logic. ###2026.03.22.32 - Fix: Roll back the experimental Docker Preview rows layout after it destabilized row spacing and clipped preview cards in the main Docker view. - UX: Restore the prior single-row Docker preview behavior while keeping the new detailed member action sheet for expanded folder members and nested preview entries. - Maintenance: Remove the unfinished Preview rows editor control until a dedicated compact preview renderer replaces the current cloned-row preview markup. ###2026.03.22.31 - Fix: Reduce Docker preview row capacity for text-heavy preview modes and prevent preview cards from shrinking so the last item in a row no longer collapses into orphaned WebUI, console, and log icons. - UX: Restore tighter single-row spacing in Docker folder previews by removing the extra wrapper margin introduced by the first explicit-row renderer. - Regression guard: Lock the new per-mode preview row capacities and no-shrink row styling into the Docker preview overflow test coverage. ###2026.03.22.30 - Fix: Rebuild Docker folder previews into explicit row groups so the Preview rows setting actually controls the visible row layout instead of depending on browser flex wrapping. - Fix: Prevent clipped container labels/icons in wide folder previews by laying out preview members in deterministic per-row slices before the overflow path. - Regression guard: Extend preview overflow tests to cover row grouping and deterministic preview-row rendering behavior. ###2026.03.22.29 - Fix: Make the new Preview rows control deterministic by capping how many Docker members render in the main row per selected row count instead of relying on browser-dependent height clipping. - UX: Clarify that Preview rows controls the main Docker row preview and leaves additional members in the folder overflow path unless Unlimited is selected. - Regression guard: Extend Docker preview overflow tests to lock the new visible-member limit behavior in place. ###2026.03.22.28 - Feature: Add per-folder Preview rows control so Docker folder previews can show multiple rows of members before clipping. - UX: Let expanded folder-member containers and nested preview members open a richer state-aware Docker action sheet with start, stop, pause, resume, restart, WebUI, console, logs, and update actions. - Regression guard: Cover the new preview-row setting, multi-row preview layout, and Docker member action-menu wiring in automated tests. ###2026.03.22.27 - Refactor: Extract shared smart-detect configuration, runtime diagnostics helpers, and Docker/VM runtime helpers out of the remaining settings/runtime monoliths. - Maintenance: Add a first-class beta/testing channel manifest and harden release automation so stable, dev, and beta metadata stay isolated and validated. - Quality: Make dead-code checks strict in release prep, centralize smart-detect thresholds and aliases, and expand import/export contract coverage for legacy and edge-case payloads. - UX: Clarify section apply behavior, clean up settings CSS debt, and strengthen theme/mobile/dashboard regression coverage with performance telemetry baked into diagnostics and wizard apply flows. ###2026.03.22.25 - UX: Remove the outdated `Mixed apply` section-header badge from settings now that the floating save pill menu is gone. - UX: Only show a section apply badge when that section truly contains save-required fields. - Regression guard: Cover the new section-header apply-badge behavior in settings bindings tests. ###2026.03.22.24 - Fix: Treat settings-table Name and Actions width controls as instant-persist settings instead of staged-save fields. - UX: Apply Sort mode and view settings column changes immediately so the Docker and VM settings tables no longer wait on the save action bar. - Regression guard: Cover the instant-persist wiring for Docker and VM column-width controls. ###2026.03.22.23 - UX: Remove the floating save pill menu from plugin settings and replace it with a simpler fixed action bar. - Fix: Keep staged save, cancel, save-and-close, and reset actions without the extra expand or overflow dock behavior. - Compatibility: Preserve compact horizontal scrolling for the settings action bar on narrow screens. ###2026.03.22.22 - UX: Replace settings-table drag-resize controls with stable Name and Actions width presets plus layout/visibility controls. - Fix: Remove fragile manual column-width handling from settings tables so columns no longer depend on click-and-drag resizing. - UX: Keep settings-table header titles centered over their columns for cleaner alignment. ###2026.03.22.21 - Fix: Change settings-table column resizing to use a guide-line drag preview and only commit widths on mouse release. - UX: Center settings-table `Name` and `Alerts` column titles so headers align with their columns again. ###2026.03.22.20 - Fix: Switched settings-table column resizing to a document-level mouse drag session so desktop drags no longer drop mid-hold. - UX: End active settings-table resize sessions when the primary mouse button is released instead of relying on pointer-capture continuity. ###2026.03.22.19 - Fix: Fix settings table column drag activation. - Fix: Fix settings table column layout drift. - Maintenance: Mark dev builds as preview channel. - Maintenance: Restore canonical plugin manifest metadata. - Maintenance: Update manifest hardening guard coverage. - Maintenance: Harden plugin manifest update metadata. ###2026.03.22.18 - Fix: Keep settings-table column drags active for the full pointer hold by capturing the resize pointer on the handle until release. - UX: Ignore unrelated pointer events during settings-table resize so long drags no longer stall mid-adjustment. ###2026.03.22.17 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.22.16 - Fix: Remove the conflicting desktop `nth-child` settings-table widths so the column runtime stops fighting old CSS rules. - UX: Make settings-table presets and resets return to a true auto-layout state instead of leaving stale custom column widths behind. - Quality: Tighten settings-column regression coverage around preset state, width-mode resets, and CSS ownership. ###2026.03.22.15 - Test: Bump the dev package again so Unraid plugin-update checks can be retested against a newer `dev` manifest version. - UX: Label the packaged dev branch description clearly as a preview/testing build that may contain bugs or regressions. ###2026.03.22.14 - Test: Bump the dev manifest and package version to verify whether Unraid can detect branch-head updates from the installed `dev` plugin URL. ###2026.03.22.13 - Fix: Restore the canonical entity-based top-level plugin manifest tag used by earlier working releases so Unraid plugin status checks stop hanging on `checking...`. - Quality: Keep branch URL hardening, but validate it against the known-good manifest format instead of rewriting the top-level plugin tag. ###2026.03.22.12 - Fix: Emit a fully literal top-level plugin manifest tag so Unraid and CA update checks never rely on XML entity expansion for `version` or `pluginURL`. - Quality: Harden release validation to fail builds when the top-level plugin metadata is malformed or points at the wrong branch. - Quality: Verify branch-specific dev/main manifest URLs stay aligned during packaging to prevent CA pull regressions. ###2026.03.22.10 - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.22.09 - Maintenance: Stabilize settings table column layout controls. - Maintenance: Release main 2026.03.22.07 with onboarding and preview rollup. - Maintenance: Fold preview detail behavior into preview mode. - Feature: Add per-folder preview member detail modes. - Maintenance: Prune superseded archive artifacts. - Maintenance: Refresh perf baseline for runtime globals. ###2026.03.22.08 - UX: Reworked Docker and VM settings table columns with width-mode controls, layout presets, and one-click reset actions. - Fix: Moved settings-table column visibility and width state into server-backed prefs and corrected default visibility handling so layouts stop snapping back or drifting. - Quality: Switched settings tables to schema-driven column definitions with regression coverage for layout controls and normalization. ###2026.03.22.06 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Fix: Improved backend release-note parsing and category detection for accurate summaries. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.22.05 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.22.04 - Maintenance: Prune superseded archive artifacts. - Maintenance: Refresh perf baseline for runtime globals. - Maintenance: Harden split settings runtime globals. - Maintenance: Update tests for split settings runtime. - Maintenance: Split settings monolith into owned modules. - Maintenance: Release main 2026.03.21.43 with smart-detect rollup notes. ###2026.03.22.03 - Maintenance: Prune superseded archive artifacts. - Maintenance: Refresh perf baseline for runtime globals. ###2026.03.22.02 - Maintenance: Update tests for split settings runtime. ###2026.03.22.01 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.21.43 - Feature: Added category-driven starter-template onboarding for fresh installs across Docker and VMs, including dropdown category counts, smarter defaults, selective deployment, and built-in icon mapping. - Feature: Added a dedicated Templates step to the Setup Assistant so new installs can create starter folders and auto-assign existing Docker/VM workloads during guided setup. - Fix: Reworked smart-detect to use deterministic per-item best-match scoring with compose/template metadata, bind paths, aliases, and expanded VM heuristics, so mixed workloads land in the correct folders more reliably. - UX: Polished setup apply/completion/failure dialogs and added confidence, match-reason, and review-needed reporting so wizard smart-assign decisions are easier to understand before merging into production. - Compatibility: Fixed plugin install description/warning copy across all shipped language packs and hardened i18n/release guards to prevent placeholder or symbol regressions. - Regression guard: Added coverage for starter-template smart selection, mixed-workload assignment, review-path behavior, helper exports, and accepted performance-baseline updates for the new wizard logic. ###2026.03.21.42 - UX: Setup assistant smart-detect now reports confidence, match reasons, and review-needed items instead of silently forcing weak matches into fallback assignment. - Fix: Expanded Docker and VM alias/heuristic coverage so template detection stays stronger for management, network, gaming, media, and utility workloads. - Regression guard: Added review-path and VM smart-detect coverage so wizard assignment and starter selection stay aligned before main merge. ###2026.03.21.41 - Fix: Smart template creation in the setup wizard now derives folders from per-item best matches instead of weaker aggregate workload guesses. - Fix: Improved starter-folder auto-assignment reliability so mixed app stacks create and use the folders they actually need. - Regression guard: Added wizard coverage to ensure smart selection stays aligned with real container-to-folder matches. ###2026.03.21.40 - Fix: Expanded smart-detect coverage for Docker starter folders so more real-world app families are recognized and auto-assigned during wizard onboarding. - Quality: Smart category selection now uses richer runtime signals, including compose stacks, template metadata, bind paths, project/support URLs, and broader fuzzy token matching. - Regression guard: Added coverage for mixed real-world workloads so media, gaming, cloud, notification, security, monitoring, and utility apps stay classified correctly. ###2026.03.21.39 - Fix: Improved setup wizard smart-detect matching so more Docker containers are auto-assigned into generated starter folders during new-install onboarding. - Quality: Smart-detect now scores compose-project names, Docker template metadata, project/support URLs, and richer runtime signals instead of relying on basic name/image tokens alone. - Quality: Added regression coverage for compose-based and template-metadata based smart-detect assignment paths. ###2026.03.21.38 - UX: Rebuilt the setup apply confirmation modal with compact metric cards, cleaner spacing, and consolidated summaries so it no longer feels stretched or cluttered. - UX: Refreshed the setup complete / partial-failure dialogs to match the same clean layout and readable grouped outcomes. - Fix: Added stronger SweetAlert overflow guards so setup summary dialogs do not show unnecessary desktop scrollbars. ###2026.03.21.37 - UX: Tightened setup-apply modal spacing and typography so the summary stays compact and readable without unnecessary vertical gaps. - UX: Added dedicated wizard modal styling to eliminate desktop scrollbar/overflow artifacts for setup confirmation and completion dialogs. - UX: Updated the setup-complete screen to the same structured summary layout used by setup apply for consistent visual quality. ###2026.03.21.36 - Fix: Restored wizard template smart-assign execution by exporting `utils.normalizeFolderMembers`, so detected Docker/VM items move into newly created starter folders. - UX: Redesigned the setup apply confirmation modal with structured summary rows, warning blocks, and clearer apply intent. - UX: Redesigned the partial-failure modal with grouped outcomes and a focused failed-task list to make retry decisions clearer. - Quality: Added a utils contract test to prevent regression where member normalization helpers are used but not exported. ###2026.03.21.35 - UX: Rewrote plugin-tab description and quick-start copy so the install summary explains core FolderView Plus capabilities more clearly. - Compatibility: Updated `folderviewplus-desc` locale text across all shipped language packs for consistent plugin-tab rendering. ###2026.03.21.34 - Fix: Plugin tab install description no longer renders the raw `folderviewplus-desc` placeholder key. - Fix: Folder editor recommendation warnings no longer show mojibake prefix symbols (safe ASCII list markers). - Compatibility: Added `folderviewplus-desc` locale key across all shipped languages to keep locale packs aligned. - Quality: Extended language-usage guard coverage to include plugin `README.md` i18n keys and prevent future drift. ###2026.03.21.33 - Feature: Added a dedicated Templates step to the Setup Assistant `new install` route for both Docker and VMs. - Feature: Added starter-template category selection, per-folder template toggles, and Smart auto-assign previews during wizard setup. - Fix: Wired template folder creation into apply flow before starter-rule generation so rule folder IDs resolve reliably. - Quality: Extended setup verification/reporting to validate starter folder presence and include template/auto-assign outcomes. ###2026.03.21.32 - Feature: Expanded Docker/VM starter template blueprints so each category has multiple logical folder options. - UX: Rebalanced category coverage to reduce single-option buckets across network/automation/database/security/utility/backup/dev/gaming/media/server/desktop. ###2026.03.21.30 - UX: Starter-template category picker now uses a dropdown menu with per-category folder counts. - UX: Improved category selector layout and mobile behavior for clearer template onboarding. ###2026.03.21.29 - Feature: Replaced `All` with `Smart` starter-template detection that auto-suggests folders from detected Docker/VM workloads. - Feature: Expanded starter-template categories and remapped folder presets so `Homelab` is no longer the same as full coverage. - UX: Restyled starter-template category chips for cleaner alignment, spacing, and active/focus clarity. ###2026.03.21.27 - Feature: add category-driven starter template picker. - Maintenance: Release main 2026.03.21.24 with template rollup notes. - Maintenance: align starter template popup options across themes. - Maintenance: rebuild dev release artifacts for 2026.03.21.22. - Maintenance: make starter template popup selectable. - Maintenance: rebuild dev release artifacts for 2026.03.21.21. ###2026.03.21.26 - Fix: Starter-template category chips in the selection popup no longer close the dialog when clicked. - UX: Category chips now support keyboard activation (Enter/Space) with proper active-state accessibility (`aria-pressed`). ###2026.03.21.25 - Feature: Added starter-template categories (`Homelab`, `Media`, `Minimal`, `Lab`) in the new-user popup. - UX: Category chips now filter the folder list live so users see only folders for the selected category before deploying. - UX: Template deployment now applies only checked folders from the active category, enabling precise pick-and-choose onboarding. - Fix: Improved starter-template popup layout with stronger category/row structure across host themes. ###2026.03.21.24 - Maintenance: Release rollup since main `2026.03.21.20`; merged all `dev` improvements through `2026.03.21.23` into `main`. - Feature: Added first-install starter-template flows for Docker and VM with one-click scaffold creation from the empty-state and quick-start panels. - Feature: Added selectable starter-template deployment so users can choose exactly which stock folders to create. - Fix: Corrected starter-template popup row alignment across themes (left-aligned, full-width options with stable checkbox/icon layout). ###2026.03.21.23 - Fix: Starter-template selection popup now forces left-aligned, full-width option rows so checkbox entries render correctly across host themes. ###2026.03.21.22 - Feature: Starter-template popup now supports checkbox selection so users can deploy only chosen templates. ###2026.03.21.21 - Feature: add fresh-install starter template quick action. ###2026.03.21.20 - Maintenance: Release rollup since main `2026.03.21.10`; merged all `dev` improvements through `2026.03.21.18` into `main`. - Performance: Reduced main-thread stalls with shared frame/idle scheduling and batched persistence across Docker, VM, dashboard, and settings paths. - Performance: Improved large-library editing with chunked member-list rendering and worker-backed regex matching in folder editor flows. - Fix: Hardened fresh-install folder flows to prevent sparse-config edit failures, new-folder typing lag, and runtime app-name truncation regressions. - Quality: Brought VM runtime behavior and guard coverage in line with Docker for folder name/dropdown handling and core folder actions. - Feature: Added fresh-install starter-template actions (Docker/VM) to auto-create stock folders with built-in icons. ###2026.03.21.19 - Feature: Added fresh-install `Templates` empty-state actions for Docker and VM to create starter folder sets in one click. - UX: Added first-run quick-path buttons for `Docker templates` and `VM templates` alongside create/import/wizard actions. - Compatibility: Starter template presets now use built-in FolderView Plus icon assets (`/images/icons/folder-*.svg`) for consistent stock visuals. - Regression guard: Expanded settings binding tests to enforce template-action wiring and starter-template helper presence. ###2026.03.21.18 - Maintenance: batch storage writes and smooth folder editor rendering. - Fix: Fix new-folder name typing lag and docker name truncation regression. - Maintenance: Improve fresh-folder editor responsiveness and defer icon manager warmup. - Maintenance: Build release artifacts for 2026.03.21.12. - Fix: Fix runtime width recovery for clipped fresh-install folder names. - Fix: Fix fresh-install folder editor with sparse folder settings. ###2026.03.21.17 - Performance: Added shared frame/idle scheduling and batched localStorage writers to reduce main-thread stalls during runtime/state updates. - Performance: Improved folder editor responsiveness with chunked member-list rendering and worker-backed regex matching on large datasets. - UX: Deferred heavy built-in icon manifest loading until picker open to keep initial settings/edit load snappy. - Quality: Expanded performance regression tests to enforce batched storage writes and large-list folder editor safeguards. ###2026.03.21.16 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.21.15 - Fix: Improved new-folder editor performance by deferring heavy recompute paths while typing and making icon-manager hydration non-blocking at load. - Fix: Hardened Docker runtime name-column recovery with post-render width reflow passes and stronger width fallback to prevent severe name truncation after folder rename/create. ###2026.03.21.14 - Fix: Reduced fresh-folder editor typing lag by skipping heavy regex/member-table recompute while typing folder name. - Fix: Added post-render Docker width reflow passes and stronger folder-name width fallback to prevent newly renamed folders collapsing to 1-2 visible characters. ###2026.03.21.13 - UX: Refined settings and on-screen update messaging for clarity and consistency. ###2026.03.21.12 - Fix: Fix runtime width recovery for clipped fresh-install folder names. ###2026.03.21.11 - Maintenance: Align VM dropdown and name-column runtime behavior with Docker. - Maintenance: Refresh perf baseline after VM parity runtime updates. - Maintenance: Align VM folder runtime behavior with Docker and add parity guards. ###2026.03.21.10 - Maintenance: Release rollup since main `2026.03.21.03`; merged all `dev` improvements through `2026.03.21.09` into `main`. - Feature: Added theme compatibility mode controls (`auto/host/safe/highcontrast`) with runtime resolver + self-heal action for Docker/VM settings. - Feature: Reworked setup wizard visual system with module-mapped card tones (`data-fv-card-tone`) and contrast tiers (`normal/high/max`) with auto-evaluation. - Feature: Added wizard accessibility controls (Focus mode + Contrast selector), expanded keyboard shortcuts (`Alt+F`, `Alt+C`), and mobile chip-row details toggles. - UX: Improved wizard readability with stronger panel/card separation, semantic status color mapping (`info/success/warning/danger/neutral`), and non-color active-state cues. - UX: Added inline "how to fix" guidance in wizard flow to reduce blocker/warning confusion and speed setup completion. - Quality: Expanded regression and guard coverage for wizard theme/contrast contracts, tone mapping, and theme matrix smoke checks. ###2026.03.21.09 - Feature: Added wizard contrast system with explicit tiers (`normal/high/max`) plus auto contrast evaluation that selects safer tiers when needed. - Feature: Added wizard quick accessibility controls (Focus mode toggle + Contrast selector) and keyboard shortcuts (`Alt+F`, `Alt+C`). - UX: Improved active/selected affordance beyond color (shape, weight, highlight rails), added inline "how to fix" guidance, and mobile chip-row detail toggles. - UX: Introduced semantic wizard status color mapping (`info/success/warning/danger/neutral`) with stronger hierarchy for step/card/readability states. - Quality: Expanded wizard regression guards in runtime/theme smoke tests and updated theme guards for tier/selector contracts. ###2026.03.21.08 - Feature: Reworked setup-wizard card theming to use explicit `data-fv-card-tone` module mapping instead of positional `nth-child` styling. - UX: Tokenized wizard panel/card backgrounds, accents, and shell surfaces to reduce hardcoded style coupling while preserving contrast-safe fallbacks. - Quality: Added guardrails/tests to prevent regression to positional tone mapping and raw card color literals. ###2026.03.21.07 - UX: Introduced multi-tone setup-wizard module styling so Environment/Mode/Bundle/Preset cards are visually distinct at a glance. - Fix: Increased contrast boundaries for wizard sidebar/header/footer and step panels to stop sections blending together. - Quality: Added regression checks for wizard accent token palette and per-card tone selector wiring. ###2026.03.21.06 - UX: Added stronger wizard module separation with tinted card surfaces, accent rails, and clearer sidebar/header panel boundaries. - Fix: Improved setup-assistant readability so sections no longer blend together under dark and light host themes. - Quality: Added regression coverage for wizard accent palette tokens and multi-card tone selectors. ###2026.03.21.05 - UX: Added stronger wizard module separation with tinted card surfaces, accent rails, and clearer sidebar/header panel boundaries. - Fix: Improved setup-assistant readability so sections no longer blend together under dark and light host themes. - Quality: Added regression coverage for wizard accent palette tokens and multi-card tone selectors. ###2026.03.21.04 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Fix: Improved backend release-note parsing and category detection for accurate summaries. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.21.03 - Maintenance: Release rollup since main `2026.03.19.29`; merged all `dev` improvements through `2026.03.21.01` into `main`. - Feature: Expanded Docker folder quick actions with icon-row `Focus/Pin/Lock` controls plus `Open all WebUIs` and `Clone folder`. - UX: `Open all WebUIs` is now folder-scoped and nested-aware with smarter runtime checks, plus popup-block guidance and manual fallback links. - Feature: Added shared Docker runtime architecture (`docker.runtime.shared.js`) with centralized state, guarded async actions, and telemetry primitives. - Feature: Added dashboard layout/view improvements including persistent layout memory, expansion memory, quick-action rail controls, and Compact Matrix mode. - Fix: Resolved dashboard/action-rail regressions (collapse sync, right-rail anchoring, short-widget overhang) across Docker and VM widgets. - Fix: Stabilized Docker table/row layout behavior (dropdown gutter, app/version clipping, compact controls, long-name handling) on desktop and mobile. - Fix: Hardened iPhone/mobile settings rendering and overflow menu bounds; removed mobile artifact/box rendering regressions. - Fix: Resolved settings-load `arguments is not defined` crash path and hardened setup-wizard theme contrast across host themes (including Dynamix White). - Performance: Improved render/refresh behavior with coalesced refreshes, queued table renders, and safer large-tree performance-mode limits. - Quality: Expanded regression/architecture coverage and strengthened release guard/smoke automation to prevent recurrence. ###2026.03.21.01 - Maintenance: Harden setup wizard contrast across themes. ###2026.03.20.14 - Maintenance: Update docker context action contract tests for i18n clone label. ###2026.03.20.13 - Refactor: Added `docker.runtime.shared.js` for Docker runtime state store, async action boundaries, context-menu adapter, and perf telemetry primitives. - Regression guard: Added architecture and visual-contract tests for Docker quick actions, shared module wiring, and layout token fallback behavior. - UX: Improved Docker runtime i18n-safe quick action labels and accessibility labels for icon-only context actions. - Compatibility: Added centralized Docker layout tokens with hard-coded fallbacks to preserve existing selector/spacing contracts. ###2026.03.20.12 - UX: Changed Docker folder click menu so `Focus`, `Pin`, and `Lock` render as icon-only quick actions on one top row. - Regression guard: Added runtime/test coverage for context quick-action strip detection and styling. ###2026.03.20.11 - Fix: Restored Docker folder rows after row-action regression that hid folder names. - UX: Moved `Focus`, `Pin/Unpin`, and `Lock/Unlock` into the top of the existing folder click menu. - Regression guard: Restored right-side dropdown gutter/padding contract to prevent Version column clipping. ###2026.03.20.10 - Feature: Added one-click folder-row quick actions for `Focus`, `Pin/Unpin`, and `Lock/Unlock` in Docker tab. - UX: Added focused-folder mode to isolate a selected folder branch (with nested-aware visibility handling). - UX: Added pinned-folder quick toggle with immediate prefs sync and reordering on refresh. - Fix: Added lock guardrail to block edit/delete/clone while locked and prevent accidental drag reorder via mover handle suppression. ###2026.03.20.09 - UX: Redesigned the Docker `Popup blocked` dialog with a cleaner, modern card layout and concise visual status chips. - UX: Improved popup guidance flow with clearer action steps, host context, and browser-specific quick help. - UX: Refined blocked-WebUI fallback list styling for easier manual opening when popup policies block tabs. ###2026.03.20.08 - Fix: Improved Docker folder `Open all WebUIs` runtime target resolution so direct folder members are resolved from live container metadata. - UX: Added popup-block warning guidance with browser-specific allow steps (Chrome/Edge, Firefox, Safari/iPhone) and host-specific instructions. - UX: Added blocked-link fallback list in the warning dialog so users can still open remaining WebUIs manually. ###2026.03.20.07 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.20.06 - Fix: Fix folder WebUI multi-open behavior and refresh perf baseline. ###2026.03.20.05 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.20.04 - Feature: Add Open All WebUIs and Clone Folder actions to Docker folder menu. - Maintenance: Bump dev release to 2026.03.20.01. - Maintenance: Improve Docker folder menu with scoped actions and branch controls. - Fix: Fix CI shellcheck SC2016 in theme runtime guard. - Maintenance: Release 2026.03.19.29 on main with full dev rollup notes. - Feature: Add regression guard for dashboard rail collapse detection. ###2026.03.20.03 - Feature: Added Docker folder menu quick actions for `Open all WebUIs` and `Clone folder`. - UX: `Open all WebUIs` now respects nested trees by targeting only direct members of the clicked folder. - Quality: Added regression coverage to keep new Docker folder context actions from drifting. ###2026.03.20.02 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.20.01 - Maintenance: Improve Docker folder menu with scoped actions and branch controls. - Fix: Fix CI shellcheck SC2016 in theme runtime guard. ###2026.03.19.29 - Feature: Added a full dashboard quick-action rail for Docker and VM widgets (layout cycle, expand/collapse all, running-only, health emphasis, compact density, reset view, and settings shortcut). - Feature: Added dashboard layout modes (Classic, Full Width, Accordion, Inset, Compact Matrix) with persisted per-widget view preferences and per-folder overflow controls. - Feature: Added dashboard expanded-folder memory so widget expansion state persists across refreshes and tab changes. - UX: Reworked the 3rd-party icon picker with Basic/Advanced modes, guided workflow sections, inline pack actions, active-filter badges, and clearer empty-state recovery. - UX: Improved nested-folder management with sibling-safe duplicate-name checks, parent default inheritance for child folders, and deeper tree integrity diagnostics. - Fix: Fixed Docker dashboard/runtime column clipping and oscillation, restored tiny dropdown chevrons, and stabilized Application/Version spacing on desktop and mobile. - Fix: Fixed iPhone/mobile settings artifacts and overflow-menu clipping by hardening touch-safe control resets and viewport-safe action-menu bounds. - Fix: Fixed dashboard quick-rail reliability for Docker and VM (anchoring, collapse sync, row alignment, and short-widget overhang containment). - Fix: Fixed plugin settings initial-load crash caused by an invalid `arguments` reference path. - Performance: Improved runtime redraw behavior with refresh coalescing, queued folder rendering, and safer performance-mode behavior for large nested trees. - Compatibility: Hardened theme/runtime token handling so started-state colors follow active themes (including light themes) without fragile inline color painting. - Regression guard: Added/expanded regression coverage for compact-matrix layout behavior, dashboard rail collapse heuristics, mobile rendering, nested-folder flows, and theme-token contracts. - Quality: Strengthened release automation and validation (guards, smoke checks, packaging checks) to reduce release-note drift and regression risk. ###2026.03.19.28 - Maintenance: Restore dashboard rail visibility while keeping widget clamp. ###2026.03.19.27 - Fix: Fix VM widget quick rail collapse sync and overhang. ###2026.03.19.26 - Fix: Fix VM quick rail anchoring on widget collapse. ###2026.03.19.25 - Fix: Fix dashboard quick rail collapse visibility and row alignment. ###2026.03.19.24 - Maintenance: Theme hardening: runtime guard, diagnostics, and live reflow. - Maintenance: Refresh performance baseline after theme token updates. ###2026.03.19.23 - Maintenance: Theme hardening: secure loaders, runtime tokens, and theme-aware started status. - Maintenance: Update advanced loader test for options-based signature. ###2026.03.19.22 - Fix: Fix settings init crash from arguments usage. - Maintenance: Tighten compact matrix inline chevron spacing. ###2026.03.19.21 - Fix: Fix compact matrix grid, tiny toggles, and right rail alignment. ###2026.03.19.20 - Fix: Fix dashboard layout persistence and compact matrix apply. - Maintenance: Refine compact matrix card layout and tiny toggle. ###2026.03.19.19 - UX: Compact Matrix now hides folder icons and shows name/status text as the primary signal for cleaner dense scanning. - Fix: Compact Matrix status line no longer clips started/stopped labels after reducing expand-toggle footprint and reserve width. - Fix: Compact Matrix card internals now reclaim icon space so row text has full width in widget mode. ###2026.03.19.18 - UX: Reduced dashboard expand-toggle controls (non-classic layouts) to tiny arrow-sized buttons. - Fix: Removed oversized toggle button chrome/background so only the compact arrow control is shown. - UX: Tightened right-side label padding to match the smaller toggle and avoid excessive spacing. ###2026.03.19.17 - Fix: Corrected Compact Matrix CSS scoping so only top-level dashboard cards are affected. - Fix: Switched Compact Matrix to a stable top-level grid container to prevent layout breakage in Dashboard and nested folder views. - Regression guard: Kept dashboard layout contracts and responsive behavior checks passing after the selector fix. ###2026.03.19.16 - Feature: Added `Compact Matrix` as a new dashboard widget layout mode for Docker and VM views. - UX: Compact Matrix now renders folders as a denser card grid with responsive 3-column desktop, 2-column tablet, and 1-column phone behavior. - Compatibility: Updated dashboard layout normalization across settings runtime, shared utils, and server prefs validation to persist `compactmatrix` safely. ###2026.03.19.15 - Feature: Added dashboard widget quick actions for `Compact density` and `Reset view` in the right-side action rail. - UX: Compact density now applies a per-widget runtime class to tighten row spacing and icon footprint for quicker scanning. - UX: `Reset view` now collapses all expanded folders and clears running-only, health emphasis, compact density, and expansion-memory state for the active widget. - Regression guard: Extended dashboard layout/runtime guards to lock these quick-action controls against regressions. ###2026.03.19.14 - Feature: Added dashboard widget quick actions for `Compact density` and `Reset view` in the right-side action rail. - UX: `Reset view` now clears running-only filter, health emphasis, compact density mode, and expanded-folder memory for the active widget. - Regression: Added dashboard layout/runtime guards for the new quick-action controls. ###2026.03.19.13 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.19.12 - Maintenance: Shrink dashboard layout icon and pin to widget top-right. ###2026.03.19.11 - Maintenance: Render dashboard layout switch inside widget body for reliability. ###2026.03.19.10 - Maintenance: Render dashboard layout switch as header icon button. ###2026.03.19.09 - Fix: Fix dashboard view switch to render only inside widget header. ###2026.03.19.08 - Maintenance: Harden dashboard quick-switch mount across Unraid header variants. ###2026.03.19.07 - Fix: Fix dashboard quick-switch mount and persist widget expansion state. ###2026.03.19.06 - Feature: Add dashboard widget view switch and persist dashboard prefs. ###2026.03.19.05 - Feature: Add dashboard layout modes, folder overflow controls, and regression guards. ###2026.03.19.04 - Quality: Docker/VM/Dashboard runtimes now coalesce rapid refresh calls and queue folder renders to prevent overlapping redraw churn. - UX: Performance mode now applies a stricter minimum live-refresh cadence and reduced-motion runtime styling. - Quality: Performance mode restores only a capped number of expanded branches on large nested trees to keep render cost predictable. ###2026.03.19.03 - UX: Folder editor now enforces duplicate-name checks by parent path (sibling scope) and suggests the next available name. - UX: New child folder creation now inherits smart defaults from the selected parent (icon/preview/color) unless the field was manually edited. - Quality: Nested tree integrity scans now include depth warnings and empty-branch detection in addition to orphan/cycle checks. - Quality: Import preview/apply now supports nested path-based ID mapping so matching parent/name paths update existing folders instead of duplicating. - Fix: Import diff now reports parent-path changes explicitly, and import summaries surface path-collision resolver notes. ###2026.03.19.02 - UX: Reworked the 3rd-party icon picker into clearer Find/Pack/Filters/Results sections with a simpler top-to-bottom flow. - UX: Added Basic/Advanced modes (Basic default), quick presets (Recent/Favorites/Most used/Folder icons), and clearer Scope/Pack labels. - UX: Replaced floating pack actions with an inline Pack actions dropdown panel to keep controls anchored and easier to understand. - UX: Added active filter badges plus one-click "Clear all filters" to recover quickly when results are empty. - Fix: Added clearer empty-state guidance and step hints so users know exactly what to do next. ###2026.03.19.01 - UX: Reworked the 3rd-party icon picker into a clearer guided flow with Find/Pack/Filters/Results sections. - UX: Added Basic/Advanced modes (Basic default), quick presets, clearer scope labels, and inline step guidance. - UX: Replaced floating pack action overlays with an in-panel Pack actions dropdown to reduce clutter and confusion. - UX: Added active filter count badges and a one-click "Clear all filters" action for faster recovery when results are empty. - Fix: Improved empty-state/help text so users get direct next-step guidance when packs or icons are filtered out. ###2026.03.18.17 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.18.16 - UX: Refined settings and on-screen update messaging for clarity and consistency. ###2026.03.18.15 - Maintenance: Simplify third-party icon picker with dropdown-driven controls. ###2026.03.18.14 - Fix: Fix oversized third-party pack action buttons in icon picker. - Maintenance: Refresh performance baseline after icon picker enhancements. ###2026.03.18.13 - Maintenance: Enhance third-party icon picker UX and metadata indexing. - Maintenance: refresh perf baseline after nested tree updates. ###2026.03.18.12 - Maintenance: expand nested tree management and mobile reorder UX. ###2026.03.18.11 - Maintenance: Harden advanced settings module loading, locking, and persistence. - Feature: Add mobile/runtime regression guards and archive retention strategy. - Fix: Fix main archive URL target for release guard. - Fix: Fix main pluginURL target for release guard. - Maintenance: Release 2026.03.18.10 on main with full dev improvement rollup. ###2026.03.18.10 - Fix: Added lightweight direct-member row recovery in Docker nested parent expansion so parent containers remain visible when expanded. - Fix: Collapse/expand and folder autostart now use the same direct-member resolver to avoid class-drift desync after import/reload. - Test: Hardened nested expansion contract checks for the direct-member resolver path. ###2026.03.18.09 - Fix: Docker nested parent expansion now resolves direct-member rows from folder membership (not only CSS classes), preventing blank parent rows and missing direct containers. - Fix: Hardened collapse/expand/autostart flows to recover direct container rows by canonical container ID when class tags drift. - Test: Added regression guards for the direct-member row recovery path in nested folder expansion. ###2026.03.18.08 - Fix: Restored mobile settings overflow (3-dot) button size to 24px while preserving touch-safe spacing. - Fix: Repositioned quick-actions popup to iPhone safe-area bounds so right-edge and bottom clipping are prevented. - Fix: Added strong tree-toggle button reset styles to stop lingering mobile settings box artifacts. ###2026.03.18.07 - Fix: Restored mobile settings overflow (3-dot) button size to 24px while keeping touch-safe spacing. - Fix: Anchored row quick-actions modal to iPhone safe-area bounds so it no longer clips on the side or bottom. - Fix: Added hard reset styles for tree toggle buttons to stop inherited mobile theme box artifacts in settings rows. ###2026.03.18.06 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.18.05 - Fix: Removed compact-mobile inline order buttons and routed row reordering through quick actions to eliminate persistent iPhone button-box artifacts. - UX: Reduced mobile 3-dot control size and constrained quick-actions modal to viewport-safe dimensions to prevent top/bottom clipping on phones. ###2026.03.18.04 - Fix: Forced compact mobile settings order and overflow controls to borderless icon buttons so inherited browser button chrome cannot paint box artifacts. - UX: Removed pseudo/button chrome fallback paths for row controls in mobile settings to avoid duplicate-outline rendering on iPhone Safari. ###2026.03.18.03 - Fix: Added mobile-only hard reset for settings row/action buttons to neutralize browser/theme button overlays that can draw ghost boxes. - UX: Disabled pseudo-element paint paths on compact settings controls to prevent duplicate border artifacts on touch devices. ###2026.03.18.02 - Fix: Stopped rendering tree-move order buttons in compact mobile settings rows to remove residual ghost button artifacts. - UX: Added fallback hard-collapse rules for hidden mobile tree-action buttons so Safari/Android cannot paint stray button outlines. ###2026.03.18.01 - Fix: Eliminated mobile settings action-button ghost boxes by hard-collapsing hidden controls in compact table mode. - UX: Normalized touch focus behavior to prevent persistent outline artifacts around order/actions and bottom action-bar buttons on mobile. ###2026.03.17.28 - Fix: Increased Docker mobile Application-column width allocation so folder names are less aggressively truncated. - UX: Relaxed Docker mobile text-width caps so longer folder names render before ellipsis while preserving Version-column clearance. ###2026.03.17.27 - UX: Made Docker runtime application sizing deterministic to stop long-name flicker between truncated and expanded states. - Fix: Enforced bounded Application-Version gap and right-side chevron padding so the compact dropdown icon no longer clips the Version column. - Performance: Debounced runtime width reflow to recompute only on real layout events including render, resize, font-load, folder-toggle, and prefs updates. - Test: Expanded browser smoke/runtime checks and CI workflow guards to validate shortest and longest row spacing with failure artifacts. - Maintenance: Hardened release-note automation fallback so placeholder text cannot ship in new CHANGES entries. ###2026.03.17.26 - Fix: Reduced oversized Application-to-Version spacing by capping overflow nudges used for Docker runtime auto-width correction. - Fix: Ignored unreliable overflow samples from near-zero label widths during transient render states to prevent accidental column inflation. - Fix: Bounded mode-stabilized width floor with estimated-width headroom so long-name protection remains without creating large persistent gaps. - Test: Expanded Docker runtime auto-width regression assertions for bounded overflow and floor-limit behavior. ###2026.03.17.25 - Fix: Eliminated Docker Application-column width thrashing that caused long names to flip between visible and truncated on refresh cycles. - Fix: Added mode-aware width floor stabilization so overflow-driven expansion persists instead of collapsing on the next auto-size pass. - Test: Added regression coverage for stabilized Docker auto-width behavior in runtime performance guards. ###2026.03.17.24 - Fix: Docker runtime app column now performs a rendered-overflow pass and expands only when folder names are actually clipped. - Fix: Long folder names remain fully visible in normal cases without globally widening the Application column. - Test: Added regression assertions for overflow-aware width adjustment (`scrollWidth`/`clientWidth`) in Docker runtime sizing. ###2026.03.17.23 - Fix: Repositioned Docker folder dropdown chevrons with extra right-side gutter spacing while keeping the button icon-sized to prevent Version-column clipping. - Feature: Added shared `runtime.column-layout.js` so Docker and VM runtimes use one auto-width/preset/CSS-var column layout engine. - Feature: Added a dedicated update helper module and new Settings action to generate force-refresh install commands for Unraid cache-bypass updates. - Quality: Added strict folder/prefs payload-shape validation at server boundaries, including explicit JSON-object enforcement for prefs writes. - Test: Extended browser smoke checks to validate Docker/VM runtime dropdown overlap metrics and capture artifacts per browser/runtime target. - Quality: Updated guard scripts so `server/lib*.php` helper modules are treated as libraries instead of mutating endpoints. ###2026.03.17.22 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Fix: Improved backend release-note parsing and category detection for accurate summaries. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.17.21 - Fix: Keep Docker folder dropdown chevron icon-sized while adding right-side gutter spacing so it no longer clips into the Version column. ###2026.03.17.20 - Fix: Increase Docker folder dropdown chevron right-side padding and width reservation to prevent clipping against the Version column. ###2026.03.17.19 - Fix: Fix Docker folder dropdown right alignment and spacing. ###2026.03.17.18 - Maintenance: Refresh performance baseline for bulk assignment overhaul. - Maintenance: Improve bulk assignment preview, selection UX, and chunked apply. ###2026.03.17.17 - Feature: Overhauled Advanced settings readability with corrected section numbering, vertical module stacking, and new left/right module gutters. - Feature: Improved nested folder behavior so parent/root folders with children can expand direct members first and then render nested child folders in order. - Feature: Added resilient quick-action fallback so nested parent previews keep WebUI, Console, and Logs actions even with legacy preview flags. - Feature: Upgraded Dashboard Docker/VM widgets with nested-folder-aware expansion, contained trays, and in-widget Docker quick actions. - Fix: Resolved settings load crash caused by bulk-assignment member normalization on some installs. - Fix: Stabilized Docker application-column auto-sizing for long and nested folder names to prevent dot-truncation regressions. - Fix: Corrected preview-border persistence so explicit border OFF/ON settings stay consistent across Docker/VM renders. - Quality: Expanded regression coverage for advanced layout, nested parent expansion order, dashboard nested rendering, and quick-action availability. - Quality: Validated release guards, install smoke, and packaging checks for this roll-up release. ###2026.03.17.15 - Feature: add side gutters to advanced settings modules. ###2026.03.17.14 - Maintenance: Restore nested parent quick actions even with legacy preview flags. ###2026.03.17.13 - Maintenance: Restore parent preview quick actions for nested docker roots. ###2026.03.17.12 - Fix: Nested parent-folder expansion now mirrors standard folder behavior by rendering direct parent members as rows. - Fix: Expanded parent folders with children now place direct members first, then render nested child folders beneath them. - Quality: Added nested expansion regression checks to prevent parent member rows from disappearing again. ###2026.03.17.11 - Fix: Expanded parent folders with nested children now show direct containers in the parent preview area. - Fix: Parent expanded state no longer clears root-level folder members when child folders exist. - Quality: Added regression coverage to lock nested parent-preview behavior during expand/collapse. ###2026.03.17.10 - Fix: Advanced section tabs now show ordered step numbering (1..N) instead of per-tab section counts. - Fix: Advanced modules are forced into a single top-down stack for easier editing and scanning. ###2026.03.17.09 - Maintenance: Advanced settings: fix tab numbering and force vertical module layout. ###2026.03.17.08 - Fix: Fix settings load crash in bulk assignment member normalization. ###2026.03.17.07 - Maintenance: Advanced UX: bulk assignment cleanup and move reliability hardening. ###2026.03.17.06 - Feature: Dashboard widget now supports nested folder cards with recursive expand/collapse for both Docker and VM folders. - Feature: Expanded Docker widget members now include quick actions for WebUI, Console, and Logs directly from the widget. - UX: Dashboard expanded trays are now constrained to the widget boundary and render in a cleaner responsive grid layout. - UX: Parent folders that only contain child folders are preserved in widget rendering so nested structures remain visible. - Fix: Dashboard expand/collapse handlers were rewritten to be nested-safe and no longer rely on top-level-only selectors. - Fix: Docker runtime app-column truncation/gap issues were corrected so folder names and nested names size more reliably. - Fix: Preview border OFF persistence and runtime rendering were stabilized for Docker/VM folder previews. - Quality: Added regression tests for nested dashboard rendering, tray containment, and widget quick-action contracts. - Quality: Strengthened release/guard coverage for this dashboard path to prevent reintroducing overflow and nested expansion regressions. ###2026.03.17.05 - Feature: Added WebUI, Console, and Logs quick-action icons for containers shown in expanded Docker dashboard folders. - UX: Styled dashboard member action icons to match compact Docker-tab quick controls. - Quality: Added regression guards for dashboard quick-action rendering and secure behavior. ###2026.03.17.04 - Fix: Dashboard widget expanded trays now stay contained inside the widget border. - Fix: Nested Docker and VM folders now render as child cards and expand/collapse correctly inside parent folders. - Fix: Dashboard folder expand handlers now resolve nested cards reliably and preserve parent folders that contain only child folders. ###2026.03.17.03 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.17.02 - Fix: Fix Docker app column name truncation in runtime rows. ###2026.03.17.01 - Fix: Reduced Docker tab gap between `Application` and `Version` by tightening auto-width baselines and recalculating only visible folder rows. - Fix: Improved Docker auto-width reflow when expanding/collapsing nested folders so the first column stays snug. - Fix: `Show preview border` now hard-disables preview borders at runtime with explicit `border-off` class overrides for Docker/VM. - UX: Improved Dashboard widget folder expansion presentation with a cleaner expanded container tray. ###2026.03.16.11 - Fix: Tighten Docker Application column sizing so the Version column sits closer while still auto-expanding for long and nested folder names. - Fix: Persist `Show preview border` correctly by forcing fresh folder/read-info payloads after save (cache-bust client reads + no-cache response headers). ###2026.03.16.10 - Fix: Fix request-guard mutation fallback and harden preview/dashboard UX. - Fix: Fix Docker app auto-width for nested long folder names. - Maintenance: sensible default settings widths and auto-size Docker app column. - Fix: Fix settings/Docker column resizer alignment and runtime rebinding. - Fix: Fix settings column resize behavior and Docker runtime header controls. - Fix: Fix settings/runtime column resizing and Docker app-column readability. ###2026.03.16.09 - Fix: Fix branch-specific plugin channels for main/dev. ###2026.03.16.08 - Fix: request-guard compatibility hardened for mutation POSTs (`prefs.php`, bulk assignment, folder create/update) by adding `_fv_request=1` + token payload fallback when headers are stripped. - Fix: server-side request guard now accepts explicit body/query mutation marker fallback in addition to `X-FV-Request`. - Fix: folder editor guarded POST helper now always includes `_fv_request` marker. - Fix: dashboard folder cards support click-to-expand behavior for both Docker and VM widgets. - Feature: preview mode now shows state icons/colors for icon-only and list previews. - Quality: added regression tests for guarded mutation payload markers and dashboard click-to-expand templates. ###2026.03.16.07 - Fix: Docker runtime Application auto-width now targets both `#docker_list` and `#docker_view` tables so nested folder names no longer get stuck at old width. - UX: Application auto-width now includes nested indentation depth when sizing, preventing deep child folder names from collapsing to ellipsis. - Compatibility: Increased safe upper bound for Docker Application auto-width to better handle long nested folder names. ###2026.03.16.06 - UX: adjusted default basic-table column spacing for clearer out-of-box layout while preserving per-user resized widths. - Compatibility: removed Docker-tab runtime drag-resize controls and switched Application column to automatic width based on folder names/nesting. - Fix: Docker Application column now expands more intelligently for long folder and nested names. ###2026.03.16.05 - Fix: settings resize handles now sit on true column boundaries (divider-aligned) instead of header-text edges. - Fix: Docker-tab header resizers now retry/rebind after table rebuilds so resize controls stay available. - Fix: Docker runtime resize handle hit-area and contrast improved for easier drag targeting. ###2026.03.16.04 - Fix: settings table drag-resize now keeps each resized column independent (no cross-column shrinking while dragging). - Fix: restored compact tiny action buttons in the settings Actions column. - Fix: Docker runtime resize handles are now more visible/reliable and re-bind after list refreshes. - Fix: Docker Application dropdown chevron now sits next to folder text with padding and no longer clips into Version. ###2026.03.16.03 - Fix: settings table column drag-resize now locks widths per-column to prevent neighboring columns from reflowing. - Fix: Docker tab runtime column resize handles now render for all desktop header columns and persist independently. - Fix: Docker Application column width now re-applies after folder render (with safer defaults) so nested folder names are readable. ###2026.03.16.02 - Fix: corrected settings table column resizing so drag direction is consistent and resizing no longer distorts neighboring columns. - Feature: added persistent drag-resize for the Docker tab Application column at runtime. - Fix: folder names now support Chinese/Unicode characters while still blocking unsafe control/path characters. - Fix: resolved Add Folder submit failures by sending guarded mutation headers/token with create/update/sync requests. - Security: request guard now accepts explicit guarded fallback in alias/untrusted-context scenarios when token bypass rules allow it. ###2026.03.16.01 - UX: Refined settings and on-screen update messaging for clarity and consistency. ###2026.03.15.09 - Maintenance: Raise total JS hard cap for perf guard. - Maintenance: Refresh perf baseline for border color compatibility fix. - Fix: Fix legacy custom folder border colors in nested views. - Fix: Fix app column width preferences for Docker and VM views. - Fix: Fix preview border toggle and update dev artifacts. - Maintenance: Sync dev release artifacts for border toggle fix. ###2026.03.15.08 - Maintenance: Raise total JS hard cap for perf guard. - Maintenance: Refresh perf baseline for border color compatibility fix. ###2026.03.15.07 - Fix: Restored folder preview border colors for legacy/custom folders where `preview_border` was stored as off but custom border colors exist. - Fix: Applied the same preview-border compatibility behavior in both Docker and VM folder renderers. - Quality: Updated folder editor + regression tests to keep legacy custom-border configs consistent and prevent this from regressing. ###2026.03.15.06 - Feature: Added per-type `Application width` controls (`Compact`, `Standard`, `Wide`) in Basic settings for both Docker and VM. - Fix: Applied runtime width preferences in Docker/VM views and reduced mobile overlap pressure in Docker update cells. - Quality: Added `appColumnWidth` normalization coverage and backup-compare diff visibility for the new preference. ###2026.03.15.05 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.15.04 - Fix: Fix preview border toggle persistence and rendering. ###2026.03.15.03 - Fix: Basic view toolbar actions now use explicit non-submit buttons so import/export/restore/clear work correctly on fresh installs. - Fix: Prevent accidental settings-form submit behavior from action buttons that could interrupt import and wizard flows. - Quality: Added regression coverage to enforce non-submit action button markup in settings. ###2026.03.15.02 - Fix: Basic view toolbar actions now use explicit non-submit buttons so import/export/restore/clear run reliably on fresh installs. - Fix: Folder table action controls now use explicit non-submit buttons to prevent accidental settings-form submits. - Quality: Added regression coverage to enforce explicit button types across settings action markup. ###2026.03.15.01 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Fix: Improved backend release-note parsing and category detection for accurate summaries. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.14.02 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.14.01 - Refactor: Refactor setup assistant into dedicated wizard runtime module. - Maintenance: Refine GitHub issue forms for current feature set and triage. - Maintenance: Enhance README with banner, screenshots, and troubleshooting guidance. - Maintenance: Normalize release guard text comparisons across line endings. ###2026.03.13.17 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Fix: Improved backend release-note parsing and category detection for accurate summaries. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.13.16 - Feature: Expanded custom icon upload endpoint with `upload`, `list`, `stats`, `rename`, and `delete` actions for full in-plugin icon management. - Feature: Added custom icon metadata index (hash, mime, dimensions, timestamps, optimization flag) with on-disk sync and quota stats. - Feature: Added duplicate-by-hash reuse and replace-by-name upload modes to reduce clutter and avoid accidental duplicates. - Security: Hardened SVG uploads with strict allowlisted elements/attributes/styles and blocked URI/event-handler vectors. - UX: Added custom icon manager UI in folder settings with searchable list, quota summary, quick-use, rename, and delete actions. - UX: Added upload preflight validation plus progress bar/cancel flow and replace/dedupe toggles in the icon editor. - Quality: Added regression coverage for new icon endpoint contracts and custom icon manager controls. ###2026.03.13.15 - Feature: Add inline fallback path for icon upload transport failures. ###2026.03.13.14 - Maintenance: Guard icon upload endpoint against empty responses. ###2026.03.13.13 - Fix: Fix icon upload JSON parsing and surface API errors cleanly. - Maintenance: gate browser smoke requirement on configured release URL. - Maintenance: make Unraid matrix requirement conditional in release workflows. ###2026.03.13.12 - Feature: Add nested folders for Docker/VM with tree-aware behavior and root-only dashboard folder rendering. - Fix: Harden legacy import compatibility for malformed schema payloads and migration edge cases. - Fix: Strengthen runtime conflict handling coverage for both install orders (FolderView Plus first or legacy plugin first). - Fix: Add backup/restore integrity contract checks to prevent rollback and metadata regressions. - Quality: Expand theme/settings matrix checks and large-library performance smoke coverage. ###2026.03.13.11 - Maintenance: lock legacy docker selector contract. - Maintenance: Document and guard legacy custom CSS/JS override compatibility. - Maintenance: Audit runtime no-op paths and add regression guards. - Feature: Add regression guard for expanded folder state persistence. - Maintenance: Refresh perf baseline after expand-state persistence updates. ###2026.03.13.10 - Fix: Persist Docker/VM folder expand state to server prefs (with localStorage fallback) so expanded folders survive tab switches. - Fix: Restore expand state using server-first precedence with nested parent safeguards to prevent default-collapse regressions. - Quality: Added runtime + prefs normalization guard coverage for expanded-state persistence across Docker and VM views. ###2026.03.13.09 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.13.08 - Maintenance: Raise total JS perf ceiling to match current baseline. - Maintenance: Refresh perf baseline after runtime expand-state memory. - Maintenance: Remember Docker/VM folder collapse state across views. ###2026.03.13.07 - Fix: Added hard fallback in Dashboard root-folder extraction so folder rendering remains active if no valid root set is detected. - Fix: Prevented Docker/VM widgets from falling back to raw all-container lists when nested parent metadata is malformed. ###2026.03.13.06 - Fix: Dashboard root-folder filter now falls back safely when parent graphs are malformed/cyclic, preventing container-only fallback in widgets. - Fix: Preserved root-only rendering path while guaranteeing folders still render instead of dropping to raw Docker list. ###2026.03.13.05 - Fix: Restored Dashboard folder widgets so root folders render correctly with nested descendants (no raw all-container fallback). - Fix: Hardened import parsing for legacy exports with oversized embedded icon payloads to avoid `update.php` HTTP 400 failures. - UX: Empty-state actions now use delegated handlers for reliable `Open Wizard` behavior; quick create now uses a validated modal input instead of a browser prompt. ###2026.03.13.04 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.13.03 - UX: Converted status breakdown pills to compact icon+count signals next to the primary status chip (alerts-style visual language). - UX: Started uses play icon + count, Paused uses pause icon + count, Stopped uses stop icon + count. - UX: Empty keeps ban icon + count for zero-member folders. ###2026.03.13.02 - UX: Unified Status chip styling so Started/Paused/Stopped now use the same stronger chip treatment as Mixed. - UX: Upgraded primary and breakdown chips with clearer borders, subtle state-tinted backgrounds, and better visual hierarchy. ###2026.03.13.01 - Feature: Added `Status detail` modes (`Simple`, `Balanced`, `Detailed`) for Docker and VM folder tables, with `Balanced` as the default. - UX: Balanced status now renders a primary chip plus compact started/paused/stopped mini-counters for faster scanning. - UX: Simple mode now shows only the primary status chip, while Detailed mode keeps trend indicators and expanded counters. - Fix: Trend indicator controls now auto-hide unless `Detailed` mode is selected to avoid misleading toggles. - Compatibility: Added persistent `status.displayMode` normalization in JS/PHP/diagnostics so legacy configs continue working without migration. ###2026.03.12.23 - UX: Removed the Basic `Parent` column for Docker/VM tables; nested hierarchy remains visible directly under folder names. - UX: Rebalanced Status, Rules, Last changed, and Pinned widths to evenly fill the reclaimed space. - UX: Left-aligned Docker `Alerts` header/cell content for cleaner row scanning next to Name. ###2026.03.12.22 - UX: Compressed desktop table spacing so columns after `Name` sit closer and `Alerts` has wider readable space. - UX: Updated Docker `Alerts` update indicator to icon-only for a cleaner, compact signal row. ###2026.03.12.21 - UX: Tightened Docker table spacing so columns sit closer to `Name` and expanded `Alerts` visibility. - UX: Switched Docker update alert from text chip to icon-only indicator (matching compact heart-style alert controls). ###2026.03.12.20 - UX: Renamed Docker table `Signals` column to `Alerts` for clearer meaning. - UX: Rebalanced desktop table widths so `Name` sits directly next to `Order` and right-side columns shift left to free space for `Alerts`. - UX: Left-aligned `Name` header/cell content for tighter scan flow and reduced visual crowding. ###2026.03.12.19 - UX: Renamed Docker table `Signals` column to `Alerts` for clearer meaning. - UX: Rebalanced desktop Basic table widths so `Name` sits tighter to `Order` and right-side columns have more usable room. - UX: Left-aligned `Name` header/cell content to reduce visual spacing and improve scan speed. ###2026.03.12.18 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.12.17 - Maintenance: Update perf hard caps to prevent stale guard failures. - Feature: Add tree controls, parent column, and tree undo banner. - Maintenance: Hide root action on root rows and simplify nested order controls. - Maintenance: Simplify nested reorder controls and fix order-column clipping. - Maintenance: Update reorder test for hierarchy-aware manual ordering. - Fix: Fix nested reorder behavior and improve nested visibility in settings. ###2026.03.12.16 - Maintenance: Update perf hard caps to prevent stale guard failures. ###2026.03.12.15 - Feature: Added nested tree controls in Basic settings (`Expand all` / `Collapse all`) for Docker and VM tables. - Feature: Added a new `Parent` column (with toggle) to show root vs parent-folder relationships directly in table view. - Fix: Added tree-state persistence and ancestor auto-expand so moved folders are focused and visible after tree operations. - Fix: Tree move now disables when no valid target exists, and quick actions hide `Move to root` when a folder is already at root. - UX: Added inline per-type tree undo banner for `Tree move` and `Move to root` with one-click restore. ###2026.03.12.14 - UX: `Move to root` now only appears for nested folders; root folders no longer show a no-op root action. - UX: Nested rows keep only hierarchy actions (`Move to root` + `Tree move`) to reduce reorder confusion. - Fix: Order column action controls now fit cleanly without clipping by tightening spacing and width behavior. ###2026.03.12.13 - UX: Nested folder rows now show only `Move to root` and `Tree move` actions to avoid confusing in-level arrow controls. - Fix: Order column spacing and sizing were tightened so tree action buttons no longer clip in Basic view. - UX: Up/down boundary message now clearly explains to use Tree move when changing hierarchy level. ###2026.03.12.12 - Fix: Nested-folder up/down arrows now reorder reliably within the same parent level and preserve subtree blocks. - UX: Basic settings now clearly shows nested folders with depth indentation and parent context under each nested row name. - Fix: Reorder feedback now reports level-boundary limits instead of silently no-oping at top/bottom of a sibling group. ###2026.03.12.11 - Feature: Added nested tree move tools in settings (`before / inside / after`) while keeping up/down manual fallback. - Feature: Added fast parent actions (`Move to root`, `Move under...`) in row controls and quick-action menus. - Fix: Added cycle and invalid-target guardrails with inline per-row reason when a move is blocked. - UX: Members column now shows direct and nested totals, and sort hint text now reflects tree-move support. ###2026.03.12.10 - Feature: Added tree move controls in settings with `before / inside / after` placement, while keeping existing up/down manual reorder fallback. - Feature: Added quick parent actions for nested folders (`Move to root` and `Move under...`) in row controls and quick-action menus. - Fix: Added cycle/invalid move guardrails with inline row error reasons when a move cannot be applied. - UX: Members column now shows direct vs nested total counts (`direct/total`) for clearer subtree visibility. ###2026.03.12.09 - Fix: Folder preview border color is now always rendered from saved folder settings for Docker/VM rows (including nested parent/child folders). - Fix: Legacy folders with `preview_border: false` now still render configured border color instead of silently dropping the outline. - Quality: Nested parent collapse rendering now reapplies saved border color after preview rebuild. ###2026.03.12.08 - Fix: Folders with missing legacy `preview_border` now default to enabled border rendering in Docker and VM runtime. - Fix: Quick-created folders now store `preview_border: true` and default border color `#afa89e`. - Fix: Saving a non-default border color now auto-enables preview border so color changes apply immediately. ###2026.03.12.07 - Fix: Folder preview border color now applies reliably after save for Docker and VM folders. - Fix: Border color is normalized with fallback `#afa89e` to avoid invalid or missing preview border color values. - Quality: Runtime now force-applies preview border style in nested Docker state transitions to prevent visual override drift. ###2026.03.12.06 - Fix: Border color control is now visible whenever preview mode is active, even if `Show preview border` is currently off. - UX: Border color fallback remains standardized at `#afa89e` (RGB 175,168,158) for predictable cross-theme behavior. - Quality: Updated editor visibility flow to avoid hidden border controls on both new and existing folders. ###2026.03.12.05 - UX: new folders now default to preview border enabled so the Border color control is visible immediately in folder editor. - UX: default preview border color is now `#afa89e` (RGB 175,168,158) for new folders and fallback values. - Fix: border reset button now restores the stable default border color instead of inheriting the current theme font color. ###2026.03.12.04 - Fix: parent Docker folders now hide aggregated preview containers while expanded to prevent duplicate rows with visible child folders. - UX: parent folders now restore aggregated preview on collapse and keep nested child folders visually outlined for clearer hierarchy. - UX: added explicit parent collapsed/expanded visual classes so only expanded top-level parents drop the preview outline. ###2026.03.12.03 - Feature: Docker parent folders now render true nested behavior (collapsed parent shows aggregated descendant containers, expanded parent reveals indented child folders instead of container rows). - Fix: Parent-folder actions now target aggregated runtime members from nested descendants, so start/stop/update actions apply correctly in nested mode. - UX: Added nested-row visibility controls for Docker (`fv-nested-hidden`) to keep child folders hidden until their parent is expanded. ###2026.03.12.02 - Fix: dev channel packages now keep `pluginURL` and archive download URLs on `/dev/` so Unraid checks updates against the dev branch. - Fix: pkg build flow now auto-detects `dev` vs `main` branch for stable builds instead of forcing `main`. - Maintenance: added `--branch` (and `FVPLUS_BUILD_BRANCH`) override support in `pkg_build.sh` for explicit channel builds. ###2026.03.12.01 - Feature: added nested folder support for Docker/VM with per-folder `Parent folder` assignment in the folder editor. - Feature: runtime folder ordering now respects parent-child trees so child folders render directly under their parent. - Fix: folder delete now safely reparents children and heals invalid/cyclic parent links server-side. - Quality: expanded utility tests for parent-id normalization and nested ordering behavior. - Maintenance: raised total JS perf budget ceiling to `1,000,000` for the nested-folder feature set. ###2026.03.11.16 - Fix: Extracted staged save/cancel dirty-state logic into `folderviewplus.dirty.js` to reduce regressions and keep behavior consistent across settings actions. - Quality: Added dedicated save/cancel behavior tests, including instant-persist reorder coverage, to harden action-bar validation. - Quality: Enforced current-version-only `What Changed` summaries (no fallback to older versions) and added release guard checks for this contract. - Quality: Expanded Unraid/theme matrix smoke support with explicit version/theme hints and required-coverage checks in CI. - Maintenance: Removed stale locale keys and tightened i18n usage guard allowlist to prevent drift. ###2026.03.11.15 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Fix: Improved backend release-note parsing and category detection for accurate summaries. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.11.14 - Feature: VM Resources now render as a single clear badge (`vCPU | GB`) with `good/warn/critical` severity. - Feature: Added VM resource thresholds in Basic settings (`warn/critical vCPU` and `warn/critical GB`). - UX: Added a VM row details drawer from `...` (desktop + mobile) for secondary details and quick actions. - UX: Improved VM empty-state onboarding with `Create VM folder`, `Import VM config`, and `Run wizard`. - Quality: Added regression coverage for VM drawer/resource controls and refreshed perf guard baseline. ###2026.03.11.13 - UX: Improved mobile compact table readability by increasing spacing between Order and Name, rebalancing column widths, and left-aligning order controls. ###2026.03.11.12 - Mobile: Rebalanced Order/Name/Actions column widths and increased spacing between Order and Name to prevent left-side crowding on small screens. ###2026.03.11.11 - UX: Refined settings and on-screen update messaging for clarity and consistency. ###2026.03.11.10 - UX: Added per-section apply-mode badges in settings (Applies instantly, Requires Save, Mixed apply) to clarify save behavior. - Fix: Added safe-mode mutation guards plus reliable delegated overflow actions on mobile, and added undo support for folder reorder/pin actions. - Performance: Added lightweight loading rows for Docker/VM/Dashboard first-paint folder rendering to improve load feedback. - Quality: Hardened release-note automation/validation to block metadata boilerplate and duplicate carryover entries. ###2026.03.11.09 - Fix: action-dock unsaved tracking now ignores instant-persist and transient controls to prevent false save/cancel prompts. - Fix: Cancel now reverts staged unsaved fields instead of forcing a full page reload. - Quality: added regression coverage for action-dock tracking and cancel binding. ###2026.03.11.08 - Feature: Overhauled Docker folder health to v2 scoring with explainable reason codes and policy-aware thresholds. - UX: Added in-row health details button with a focused health breakdown modal and one-click filter action. - Feature: Added health policy controls in settings (profile, updates mode, all-stopped mode, warn/critical thresholds). - Feature: Added per-folder health policy overrides in folder editor (profile, updates mode, all-stopped mode, critical threshold). - Quality: Expanded health normalization, diagnostics metadata, and regression tests for v2 policy compatibility. ###2026.03.11.07 - UX: Refined settings and on-screen update messaging for clarity and consistency. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.11.06 - Fix: Improved backend release-note parsing and category detection for accurate summaries. - Quality: Strengthened release automation and regression guards to prevent note drift. ###2026.03.11.05 - Maintenance: release metadata and packaging sync. ###2026.03.11.04 - Fix: Update-notes panel now removes carryover bullets already present in the prior release entry. - Maintenance: Release-note generation now scopes auto notes to commits since the previous CHANGES entry. - Quality: Added regression checks for changelog-delta extraction and release-note anchor range logic. ###2026.03.11.03 - Maintenance: Mobile compact table: order+name only and reliable overflow actions. - Fix: Fix perf ratchet CI failures and add baseline refresh safeguards. - Maintenance: Clean up settings topbar layout and restore advanced button visibility. - Maintenance: Force mobile-compact layout for settings basic table and wizard. - Fix: Fix mobile settings usability for basic table and setup wizard. - Fix: Fix perf-budget regression and publish release 2026.03.10.15. ###2026.03.11.02 - Fix: Fix perf ratchet CI failures and add baseline refresh safeguards. - Maintenance: Clean up settings topbar layout and restore advanced button visibility. - Maintenance: Force mobile-compact layout for settings basic table and wizard. - Fix: Fix mobile settings usability for basic table and setup wizard. - Fix: Fix perf-budget regression and publish release 2026.03.10.15. - Fix: Fix release guard drift and harden local pre-push prevention. ###2026.03.11.01 - Fix: Fix perf ratchet CI failures and add baseline refresh safeguards. - Maintenance: Clean up settings topbar layout and restore advanced button visibility. - Maintenance: Force mobile-compact layout for settings basic table and wizard. - Fix: Fix mobile settings usability for basic table and setup wizard. - Fix: Fix perf-budget regression and publish release 2026.03.10.15. - Fix: Fix release guard drift and harden local pre-push prevention. ###2026.03.10.19 - Fix: keep `Advanced` mode button visible on desktop by preventing mode-toggle shrink/clipping. - UX: move `Search all advanced` below the search field for a cleaner topbar layout. - UX: keep search + mode controls aligned so search sits next to Basic/Advanced on desktop. ###2026.03.10.18 - Maintenance: Force mobile-compact layout for settings basic table and wizard. - Fix: Fix mobile settings usability for basic table and setup wizard. - Fix: Fix perf-budget regression and publish release 2026.03.10.15. - Fix: Fix release guard drift and harden local pre-push prevention. - Maintenance: Improve mobile readability for settings and setup wizard. - Feature: add theme matrix smoke automation. ###2026.03.10.17 - Fix: force compact mobile layout with runtime detection for browsers that report desktop-style viewports on phones. - Fix: bind compact/mobile table rendering to runtime class so Basic columns no longer overlap on mobile. - Fix: bind setup wizard stacked layout to runtime class so wizard never renders in clipped split-pane mode on phones. ###2026.03.10.16 - Fix: improved Basic mobile usability by switching to a compact table column set and preventing status-chip overlap. - Fix: setup wizard now enforces a stacked single-column mobile layout on wider mobile CSS viewports. - Quality: kept 760px regression guards while adding a broader 1100px mobile-safety layer for real device compatibility. ###2026.03.10.15 - Fix: resolved CI/release failures by trimming mobile wizard CSS under perf ratchet limits while keeping the new mobile UX layout. - Fix: synchronized package artifacts after source updates to remove release-guard drift. - Quality: release guard now prints explicit remediation steps when packaged files are out of sync with source. - Quality: strengthened local prevention by documenting/validating git hook setup for pre-push checks. ###2026.03.10.14 - UX: overhauled mobile readability for settings and setup wizard (full-screen wizard dialog, compact step rail, and mobile-first controls layout). - UX: added a mobile wizard details toggle so sidebar summary content is collapsed by default on small screens. - Fix: synchronized packaged release artifacts with source to resolve release/quality guard failures. - Quality: improved release guard mismatch errors with explicit `pkg_build.sh` remediation guidance. - Quality: strengthened developer preflight by checking git hook activation in `scripts/doctor.sh` and documenting hook setup in `CONTRIBUTING.md`. ###2026.03.10.13 - Quality: added optional Playwright theme-matrix smoke coverage for wizard readability and interaction checks across browser/theme targets. - Compatibility: expanded theme validation to cover desktop/mobile layouts, zoom levels, focus-visible states, disabled controls, and overflow guards. - Regression guard: wired theme-matrix smoke into CI + release workflows and `release_prepare.sh`, with versioning-guard tests enforcing the new contract. ###2026.03.10.12 - Fix: Setup Assistant wizard text contrast on light themes (including Dynamix Color Themes White) is now readable. - UX: Wizard dialog now applies theme-independent text and form-control colors so readability remains stable across browser/theme combos. - Regression guard: preserved state/accent color chips while improving base text contrast. ###2026.03.10.11 - UX: import preview now shows a Trust signal (`Validated schema`, `Legacy compatibility`, or `Validation warning`) with metadata-backed reasoning. - Performance: settings now lazy-load advanced backups/templates/diagnostics data on demand while keeping core Docker/VM data fast on first load. - Compatibility: enforced legacy conflict/runtime checks for both `folder.view2` and `folder.view3` across CI + release workflows. - Quality: browser smoke matrix now includes WebKit alongside Chromium and Firefox. - Regression guard: added parser/UI/workflow tests to lock trust metadata, lazy-load boot path, and dual-legacy conflict coverage. ###2026.03.10.10 - Fix: conflict-resolved confirmation now appears reliably after uninstalling Folder View 2/3 by persisting conflict state from any conflict banner surface (Docker/VMs/Dashboard/Settings). - Compatibility: hardened conflicting-plugin detection with multi-marker runtime checks for Folder View 2 and Folder View 3. - Quality: strengthened runtime pause tracking so FolderView Plus stays paused until conflicts are cleared, then cleanly resumes with user confirmation. ###2026.03.10.09 - Maintenance: Align conflict banner actions and simplify removal guidance. - UX: Polish safe-mode actions alignment and simplify fix steps. - Maintenance: Refine safe-mode banner actions and conflict guidance. - Fix: Fix safe-mode banner clipping and improve prominence. - Maintenance: Improve runtime conflict banner guidance and actions. - Maintenance: Auto-generate CHANGES notes from commit history. ###2026.03.10.08 - UX: fixed Support Thread link alignment in the safe-mode action row so it lines up cleanly with Open Plugins. - UX: rewrote conflict-removal steps to be shorter and clearer for users performing cleanup. - Fix: conflict guidance now says to keep FolderView Plus installed, remove only the detected conflicting plugin, then refresh. - Regression guard: kept runtime banner helper assertions green after copy/layout updates. ###2026.03.10.07 - UX: aligned the **Support Thread** link with the **Open Plugins** button in the safe-mode action row. - UX: simplified conflict recovery steps to be shorter and clearer for first-time users. - Fix: recovery guidance now explicitly says to keep FolderView Plus installed and remove only the detected conflicting plugin(s). - Regression guard: updated banner helper tests for the new link/button behavior and guidance wording. ###2026.03.10.06 - UX: changed **Open Plugins** to a true button action in the safe-mode banner. - UX: kept **Support Thread** as a link and made it open in a new tab (`target="_blank" rel="noopener noreferrer"`). - Fix: updated conflict recovery steps to explicitly keep FolderView Plus installed and remove only the auto-detected conflicting plugin(s). - Regression guard: added tests to enforce new-tab support link behavior and ban old "remove FolderView Plus" wording. ###2026.03.10.05 - Fix: removed inherited `.notice` styling from the safe-mode banner that was causing clipped/overlapping text in settings. - UX: increased safe-mode title size and visual prominence for faster user recognition. - UX: refined banner typography/spacing so update-notes and page sections stack cleanly without text collisions. - Regression guard: tightened runtime-conflict banner tests to enforce dedicated banner class usage. ###2026.03.10.04 - UX: redesigned the conflict banner into a clearer safe-mode notice with plain-language explanation and recovery steps. - UX: added direct actions in the banner for Open Plugins and Support Thread to reduce recovery friction. - Fix: improved settings-surface conflict wording so it explains that settings remain available while runtime injection is paused. - Regression guard: added banner copy assertions and relaxed settings-surface test coupling to prevent false failures on wording updates. ###2026.03.10.03 - Compatibility: added runtime conflict detection for Folder View 2/3 and now safely pauses FolderView Plus runtime on Docker/VM/Dashboard when both are installed. - UX: added a settings-page warning banner when an incompatible Folder View runtime is detected. - Maintenance: updated plugin support URL to the official Unraid support thread. - Quality: pkg_build now auto-seeds a CHANGES block for the computed version to prevent release_guard failures on version bumps. ###2026.03.10.01 - Fix: wrapped Dashboard runtime script in a private scope to prevent global symbol collisions (for example `escapeHtml`) with other plugins. - Fix: preserved Dashboard Docker widget patching (`loadlist`) while isolating local helpers/constants from global namespace. - Regression guard: added security test coverage to enforce dashboard script scope wrapping. ###2026.03.09.01 - Compatibility: added Compose Manager fallback support so compose project detection works from `com.docker.compose.project`, `com.docker.compose.project.working_dir`, and `com.docker.compose.project.config_files`. - Fix: normalized Docker manager classification so compose-labeled containers are treated as `composeman` even when the manager label is missing/inconsistent. - Fix: updated folder editor and live rule matching paths to use the same compose project fallback logic for `compose_project_regex`. - Regression guard: added utility/server tests for compose manager normalization and compose label fallback matching. ###2026.03.08.25 - Compatibility: permanently hardened legacy import support for historical payload shapes from folder.view2/folder.view3, including type-wrapped legacy exports. - Fix: normalized legacy folder payloads during migration while preserving older configs for seamless upgrades. - Quality: added self-healing JSON persistence for Docker/VM folders and preferences using atomic writes plus `.lastgood` recovery snapshots. - Fix: malformed/corrupt folder or prefs files now auto-recover from last-known-good data instead of returning blank state. - Regression guard: added dedicated legacy compatibility + self-heal contract tests and CI guard script to prevent future migration breakage. ###2026.03.08.24 - Feature: upgraded folder editor validation status to explicit Ready/Warning/Blocked states with inline recommendation details. - Feature: added Smart Defaults assistant in folder editor (`Suggest defaults`) to auto-suggest icon/regex and Docker update-aware preview defaults from selected members. - Feature: added Docker editor live signal chips for compose-project detection and update coverage preview. - UX: replaced checkbox-style editor advanced toggle with Basic/Advanced mode buttons and collapsible advanced section cards. - Quality: updated performance budget guard ceiling for `folderviewplus.js` to match current feature scope while keeping byte and gzip budgets enforced. - Regression guard: expanded folder editor smoke coverage for new editor mode, validation detail, smart-defaults, and Docker signal UI hooks. ###2026.03.08.23 - UX: added richer empty-state guidance for Rules, Backups, and Templates modules (with clearer next steps and filter-specific messaging). - UX: improved bulk-assignment empty handling with disabled placeholder when no items are detected yet. - Feature: persisted column visibility toggles for Docker/VM tables and restored them on reload. - Feature: added action summary toasts with one-click "Focus folder" for imports, template apply, bulk assignment, and starter-folder creation. - Safety: shortened undo window from 30s to 10s for faster confirmation flow while keeping rollback support. - Regression guard: expanded UI smoke coverage for new table-state, empty-state, and focus-highlight UX hooks. ###2026.03.08.22 - UI polish: moved Status breakdown info button to the left side of status chips for cleaner scan order. - UI polish: left-aligned status badges/chips in the Status column. - UX polish: compacted the status breakdown button to an icon-only footprint. ###2026.03.08.20 - UI fix: increased Setup Assistant dialog size slightly for better readability while keeping the compact modal behavior. - UX fix: corrected sidebar step-state behavior so only the active step can show blocked/review states; upcoming steps now show as next. - UI polish: fixed step-state badge alignment and styling in the wizard sidebar. ###2026.03.08.19 - Reliability: finalized Setup Assistant overhaul release packaging and validation for Guided/Expert, safety modes, and retry reporting. - Maintenance: rebuilt plugin archive/checksums for the wizard overhaul update line. ###2026.03.08.18 - Feature: overhauled Setup Assistant with Guided/Expert detail modes and smart auto-detected defaults for route/mode/bundle selection. - UX: added live per-step impact delta chips, sidebar step health states (ready/warn/blocked/done), and inline blocker guidance for clearer progression. - Enhancement: added reusable wizard preset management (save/load/delete) for local setup profiles. - Reliability: added apply safety modes (`auto`, `strict`, `fast`) with strict-mode pre-apply guards and optional fast path without rollback checkpoint creation. - Reliability: added post-apply failure reporting with one-click retry for failed import/rule tasks. - Accessibility: improved wizard focus visibility, motion reduction handling, and status/live-region messaging. ###2026.03.08.17 - Wizard typography rollback: reverted Setup Assistant font-size tokens back to normal rem sizing (`1.03/1.08/1.15/1.18rem`) while keeping the improved compact modal window size. - Kept compact centered modal behavior from `2026.03.08.16` intact. - Regression guard: updated wizard font-token smoke assertion to match the reverted standard sizing. ###2026.03.08.16 - Wizard modal sizing fix: switched Setup Assistant to a centered compact dialog (`width: min(1120px, calc(100vw - 2.25rem))`, `height: min(80vh, 780px)`) instead of oversized full-window inset behavior. - Wizard typography fix: replaced uncapped min-font tokens with clamped tokens to keep text readable without over-scaling under aggressive theme root font settings. - Wizard card text fix: forced quick preset cards to wrap normally (no forced uppercase/nowrap overflow) so labels/descriptions stay readable and aligned. - Mobile guard: added explicit mobile reset for centered-dialog positioning (`top/left/transform/width/height`) under the existing mobile breakpoint. - Regression guard: expanded UI smoke checks for clamped wizard font token and compact centered dialog sizing rules. ###2026.03.08.15 - Wizard cleanup: removed redundant `Wizard path` text from the Welcome card since step flow is already represented in the sidebar. - Wizard layout polish: compacted Setup Assistant sidebar/menu sizing to reduce unused space (narrower sidebar, tighter step row spacing, denser summary card layout). - Regression guard: added UI smoke checks for compact wizard sidebar sizing rules. ###2026.03.08.13 - Wizard readability fix: enforced hard minimum text sizing tokens in Setup Assistant so wizard menu/body text does not render too small under theme/root font overrides. - Styling hardening: applied wizard-specific font-size variables across sidebar, step list, cards, chips, warnings, review, and progress text. - Regression guard: added UI smoke checks that assert wizard min-font tokens are present and wired to key wizard components. ###2026.03.08.12 - Wizard UX: added quick start bundles directly in the Welcome step (Balanced, Minimal, Power, Media Stack) with state-aware preset tracking. - Wizard navigation: sidebar steps are now clickable for faster navigation, plus a one-click `Review` footer action to jump to the final step. - Wizard review polish: added `Copy summary` action to export a full plan snapshot (route, mode, imports, rules, warnings) to clipboard for support/debug sharing. - Wizard accessibility: added keyboard shortcuts (`Alt+Left/Right` step navigation, `Ctrl+Enter` apply on review, `Ctrl+Shift+C` copy summary). - Regression guard: expanded UI smoke assertions for new wizard controls and styling hooks. ###2026.03.08.11 - UI fix: force-compact sizing for advanced module action buttons so `Add rule`, `Test rule priority`, and `Simulate all items` no longer render oversized. - Styling hardening: added high-priority button sizing overrides to prevent theme/CSS inheritance from stretching action controls. - Changelog maintenance: corrected 2026.03.08.10, 2026.03.08.09, and 2026.03.08.07 entries with proper release details. ###2026.03.08.10 - UI/UX fix: normalized oversized action buttons across Advanced modules (Auto-assignment, Runtime, Backup, and Templates). - Layout fix: prevented grid row stretch in rules/runtime sections so controls stay compact and aligned. - Consistency: standardized button sizing for Docker and VM advanced action rows. ###2026.03.08.09 - Feature: added quick profile presets (Balanced, Minimal, Power, Media Stack) for one-click Docker/VM defaults. - Feature: added Recent activity feed and toast notifications, including undo-capable action toasts. - Feature: added quick folder filters (All, Pinned, Stopped, Empty, No rules, and Docker "Has updates"). - Feature: added per-folder status breakdown modal with actionable suggestions and direct status-filter shortcut. - UX: improved first-run empty state with direct Create Folder, Import, and Wizard actions. - Safety: import flow now supports "Preview diff first" preference and a required review acknowledgement before apply. - Usability: added rule-test sample presets, inline validation hints, and stricter template-name validation. - Mobile: added touch long-press row quick actions for core folder operations. ###2026.03.08.07 - Release maintenance: synchronized manifest and changelog metadata during packaging. - No functional runtime behavior changes were introduced in this patch step. ###2026.03.08.06 - Theme compatibility hardening: scoped settings-page focus styling to plugin root container only. - Theme compatibility hardening: replaced global `body` bottom-padding rule with plugin-root scoped padding. - UX safety: wrapped settings content in `#fv-settings-root` to isolate styling from external theme engines. - Regression guard: added automated tests for theme-safe CSS selector scoping. ###2026.03.08.05 - Bug fix: hardened first-install behavior when no prior folder JSON data exists. - Reliability: sanitize error-shaped API responses before rendering folder/state tables. - UX: improved empty-state messages for fresh installs and hide-empty-folder scenarios. - Regression guard: added tests for first-run API fallback and empty-state handling. ###2026.03.08.04 - Bug fix: resolved a first-install regression that could render the Settings page blank. - Reliability: added startup safeguards so basic Docker/VM sections stay visible even if initial API calls fail. - Stability: refresh now falls back to empty/default data on first-load fetch hiccups instead of aborting UI rendering. - Regression guard: added tests to prevent future blank-first-run settings regressions. ###2026.03.08.03 - Maintenance: automated release metadata update. ###2026.03.08.02 - UI/UX fix: advanced side-by-side modules now use adaptive panel sizing instead of forcing full-height blocks. - Layout fix: advanced module grids now align cards to the top so shorter cards no longer stretch and show unnecessary blank space. - Usability fix: bulk assignment item lists now use a smaller adaptive list height with scroll only when needed. - Quality: keeps compact mode cleaner in Advanced sections while preserving default max module sizing behavior. ###2026.03.08.01 - Feature: setup wizard now uses route-aware step flow (new installs skip import unless an import file is selected). - UI/UX: added a live "What will change" summary panel in the wizard sidebar with import/settings/rules impact totals. - Usability: improved wizard import cards with format detection, file size/date metadata, and clearer migration warnings. - Safety: added an apply confirmation step with a summarized impact preview before changes are executed. - Quality: enhanced completion summary with route context and apply duration. ###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. set -e install_context="/tmp/folderview.plus-install-context" icon_status="/tmp/folderview.plus-icon-pack-status" config_dir="/boot/config/plugins/&name;" previous_version="" had_config=0 backup_count=0 custom_icon_count=0 override_count=0 if [ -f "${config_dir}/version" ] || [ -f "${config_dir}/docker.json" ] || [ -f "${config_dir}/vm.json" ] || [ -f "${config_dir}/docker.prefs.json" ] || [ -f "${config_dir}/vm.prefs.json" ] || [ -d "${config_dir}/backups" ] || [ -d "${config_dir}/images/custom" ] || [ -d "${config_dir}/styles" ] || [ -d "${config_dir}/scripts" ]; then had_config=1 fi if [ -f "${config_dir}/version" ]; then previous_version="$(cat "${config_dir}/version" | tr -cd '0-9.')" fi if [ -d "${config_dir}/backups" ]; then backup_count="$(find "${config_dir}/backups" -type f | wc -l | tr -d '[:space:]')" fi if [ -d "${config_dir}/images/custom" ]; then custom_icon_count="$(find "${config_dir}/images/custom" -type f | wc -l | tr -d '[:space:]')" fi if [ -d "${config_dir}/styles" ]; then override_count="$(find "${config_dir}/styles" -type f | wc -l | tr -d '[:space:]')" fi if [ -d "${config_dir}/scripts" ]; then script_override_count="$(find "${config_dir}/scripts" -type f | wc -l | tr -d '[:space:]')" override_count="$((override_count + script_override_count))" fi { printf 'started_at=%s\n' "$(date +%s)" printf 'previous_version=%s\n' "${previous_version}" printf 'had_config=%s\n' "${had_config}" printf 'backup_count=%s\n' "${backup_count}" printf 'custom_icon_count=%s\n' "${custom_icon_count}" printf 'override_count=%s\n' "${override_count}" } > "${install_context}" rm -f "${icon_status}" &iconPackURL; &iconPackMd5; &iconPackSha256; https://raw.githubusercontent.com/&github;/main/archive/&name;-&version;.txz &md5; &sha256; set -e install_stage="configuration" install_report="&plugdir;/scripts/install_report.sh" icon_status="/tmp/folderview.plus-icon-pack-status" scheduler_status="registered" install_failure() { exit_code=$? trap - EXIT if [ -f "${install_report}" ]; then /bin/bash "${install_report}" failure "&version;" "&iconPackVersion;" "${icon_status}" "${install_stage}" "${exit_code}" || true fi exit "${exit_code}" } trap install_failure EXIT mkdir -p /boot/config/plugins/&name;/styles mkdir -p /boot/config/plugins/&name;/scripts find /boot/config/plugins/&name; -maxdepth 1 -type f -name '&name;-[0-9]*.txz' ! -name '&name;-&version;.txz' -delete install_stage="obsolete runtime cleanup" rm -f "&plugdir;/scripts/folderviewplus.native-organizer.js" "&plugdir;/scripts/docker.member-menu.js" install_stage="icon pack activation" FVPLUS_ICON_PACK_STATUS_FILE="${icon_status}" /bin/bash "&plugdir;/scripts/install_icon_asset_pack.sh" "&iconPackVersion;" "&iconPackSha256;" install_stage="scheduled backup registration" 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 if ! /etc/rc.d/rc.crond restart >/dev/null 2>&1; then scheduler_status="registered-restart-warning" fi install_stage="version metadata" echo "&version;" > /boot/config/plugins/&name;/version install_stage="installation report" /bin/bash "${install_report}" complete "&version;" "&iconPackVersion;" "${icon_status}" "${scheduler_status}" trap - EXIT 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 /tmp/folderview.plus-assets rm -rf /boot/config/plugins/&name;