WSDD 2.1.0
WSDD 2.1.0 adds Linux-native project storage, automatic WSL runtime recovery, and Windows
multi-monitor DPI fixes.
Managed Native Linux Storage
- Adds the optional
WSDD-StorageWSL2 distribution based on Debian 13 slim. - Converts a selected Windows project folder into Linux-native storage under
/home/wsdd/projects/<project>. - Keeps the project accessible from its original Windows path through a symbolic link to
\\wsl.localhost\WSDD-Storage\home\wsdd\projects\<project>. - Creates and validates a ZIP snapshot before modifying the original folder.
- Uses the validated ZIP as the immutable migration source, avoiding races with live logs,
PID files, Git metadata, or other changing files. - Validates source, ZIP, temporary WSL copy, final WSL copy, UNC access, and Windows alias by
path inventory, file size, and SHA256. - Preserves the original Windows folder and backup ZIP instead of deleting them automatically.
- Reports blocked files and copy differences with the affected paths.
WSL Runtime Recovery
Docker Desktop represents WSL-backed mounts through internal
docker-desktop-bind-mounts relays that can disappear after restarting Windows, WSL, or
Docker Desktop. WSDD 2.1.0 installs the hidden scheduled task WSDD WSL Runtime Recovery when
WSL-backed projects require it.
- Runs independently from the WSDD interface.
- Triggers at logon, session unlock, Docker Desktop service events when available, and every
two minutes as a fallback. - Waits for real Docker Engine readiness before operating.
- Repairs only runtimes with an explicitly confirmed broken WSL relay.
- Recreates only affected WSL-backed volumes and the shared PHP runtime for that PHP version.
- Uses a global mutex and Task Scheduler
IgnoreNewpolicy to prevent overlapping executions. - Opens a persistent circuit after three failed reconstruction attempts to prevent destructive
retry loops. - Runs PowerShell and discovery commands without visible console windows.
Linux Runtime Permissions
- Managed projects automatically repair writable runtime directories after PHP starts.
- Native and Managed projects expose
Fix Permissionsin the project toolbox. - Preserves the Linux project owner and grants the PHP
www-datagroup access only to known
runtime directories such asstorage,var,cache,logs, andbootstrap/cache. - Applies group write access, setgid inheritance, and default ACLs.
- Excludes
.git,vendor, andnode_modules. - Verifies write access using the real
www-datauser inside the PHP container. - Never applies recursive
chmod 777to the project.
Windows Desktop
- Vendors winit 0.30.13 with the validated
WM_DPICHANGEDfix used for mixed-DPI monitor
movement. - Restores and clamps window bounds to the active monitor work area.
- Preserves maximized state without corrupting the restored window size.
Compatibility
- Existing Classic Bind, Fast Sync, and user-managed Native Linux projects continue loading.
- Classic Bind remains the recommended compatibility mode.
- Native and Managed storage provide the best filesystem performance but depend on Docker
Desktop and WSL lifecycle integration. - Existing WSL-backed projects are retained by the recovery task even when Managed Storage is
later disabled. - Migration of existing registered Classic Bind projects remains outside this release. Managed
conversion applies while adding a project from a Windows source folder.
Requirements
- Windows 10 or Windows 11 with administrator privileges.
- Docker Desktop with WSL2 backend.
- WSL 2.
- PowerShell 7.5 or newer.
- A filesystem and Windows policy that permit directory symbolic links to WSL UNC paths.
- Managed storage may install the standard Debian
aclpackage insideWSDD-Storage.
Validation
- Rust format, workspace check, Clippy with warnings denied, and the complete workspace test
suite pass. - Real Managed storage conversion was validated with Windows source folders and PHP 8.4.
- ZIP snapshot extraction was validated with a 3,026-file project.
- Runtime permission repair was validated through
www-datainside PHP 8.4. - WSL relay recovery was validated with PHP 8.3 and PHP 8.4 after Docker/WSL restart.
- Healthy repeated recovery runs preserve existing container IDs.
Assets
wsdd-2.1.0-x86_64.msiwsdd-2.1.0-x86_64.msi.sha256.txt