# DSH Desktop 0.2.0-rc.2 Vault compatibility This adapter is pinned to the four macOS Desktop client artifacts shipped with DSH 0.2.0-rc.2. `patch-client.mjs` refuses any different input SHA-256 before applying the 0.1.7 Vault seams to the new bundles. It restores session opening policies, workspace actions/accessories, title chains and the conversation guard. Opening waits carry the reference's release signal, so leaving a locked session cancels its wait and cannot later trigger an unowned history fetch. The adapter lives outside the signed app. Each overlay package keeps the original package name and client metadata; its host entry forwards the installed app's host exports (including the session controller's default export). Desktop's profile patch disables the four original rows and inserts four replacement rows with absolute module paths. A patch `name` only asserts an existing name; it does not rename the original row. Install Vault v0.2.11 into the Desktop profile while the app is stopped, using the Desktop-bundled DSH CLI or its plugin manager (not a different global DSH version). Extract the compatibility archive and run from the directory containing `compat/`. In the Desktop profile `package.json`, include `dsh-vault-plugin` in `bundles` while retaining the other bundles and dependencies. Then prepare and verify against the installed application: ```sh python3 compat/dsh-v0.2.0-rc.2/extract-fixture.py \ '/Applications/DeepSeek Harness.app/Contents/Resources/app.asar' \ /tmp/dsh-v020-fixture DSH_CLIENT_FIXTURE=/tmp/dsh-v020-fixture \ node --test compat/dsh-v0.2.0-rc.2/compat.test.mjs node compat/dsh-v0.2.0-rc.2/prepare-overlay.mjs \ /tmp/dsh-v020-fixture /absolute/path/to/vault-desktop-020rc2 \ '/Applications/DeepSeek Harness.app/Contents/Resources/app.asar/dsh/node_modules' ``` The preparer only writes overlay packages, not the profile. Stop Desktop before changing its profile or installed Vault libraries, and back up those files plus `~/.dsh/vault-lock`. Enable the Vault bundle and add these profile patches: ```yaml - id: session-controller disabled: true - id: ui-workspace disabled: true - id: ui-conversation disabled: true - id: ui-layout disabled: true - insert: - id: vault-compat-session-controller name: /absolute/path/to/vault-desktop-020rc2/@deepseek-ai/dsh-api-session-controller/lib/index.js - id: vault-compat-ui-workspace name: /absolute/path/to/vault-desktop-020rc2/@deepseek-ai/dsh-client-ui-workspace/lib/index.js - id: vault-compat-ui-conversation name: /absolute/path/to/vault-desktop-020rc2/@deepseek-ai/dsh-client-ui-conversation/lib/index.js - id: vault-compat-ui-layout name: /absolute/path/to/vault-desktop-020rc2/@deepseek-ai/dsh-client-ui-layout/lib/index.js ``` Desktop HTTP proxy strips Origin and supplies its authenticated host cookie. Vault's originless path requires loopback transport/authority and the host's `connection.requestRejection` to pass. Missing host authentication support, missing cookies, remote requests and explicit mismatched origins remain refused. Ordinary same-origin Web checks remain in place. Published with Vault v0.2.11 as `dsh-vault-compat-dsh-v0.2.0-rc.2.tgz`. Replace `/absolute/path/to/vault-desktop-020rc2` with your chosen absolute overlay path in both commands and profile patches. This is not a compatibility promise for later DSH versions. Re-extract and verify the new version before future upgrades. For rollback, stop Desktop, remove the four compatibility inserts and the four `disabled` patches, disable the Vault bundle, and restore the backed-up Vault libraries. Preserve unrelated profile edits and all Vault state.