harness-ui-enhancer

7Star0Fork0Issue0Watching
机审证据安装命令仓库已核验dsh-plugin Topic许可证READMEAI 百科
语言
TypeScript
License
MIT
分支
main
dsh-plugin

安装

$ dsh plugin --profile web add github:Physicolor/harness-ui-enhancer

在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程

对话式安装

帮我安装 DeepSeek Harness 插件 Physicolor/harness-ui-enhancer:先查看仓库 https://github.com/Physicolor/harness-ui-enhancer 确认安全性,然后执行安装命令并验证插件加载成功。

把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。

English · 简体中文

Harness UI Enhancer

A UI polish & plugin-coordination layer for DeepSeek Harness.
Normalizes the official UI · reconciles every plugin · settings auto-normalizer · UI customization (incl. rounded card)

Latest release Total downloads GitHub stars MIT License Supported: DeepSeek Harness 0.1.x


TL;DR: You installed a bunch of DSH plugins but the UI looks inconsistent? Harness UI Enhancer uses CSS overrides + runtime DOM coordination to bring them back to the official design language — non-destructive, fully reversible, zero model cost.

Harness UI Enhancer is a client-only DSH bundle plugin. It adds no model tools and modifies no session logs — it adjusts the UI purely through official slots (settings.section / settings.general.item) and the --dsw-* semantic token system.


Features

🎨 Official UI Normalization

CapabilityDetail
Single-line headerMoves the conversation / trajectory selector into the title row; the header collapses to one line
Button capsule familySession log, widgets, and toggle buttons unified into 32px capsules
Right-rail flush rounded rectbetter-sidebar panel overlay layout; the header stays put
Unified settings headerTitle 18/600 + description 13px + hairline divider

♻️ Plugin Visual Reconciliation

TargetApproach
dsh-better-sidebarCapsule-ize toggle buttons, unify panel backgrounds, coordinate layout, smooth transitions
harness-widgetsMatching stat capsule family, header utilities alignment
Third-party settings pagesAuto-fill headings, drop redundant icons, normalize spacing

🧹 Settings Auto-Normalizer ⭐

When any third-party plugin adds a page to settings.section that doesn't follow the official spec, this plugin auto-corrects it:

Auto-checkFix
Missing page titleInjects an 18/600 title (from the nav label or a known mapping)
Redundant icon beside the titleRemoves the title-row logo, keeps plain text
Title/description too tightUnifies to 4px spacing + hairline divider
Inconsistent type/sizeTitle 18/600, description 13/20 + border-bottom

🎛️ UI Customization

The "UI Customization" block under Settings → General: chat width, markdown font size, workspace scale, UI font stack, and rounded card all adjust live. The "rounded card" renders the conversation area as a card with a rounded top-left corner and a drop shadow, auto-resizing with the sidebar width / details column.


Architecture

  • Zero model cost: the host (node) half is a no-op; all changes happen in the browser half;
  • Official design tokens: all styles use the --dsw-* semantic tokens and follow light/dark themes automatically;
  • Two injection channels: static rules (CSS Modules) + dynamic <style data-plugin> tags;
  • Reversible cleanup: fiber-effect disposers manage every side effect — uninstalling restores everything;
  • Slot integration: settings.general.item / settings.section / shell.overlay (rounded-card overlay).

Installation

# via npm (plugin market)
dsh plugin --profile web add harness-ui-enhancer

# local development (link)
dsh plugin --profile web add link:D:/dsh-home/plugins/harness-ui-enhancer

After installing, hard-refresh the browser (Ctrl+Shift+R); the "UI Customization" block appears under Settings → General.


Development

pnpm install
pnpm run build      # tsdown builds lib/
pnpm run check      # typecheck + build
  • peerDependencies: @deepseek-ai/dsh-client-ui-slots, dsh-client-runtime (provided by the DSH web profile);
  • A pure client plugin: cordis.patch.yml inserts the ui-enhancer row; the browser half is declared by dsh.client;
  • Must sync after changes: npx tsdown rebuild → sync into profiles/web/node_modules/harness-ui-enhancer/lib/ → hard-refresh the browser.

