Introduces a ScheduledTask mechanism that periodically calls rclone RC vfs/refresh to keep directory listing caches warm (no file downloads), with two-level config (global default + per-share override). Adds dir-refresh status badges and timestamps to the web UI shares tab and CLI status output, following the same pattern as warmup/warmed. - src/scheduler.rs: New generic ScheduledTask runner with generation-based cancellation and parse_interval() helper - src/rclone/rc.rs: Add vfs_refresh() RC API call - src/config.rs: Add DirRefreshConfig, per-share dir_refresh_interval override, effective_dir_refresh_interval() resolution method - src/config_diff.rs: Track dir_refresh_changed for hot-reload - src/daemon.rs: Track per-share last_dir_refresh timestamps (HashMap), add dir_refresh_ago_for() helper and format_ago() - src/supervisor.rs: spawn_dir_refresh() per-share background threads, called on startup and config reload - src/web/api.rs: Expose dir_refresh_active + last_dir_refresh_ago in ShareStatusResponse - src/web/pages.rs: Populate dir_refresh_active + last_dir_refresh_ago in ShareView and ShareDetailView - templates/web/tabs/shares.html: DIR-REFRESH badge (yellow=pending, green=N ago) in health column; Dir Refresh row in detail panel - templates/web/tabs/config.html: Dir Refresh section and per-share interval field in interactive config editor - src/cli/status.rs: Append Dir-Refresh suffix to mount status lines Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Description
No description provided
Languages
Rust
62.4%
Shell
24.5%
HTML
9.6%
CSS
3.5%