DSH-Conv-Search: Adding a Current Session Search Bar to DeepSeek Harness Conversation

Preface

In DSH web sessions, long conversations, streaming output, and paginated history can make ordinary page search insufficient: the browser’s native find function searches the sidebar, composer, and page UI together, and it is not suitable for following the current session as the model continues generating output.

The following introduces dsh-conv-search, maintained by beijingwahw. It is a DSH client plugin that restricts Ctrl/Cmd+F to the current active conversation’s scroll area, highlights rendered text, and supports navigation between matches forward and backward.

Plugin Positioning

  • Installation name: beijingwahw/dsh-conv-search
  • Maintainer: beijingwahw
  • Category: client
  • License: MIT
  • Scope: Only reads rendered conversation text on the browser side; it does not touch prompts, messages, schemas, streams, tools, or provider requests
  • Repository: https://github.com/beijingwahw/dsh-conv-search

Core Features

Search Scope

The plugin searches within the current conversation’s scroll area, matching:

  • User messages
  • Assistant text
  • Tool cards
  • Paginated history

The plugin excludes the composer area and its own search bar to avoid false matches from draft text.

The search scope is limited to the active conversation panel; sidebar conversation titles and settings pages are not included.

Highlighting and State

The plugin uses the CSS Custom Highlight API to draw highlights without modifying React-managed DOM.

When there are no results, the counter turns red, the search bar border provides feedback, and a one-time shake animation appears; this animation respects prefers-reduced-motion.

During streaming output or when loading older pages, the plugin debounces re-searching and maintains the current scroll position.

Match Options

The plugin supports two match options:

  • Aa: Case sensitivity
  • ab: Whole word matching

Match Navigation

The plugin provides an n / total counter and supports wrap-around navigation forward and backward:

  • Enter, F3, Ctrl/Cmd+G: Jump to next match
  • Shift+Enter, Shift+F3, Ctrl/Cmd+Shift+G: Jump to previous match

ArrowUp / ArrowDown are used to browse query history.

The search button in the header is registered via the following conversation header slot:

conversation.session.header.actions

Installation and Activation

Before installation, you need Node.js ≥ 22 and pnpm.

If the plugin installation reports that pnpm is not recognized, install pnpm first:

npm install -g pnpm

Then add the plugin to the web profile:

dsh plugin add beijingwahw/dsh-conv-search --profile web

Restart the web service to load the plugin:

dsh web

If dsh web reports EADDRINUSE :3080, an old process is still occupying port 3080. Stop the old process first, or start with a different port:

dsh web --port 3081

Verify the plugin is mounted:

dsh --profile web --dump-config | grep conv-search

Typical Usage

  1. Open the search bar with Ctrl/Cmd+F or the conversation header search icon.

  2. Enter a keyword; search runs as you type with a 120 ms debounce.

  3. Toggle case sensitivity or whole word matching with Aa or ab.

  4. Press Enter or Shift+Enter to navigate forward or backward between matches.

  5. Use ArrowUp / ArrowDown to review recent query history.

  6. Press Esc to close the search bar and clear all highlights.

Browser Requirements and Limitations

Requires browsers with CSS Custom Highlight API support:

  • Chrome/Edge 105+
  • Safari 17.2+
  • Firefox 132+

In unsupported browsers, the search bar can still count matches but will not draw highlights.

Matching supports plain text only:

  • No regular expressions
  • No diacritic folding
  • No cross-node phrase matching

The search bar position is fixed at:

top: 64px; right: 24px

It is currently not draggable.

Use Cases and Notes

Suitable for anyone who needs to find rendered text within the current conversation in DSH web sessions, such as repeated text in long conversations, tool cards, and paginated history.

This plugin only reads rendered conversation text and does not touch prompts, messages, schemas, streams, tools, or provider requests. However, it runs as a client plugin with the permissions of the current dsh process, so it is recommended to review the source code, dependencies, and license before installation.

This plugin is licensed under MIT.

Conclusion

The core value of dsh-conv-search is to confine browser search to the current DSH conversation: with a clear scope, the ability to follow streaming output, and support for n / total navigation.

Repository: https://github.com/beijingwahw/dsh-conv-search

The catalog page URL was not found in the verified materials.

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye