Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 4 additions & 9 deletions build/dsh-desktop.patch.yml
Original file line number Diff line number Diff line change
@@ -1,13 +1,8 @@
# DSH Desktop delegates directory selection to Electron's system dialog. Keep
# the renderless client surface, but do not load the Koffi-based Host worker:
# on Windows it can exit before reporting a result inside packaged Electron.
- id: directory-picker
disabled: true

# Keep the stock directory-picker (auto) row active: the native backend
# serves ctx.directoryPicker, so host-side consumers (host.pickDirectory,
# plugins reading the seam) work unmodified. The client surface keeps its
# Electron-dialog bridge via the client-ui patch in patches/.
- insert:
- id: directory-picker-electron-desktop-surface
name: '@deepseek-ai/dsh-client-ui-directory-picker-native'

# DSH Desktop owns the fixed-target dsh-market installer and its lightweight
# settings entry. After dshmarket is installed and Harness restarts, the
# community plugin replaces the placeholder with its complete market UI.
Expand Down
7 changes: 4 additions & 3 deletions test/directory-picker.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,12 @@ describe('desktop Electron directory picker', () => {
)
})

it('keeps only the client surface and removes the crashing Host worker', async () => {
it('keeps the stock picker composition: the seam comes from the stock auto row', async () => {
const desktopPatch = await readFile('build/dsh-desktop.patch.yml', 'utf8')

expect(desktopPatch).toContain("name: '@deepseek-ai/dsh-client-ui-directory-picker-native'")
expect(desktopPatch).not.toContain("name: '@deepseek-ai/dsh-host-directory-picker-native'")
// No picker rows at all - the stock auto row mounts the native backend.
expect(desktopPatch).not.toMatch(/id:\s*directory-picker/)
expect(desktopPatch).not.toContain('dsh-client-ui-directory-picker-native')
})

it('captures the client bridge as a reproducible dependency patch', async () => {
Expand Down
4 changes: 2 additions & 2 deletions test/release.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -114,9 +114,9 @@ describe('GitHub release contract', () => {
expect(splash).toContain('Starting DSH Desktop')
expect(splash).toContain('src="dsh-loader.gif"')
expect(splash).not.toContain('class="track"')
expect(patch).toMatch(/id: directory-picker\r?\n disabled: true/)
expect(patch).not.toMatch(/id:\s*directory-picker/)
expect(patch).not.toContain("name: '@deepseek-ai/dsh-host-directory-picker-native'")
expect(patch).toContain("name: '@deepseek-ai/dsh-client-ui-directory-picker-native'")
expect(patch).not.toContain("name: '@deepseek-ai/dsh-client-ui-directory-picker-native'")
})

it('routes manual restarts through the active plugin recovery flow', async () => {
Expand Down