Compatibility

  • DeepSeek Harness 0.1.0-rc.6 and compatible later 0.1.x;
  • Integrates via official slots, coexisting with better-sidebar, harness-widgets, dshmarket, etc. by slot order;
  • Known reconciliation targets: dsh-better-sidebar, harness-widgets, dsh-notification, dshmarket;
  • The page fully restores to defaults after uninstall/disable — no residue.

Roadmap

  • Phase 1 · Official UI Normalization (in progress): keep fixing unfinished parts of the official UI;
  • Phase 2 · Plugin compatibility coordinator (in progress): detect and fix layout/style conflicts between plugins;
  • Phase 3 · Unified visual style (in progress): an optional style layer — the "rounded card" is live (rounded top-left + shadow); next: spacing density, more radius/animation unification;
  • Phase 4 · Ecosystem: crystallize into an extensible rule-registration mechanism.

Changelog

v0.6.1

Fix:

  • 🧩 The big empty gap between the chat/input and the right sidebar when it opens: fixed the double-squeeze on the conversation's margin-right. The #root neutralization previously cleared only margin-right, leaving better-sidebar's width: calc(100% - var(--dsh-sidebar-width)) active — the width squeeze first narrowed the column to the panel's left edge, then the viewArea/composerSeat margin squeezed a second time, pushing the conversation one full panel-width short of the panel. Added width: 100% to fully neutralize #root, so the inner margin is now the single, correct squeeze (the chat's right edge meets the panel's left edge, minus the 8px scrollbar gutter).

v0.6.0

Removed:

  • 🗑️ Removed MCP server management and task automation — these weren't "UI polish" concerns, so they were removed wholesale (the host-half API routes are gone; the plugin is a pure client with zero host logic). The MCP / automation buttons no longer appear at the bottom-left.

New:

  • 🃏 Rounded card: the conversation area renders as a card with a rounded top-left corner and a drop shadow (Settings → General → UI Customization → rounded card). No source changes: a transparent shell.overlay cover (top border + top-left radius + --dsw-shadow-lv3 shadow); the shadow bleeds left into the sidebar (card thickness), the top moves down 1px for the shadow gap; right/bottom are natural window edges with no drawn border; the left edge borrows the sidebar's own border-right; a ResizeObserver tracks the center column so it follows sidebar drags / collapse / details-column changes; the content's top-left is masked round by the center column's own border-radius; pure CSS gating (html.enhc-center-card-on), togglable and residue-free.

Fix:

  • 🎚️ Live feedback for the customization toggles: the rounded-card switch uses a local mirrored state so the thumb slides and the swatch flips instantly, without waiting for a re-render.

v0.4.1

  • 🎯 better-sidebar toggle buttons relocated into the header utilities area (CSS floating alignment);
  • 📐 header shares width via max(): gives 80px to the toggle cluster when the sidebar is closed, follows the sidebar width when open;
  • 🎬 smooth transition on the header's margin-right;
  • 📏 better-sidebar tab bar raised to 44px with proportionally scaled internals;
  • 🔧 updated better-sidebar hash prefix W-zNGWnArs4W;
  • 📐 panel top positioned at top: 6px.

v0.4.0

  • 🔌 MCP server management panel;
  • ⏰ task automation scheduling (periodic / interval / one-shot);
  • 💬 prompt input reuses the chat style;
  • 🎨 dialog blur + smooth animation;
  • Improved: MCP/automation dialogs drop the left nav; one-shot runs pick a future time.

v0.3.0

  • Settings auto-normalizer launched;
  • better-sidebar / harness-widgets visual coordination;
  • single-line header;
  • light/dark adaptivity.

v0.2.0

  • Adjustable chat width, font size, UI font;
  • workspace font scaling.

v0.1.0

  • Initial release.

License

MIT

收录徽章

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/Physicolor/harness-ui-enhancer)

把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。

返回插件目录
harness-ui-enhancer — DeepSeek Harness 插件 | deepseek-plugin.org