kelai141/dsh-host-web-compat
dsh host plug-in - injects old kernel browser polyfill into the page via webserver hook
A DeepSeek Harness host plugin that injects legacy-browser polyfills into every served page through the webserver tapIndex hook, and bridges the companion shell APK's directory picker and path-open channels. It exists because older kernels lack APIs the host page calls directly: a missing AbortSignal.any() breaks the workspace directory picker's concurrent RPC cancellation, a missing Promise.withResolvers() breaks the host boot-ready tail script and fails the plugin tree, and a missing global Iterator (Chrome 122+) makes upstream 0.1.5 client bundles throw Iterator is not defined at import time. The README's table lists the injected polyfills — AbortSignal.any/timeout, structuredClone, Object.hasOwn, Array.prototype.at, String.prototype.replaceAll, crypto.randomUUID, iterator helpers, Object.groupBy/Map.groupBy, Set methods and Array.fromAsync — each skipped when already present.
Install
⚠️ Install command not yet confirmed — check the README on GitHub for the exact command.
Compatibility
Android-oriented DeepSeek Harness deployments: the README targets older kernels — MuMu's bundled browser and older WebViews — and its patch row is guarded by disabled: !!js process.platform !== 'android', so it activates only on Android. The host plugin installs into the profile's node_modules and is mounted through the profile's cordis.patch.yml; it needs a DSH host that exposes the webserver tapIndex hook.
Details
- Repo: kelai141/dsh-host-web-compat
- Category: Infrastructure & Deployment
- Stars: 2
- Version: Manual node_modules packaging + profile patch row (README's documented form; no registry release)
- Last push: 2026-09-21
- First seen: 2026-08-13
Recent updates
The README documents the injection mechanism, the polyfill table and the mount row rather than a versioned changelog; there is no release history or migration section and no published package version. Verify the current install instructions in the repository before installing.
FAQ
- How do I install dsh-host-web-compat?
- The README says to package it into the profile's node_modules and mount it with an insert row in the profile's cordis.patch.yml (id: web-compat, name: '@dsh-android/dsh-host-web-compat', disabled off-Android), then restart — no one-line install command is published, so verify the repository first.
- What does it fix?
- Pages served to old kernels fail because the host page calls modern APIs: missing AbortSignal.any() breaks the workspace directory picker, missing Promise.withResolvers() breaks the boot-ready tail, and a missing global Iterator makes upstream 0.1.5 client bundles throw at import time.
- Does it affect desktop deployments?
- The README's patch row is disabled: !!js process.platform !== 'android', so it only activates on Android.
Alternatives
Lum1104/dsh-browser · Clizo1209/dsh-playwright-browser · titanwings/dsh-better-browser