In practical DSH use cases, clicking “Reveal in File Explorer” on a delivery card is a common operation. However, on Windows, this feature suffers from a silently failing bug: the API returns HTTP 204, the UI displays “Requested to reveal in File Explorer”, but no window appears. There is no taskbar flicker, no error message, and the user receives zero feedback.
Plugin Overview¶
dsh-reveal-fix is a client-side user plugin developed by HeJian2002W. It fixes the silent failure of DSH’s “Reveal in File Explorer” feature on Windows. Because it is implemented as a user plugin, it is not affected by DSH core upgrades.
Core Features¶
The plugin replaces the revealPath method on sessionController, resolving two overlapping upstream defects:
- Fixes the path encoding issue: It replaces
pathToFileURL().href(a percent-encoded URL) with a plain Windows path (a single argv element, immediately adjacent to the comma), allowing Explorer to parse the path correctly and open the target directory instead of silently falling back to the desktop. - Fixes the hidden window issue: It changes
windowsHide: truetofalse, preventing Node from converting this option intoSTARTUPINFOwithwShowWindow = SW_HIDE, so the Explorer window actually becomes visible.
The plugin preserves fallback logic for non-Windows platforms and maintains the upstream convention: even if Explorer returns exit code 1, it is not treated as a failure.
Installation and Enabling¶
Install from GitHub (recommended):
dsh plugin --profile web add github:HeJian2002W/dsh-reveal-fix
Install from a local directory (for offline use or custom code changes):
dsh plugin --profile web add link:C:\Users\Admin\.dsh\local-plugins\dsh-reveal-fix
Uninstall:
dsh plugin --profile web remove dsh-reveal-fix
After installation, restart dsh to apply the changes.
Typical Usage¶
After installing the plugin, clicking “Reveal in File Explorer” on a delivery card should open the Explorer window normally, navigate to the corresponding file directory, and keep the window visible.
Notes¶
- Focus stealing: After both defects are fixed, the browser still reclaims foreground focus after about 1.7 seconds (even if the server-side calls Win32
SetForegroundWindowto force the window to the front, that state is also overridden within 1.7s), which can easily push the Explorer window behind the browser. This is a known residual issue. The plugin does not enable extra delay logic by default in order to avoid interfering with user operations. - Dependency file: The plugin depends on the
cordis.patch.ymlfile. - Upgrade compatibility: Because the plugin is located in
~/.dsh/local-plugins/, upgrading DSH does not affect the plugin source code, and there is no need to reapply patches. However, if upstream changes the name or semantics ofsessionController.revealPath, the plugin must be updated accordingly.
Conclusion¶
dsh-reveal-fix is a precise fix for a Windows-specific bug. As a user plugin, it resolves the silent failures in path resolution and window visibility without modifying core files. If you encounter the situation where the UI says “Requested to reveal in File Explorer” but no window appears, this plugin is recommended as the first thing to try.