Preface

In the DeepSeek Harness Web plugin ecosystem, conversation.chat.turnTail is a chain slot—the first accepted rendering skips subsequent renderings. The dsh-better-sidebar plugin often preempts this chain with a priority of -1, causing the entire official delivery card (including chips and the delivery card) rendering to be skipped. This plugin inserts itself into the chain with a priority of -2 and takes over rendering only in turns that contain a present declaration, avoiding the card-disappearance issue caused by chain preemption.

What It Is

dsh-delivery-cards is a DSH Web plugin maintained by vclike. It provides an independent delivery card row, supports 11 file-type icons and both light and dark themes, and has zero dependencies and zero build requirements.

Installation and Enablement

The plugin is not published to npm and must be installed from the GitHub source code.

  1. Install the plugin:
    dsh plugin --profile web add github:vclike/dsh-delivery-cards
  1. Local development:
    git clone https://github.com/vclike/dsh-delivery-cards.git
    dsh plugin --profile web add link:D:/path/to/dsh-delivery-cards
  1. Register the package name:
    Add "dsh-delivery-cards" to the dsh.profile.bundles array in <DSH_HOME>/profiles/web/package.json. If it is not registered, the browser half will not be assembled into the startup graph.
  2. Restart the service:
    After modifying the frontend bundle, you must restart dsh web.

Note: Do not manually add insert: lines in cordis.patch.yml within dsh.profile.bundles. The host line is automatically inserted by the cordis.patch.yml file inside the plugin package; manual duplication will cause conflicts.

Core Features

  • Priority control: Participates in the turnTail chain rendering with a priority of -2 and takes over only in turns that contain a present declaration. When there is no present entry, it falls back to the default behavior, matching the behavior when the plugin is not installed.
  • v2.0 heuristic fallback: The client adds a fallback layer. When presented is empty, it filters produced items using heuristics based on path, format, and size. This allows delivery cards to be rendered even if the model (Kimi, Claude, GPT, etc.) does not call present.
  • Card interaction:
    • Clicking the blank area of a card (or pressing Enter/Space) opens a sidebar preview.
    • Two persistent buttons, “Open” (default program) and “Locate” (File Explorer), are provided, with no collapsible secondary menu.
  • File icons: Supports file-type icons for 11 categories (PDF, DOC, spreadsheet, PPT, MD, HTML, image, video, audio, archive, and code). Extensions not recognized fall back to a text badge.
  • Theme adaptation: All colors use theme tokens and support switching between light and dark themes.

Technical Details and Fixes

  • Chain preemption fix: dsh-better-sidebar preempted the rendering entry point for official delivery cards, causing the cards to disappear. This plugin uses a lower priority to take precedence in turns that contain present.
  • Windows window visibility fix: The upstream @deepseek-ai/dsh-native-command method revealNativePath used windowsHide: true, causing Windows Explorer windows to be created in an invisible state. This plugin rewrites that method in the host half, changing windowsHide to false, ensuring that the Locate button opens a visible window.

Environment Requirements

  • DSH: ^0.1.5-rc.1
  • Node: >=20
  • Platform: On Windows, the “Locate” feature has been fixed for invisible windows; on non-win32 platforms, it falls back to the upstream implementation.

Conclusion

dsh-delivery-cards solves the unstable display of delivery cards in the DSH Web ecosystem when multiple plugins are installed. Through v2.0 heuristic fallback and the Windows window-visibility fix, it improves cross-model compatibility and usability.

  • GitHub: https://github.com/vclike/dsh-delivery-cards