Problem
DSH Desktop disables the stock directory-picker (auto) row — citing "the Koffi-based Host worker can exit before reporting a result inside packaged Electron" — and inserts a standalone client surface instead.
That removes ctx.directoryPicker from the host, so every host-side consumer fails: host.pickDirectory returns directory-picker-unavailable, and any plugin reading the seam breaks. Observed with dsh-remote 0.5.10: its local-pick endpoint surfaced cannot get property "directoryPicker" without inject (a raw cordis proxy throw).
The premise does not hold
Verified on a packaged Windows v0.3.0 build, from inside the Harness child process: pickNativeDirectory() spawns the Koffi dialog worker, the dialog opens, a real selection resolves the path, and an abort cleanly closes the dialog (WM_CLOSE → done → clean rejection). The stock native pick channel is functional in the desktop environment.
Fix
Keep the composition stock: drop the disable row and the client-surface insert from build/dsh-desktop.patch.yml. The stock auto row (from dsh-web-app) then mounts the native backend — ctx.directoryPicker, host.pickDirectory, and the whole seam work for every plugin unmodified, on dsh's original pick channel.
The Electron-dialog preload bridge and the client-ui patch stay unchanged, so the client surface keeps the parented Electron dialog.
Problem
DSH Desktop disables the stock
directory-picker(auto) row — citing "the Koffi-based Host worker can exit before reporting a result inside packaged Electron" — and inserts a standalone client surface instead.That removes
ctx.directoryPickerfrom the host, so every host-side consumer fails:host.pickDirectoryreturnsdirectory-picker-unavailable, and any plugin reading the seam breaks. Observed withdsh-remote0.5.10: its local-pick endpoint surfacedcannot get property "directoryPicker" without inject(a raw cordis proxy throw).The premise does not hold
Verified on a packaged Windows v0.3.0 build, from inside the Harness child process:
pickNativeDirectory()spawns the Koffi dialog worker, the dialog opens, a real selection resolves the path, and an abort cleanly closes the dialog (WM_CLOSE→done→ clean rejection). The stock native pick channel is functional in the desktop environment.Fix
Keep the composition stock: drop the disable row and the client-surface insert from
build/dsh-desktop.patch.yml. The stock auto row (from dsh-web-app) then mounts the native backend —ctx.directoryPicker,host.pickDirectory, and the whole seam work for every plugin unmodified, on dsh's original pick channel.The Electron-dialog preload bridge and the client-ui patch stay unchanged, so the client surface keeps the parented Electron dialog.