Introduction

DeepSeek Harness (DSH) uses a plugin-based architecture. When using the Web client, the scroll-to-bottom behavior as streaming content grows is often an instantaneous jump, which can interrupt the reading flow or conflict with manual user scrolling. The dsh-smooth-scroll plugin changes this instantaneous behavior to constant-speed smooth following, improving the streaming reading experience.

Features

The plugin primarily addresses the visual jump issue when scrolling to the bottom of a DSH conversation:
* Constant-speed smooth following: The cruising speed is 0.9px/ms, making scroll following more natural.
* Soft start and soft tail: A 240ms smooth ramp-up at start and a 220ms soft landing at the end.
* User scroll takeover: When the real position continuously deviates from the animation writes for more than 2 frames, it is judged as user takeover; the animation stops and falls back to the real value.
* Non-interfering design: No transforms are applied, it does not interfere with UI elements such as the input bar, and it does not interfere with DSH’s own state machine detection.
* Compatibility fallback: When the system has prefers-reduced-motion enabled, it automatically falls back to the official instantaneous behavior.
* Version adaptation: Compatible with dsh v0.1.2-alpha.1 ~ 0.1.3-alpha.2.

Installation and Enablement

Before installing, ensure that DSH is installed and the Web GUI has been successfully started at least once.

  1. Run the installation command:
    dsh plugin --profile web add dsh-smooth-scroll
  1. Verify that the installation was successful:
    dsh --profile web --dump-config
You should see the `dsh-smooth-scroll` layer in the output.
  1. Restart dsh web and open a conversation; the streaming content should smoothly scroll to the bottom.

Parameter Tuning

Parameters are adjusted by editing the source code. Edit the constants section at the top of src/client.js, then run pnpm run build and restart dsh web when finished.

The main parameters are:
* VEL: Cruising speed (default 0.9).
* RAMP_MS: Duration for the initial soft acceleration (default 240).
* QUIET_MS: Silence window used to determine that growth has stopped (default 240).
* TAIL_PX: Remaining distance threshold for entering the soft tail (default 120).
* TAIL_MS: Easing duration for the soft tail (default 220).
* DIVERGE_STOP_FRAMES: Threshold for the number of consecutive frames in which the real position deviates from animation writes (default 2).

Compatibility Notes

  • Supported versions: dsh v0.1.2-alpha.1 ~ 0.1.3-alpha.2.
  • Unsupported versions: 0.1.1-rc.2 and earlier. This generation uses a different host structure and is not compatible.

Notes

  • Parameter changes: The plugin currently does not support runtime configuration; parameters must be modified by editing the source code.
  • License: MIT license.

Summary

dsh-smooth-scroll resolves the abrupt scrolling issue for streaming content in the DSH Web client through constant-speed smooth following and a user takeover mechanism. Its transform-free design ensures UI stability. For more details, refer to the project homepage.