dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
DeepSeek Harness plugin: turns the sidebar into a compact top bar on mobile screens to save space
A DeepSeek Harness Web UI plugin that turns the sidebar into a compact top bar on mobile screens, to save some precious space on small devices.
DSH's left sidebar (session list, workspaces, settings) reserves a real grid column even in its collapsed "rail" state. On a phone that's a meaningful chunk of a small screen given up permanently. This plugin removes that reserved space on narrow viewports and replaces it with a small, familiar top bar instead.
On screens 768px wide or narrower:
Screens wider than 768px are completely unaffected — this plugin only changes anything below that breakpoint.
From your DSH profile directory (or via dsh plugin --profile <name> add, which forwards to pnpm inside the profile):
dsh plugin --profile web add github:pureexe/dsh-mobile-topbar
# or, from a local checkout:
dsh plugin --profile web add /path/to/dsh-mobile-topbar
Then list it in that profile's package.json under dsh.profile.bundles:
{
"dsh": {
"profile": {
"bundles": [
"@deepseek-ai/dsh-base",
"@deepseek-ai/dsh-web-app",
"dsh-mobile-topbar"
]
}
}
}
Restart the profile (e.g. dsh web) to pick it up.
This is a small dual-face DSH plugin:
index.js — the host-side loader row (a no-op; this plugin only touches the browser).client.js — the browser half. It injects scoped CSS to reposition the sidebar/right-panel/settings-modal chrome on mobile (the right panel becomes a fixed full-width sheet), and mounts a small React-rendered top bar that calls the existing layout and uiWorkspace services (toggleSidebar, closeRightbar, startSession) — and, lazily at tap time, the sidebarRight service (isExpanded, toggleExpanded) to collapse the right panel through its own action — rather than reimplementing any of that logic.cordis.patch.yml — inserts this package as a single loader row when a profile lists it as a bundle.No sidebar/frame internals are duplicated or forked; the plugin only adds CSS overrides (targeting the app's existing, versioned class names) and reuses the app's own icon/brand components and layout services.
Verified to work on:
| DSH version | result |
|---|---|
| 0.1.5-rc.3 | ✅ full — same icon names, CSS class hashes, and layout/uiWorkspace services as 0.1.7 |
| 0.1.6-alpha.x | ✅ full — same client surface as 0.1.5 |
| 0.1.7-rc.x | ✅ full — the new-chat icon export was renamed in this line; client.js resolves IconNewChatOutline16 / IconNewChatOutlineRegular / IconNewChatOutlineMedium in order, so the button shows the right icon on either generation |
| 0.2.0-rc.2 | ✅ full — the client module graph and the layout/uiWorkspace services are unchanged from 0.1.7; the right panel (.P3OORG_panel, same hash) renders as a full-width fixed sheet below the top bar, opened by the conversation's own expand control and closed by the panel's collapse button or the hamburger |
dsh.profile.bundles / dsh.client mechanism): the plugin is simply never loaded; it stays an inert line in your profile's package.json. Nothing breaks.peerDependencies: the packages it consumes (dsh-client-ui-primitives, and the layout/uiWorkspace services from dsh-client-ui-layout / dsh-client-ui-workspace) ship inside the host DSH install rather than the profile's dependency tree, so version-range peers would fail resolution and block installation on perfectly good hosts.The CSS overrides target specific class names generated by the current DSH build (e.g. .hHd-Xa_root, .pI_x6G_frame, .P3OORG_panel, .VOzbGW_overlay). These are internal, unversioned implementation details of DSH's client bundles — a future DSH release could rename them and quietly break this plugin's mobile layout. If the top bar or drawer stop behaving correctly after upgrading DSH, that's the first thing to check. (The icon rename between 0.1.6 and 0.1.7 is already handled by the fallback chain above.)
One more: to disable this plugin on a 0.1.7 host, do not add a disabled: true override to your profile's cordis.patch.yml — 0.1.7 excludes disabled rows from the client-module graph entirely, which silently blanks the top bar. Remove the bundle from dsh.profile.bundles and reinstall instead.
MIT