]> ###2026.06.10a - Fixed historical attribution on ZFS hosts. When each Unraid share is its own ZFS dataset, array disks were shadowed by their per-share dataset mounts (e.g. `/mnt/disk4/medien`), so spin-up activity was logged against the dataset instead of the disk and collapsed to `Other / Unattributed activity` in the history views. Activity is now attributed to the parent disk/pool, while child datasets are still watched so no events are lost. - Removed Docker `overlay2` container layers and rclone/network FUSE remotes from the disk list, so the page no longer fills with dozens of `merged` and remote "pools" on busy ZFS servers. - Recover the responsible app for very short-lived array reads (such as media-library scans touching `.plexignore`) by mapping them back through the `/mnt/user` front door instead of leaving them unattributed. ###2026.06.03a - Keep fanotify running when Unraid mount paths briefly disappear or are remounted, instead of falling back to a persistent `fanotify unavailable: [Errno 2]` warning. - Re-create the fanotify monitor after transient kernel read errors so historical attribution keeps naming real talkers instead of drifting into `Other activity`. ###2026.05.03a - Reduced collector CPU use by caching idle `fuser` scans, caching historical summaries between refreshes, and relaxing the idle event loop. - Keeps the 5 second UI refresh while avoiding full per-disk host scans on every refresh. ###2026.04.26a - Fixed collector startup after reboot on hosts where the boot-time service environment does not include `/usr/local/sbin` in `PATH`. - Resolve Unraid host commands such as `mdcmd`, `findmnt`, `fuser`, and `docker` through known system paths and degrade cleanly if one is temporarily unavailable. ###2026.04.21a - Treat Unraid 6.12+ exclusive pool-only `/mnt/user/<share>` mounts as safe in the Docker mount audit because they resolve directly to the pool and bypass shfs/FUSE. - Keep pool-only `/mnt/user` mounts as a low-severity warning when exclusive access is not active. ###2026.04.18a - Fixed light-theme readability by adding explicit light-surface and text styling for the table, history cards, and talker chips. ###2026.04.17d - Added per-disk spin-up session history rows with start time, duration, probable source, and files seen at spin-up. - Added compact per-disk temperature sparklines based on recorded history. ###2026.04.17c - Fixed the historical summary panels so the usage and timeline cards stay contained inside their parent on wide layouts. ###2026.04.17b - Added graceful handling when `python3` is missing on the host. - Shows a dependency-required state in the WebUI and guides users to install `Python 3 for UNRAID (6.11+)`. - Stops retry-spamming `nohup: failed to run command 'python3'` on hosts without the Python prerequisite. ###2026.04.17a - Improved light-theme button contrast for the main action buttons and period controls. - Degraded collector startup and fanotify failures into inline notices instead of a hard page error during install/bootstrap. ###2026.04.16c - Cleaned plugin metadata and standardized the published author as `meaning`. ###2026.04.16b - Added Community Apps release packaging with a generated public `.plg` and `.txz`. - Keeps local development installs separate from distributable releases. ###2026.04.15a - Initial release. - Adds a dedicated Disk Talkers page in the Unraid WebUI. - Collects probable disk users from file activity, live PIDs, Docker metadata, and process inspection. &packageURL; &packageMD5; set -e mkdir -p "&pluginLOC;" mkdir -p /tmp/disk.talkers if [ ! -f "&pluginLOC;/&name;.cfg" ] && [ -f "&emhttpLOC;/defaults/&name;.cfg.default" ]; then cp "&emhttpLOC;/defaults/&name;.cfg.default" "&pluginLOC;/&name;.cfg" fi chmod +x "&emhttpLOC;/scripts/collector.py" || true chmod +x "&emhttpLOC;/scripts/rc.&name;" || true chmod +x "&emhttpLOC;/event/started" || true chmod +x "&emhttpLOC;/event/stopping_svcs" || true if [ -x "&emhttpLOC;/scripts/rc.&name;" ]; then if command -v python3 >/dev/null 2>&1; then "&emhttpLOC;/scripts/rc.&name;" restart >/dev/null 2>&1 || true else "&emhttpLOC;/scripts/rc.&name;" once >/dev/null 2>&1 || true fi fi echo "" echo "----------------------------------------------------" echo " Disk Talkers installed." echo " Version: &version;" if ! command -v python3 >/dev/null 2>&1; then echo "" echo " NOTE: Python dependency missing." echo " Disk Talkers is installed, but the collector was not started." echo " Install 'Python 3 for UNRAID (6.11+)' from Community Applications," echo " then refresh the Disk Talkers page." fi echo "----------------------------------------------------" echo "" set +e if [ -x "&emhttpLOC;/scripts/rc.&name;" ]; then "&emhttpLOC;/scripts/rc.&name;" stop >/dev/null 2>&1 || true fi removepkg &packageName; >/dev/null 2>&1 || true for stale in &pluginLOC;/&name;-package-*.txz; do [ -e "$stale" ] || continue if [ "$stale" != "&pluginLOC;/&packagefile;" ]; then rm -f "$stale" fi done rm -rf "&emhttpLOC;" rm -rf "&pluginLOC;" rm -f "/boot/config/plugins/&name;.plg" echo "Disk Talkers removed."