codex-history-rail: Add a Codex-style turn timeline to DSH conversations

Preface

After chatting extensively in DSH, only the conversation list remains on the left, and the turns themselves lack a reference point for positioning. To return to the 20th turn, one must rely solely on scrolling and guessing. The plugin introduced below, jaycou/codex-history-rail, addresses this issue: placing a horizontal timeline in the whitespace on the left side of the chat area, with a tick mark for each turn, enabling preview, jumping, and bookmarking. It is maintained by JAYCou, client-side facing, is a UI-type plugin, and does not alter Host-side behavior.

What is it

One-sentence positioning: Add a Codex-style turn timeline to the left of the dialogue area in the DeepSeek Harness Web interface. It does not rewrite conversation content or interfere with model calls; it only reads session turn information and draws a scale line on the interface, making it a pure display-type client plugin.

The problem solved is long-session backtracking. Existing methods involve scrolling through chat history or flipping through a historical message list, both of which require active visual positioning; this plugin turns turn numbers into ticks on the left and turns “finding the Nth turn” into a single click on the timeline.

Core Features

According to the README, the capabilities include the following points.

Turn Ticks. Each turn in the current session corresponds to a short horizontal line on the timeline, allowing you to see at a glance how long the session is and where the turns are distributed.

Hover Preview. Hovering the mouse over a tick will make the tick longer and display a card showing the user’s input and the assistant’s response for that turn.

Click to Jump. Clicking the tick or the “Jump here” button on the card will scroll the dialogue area to that turn; if that turn hasn’t been loaded yet, the plugin will first fetch it and then scroll to the corresponding line.

Bookmarks. The card has a bookmark button to mark a specific turn. The star at the top of the timeline opens a cross-session bookmark panel; clicking a saved item in it jumps to the corresponding turn and automatically switches to the session if necessary. Bookmarks are stored only in the browser’s localStorage and are not uploaded to the server.

Adaptive Width. The timeline as a whole does not exceed 80% of the viewport; as more turns are added, the spacing between ticks shrinks but stays within this limit, and it does not scroll itself.

Theme Following. It uses only the --dsw-alias-* theme variables provided by the host and does not import the DSH client package. It automatically hides when the viewport width is below 1080px.

Installation and Enablement

The official command is to install locally from the current package directory, which requires first obtaining the source code directory:

# 在该包目录下执行
dsh plugin add .

After installation, enable @jaycou/codex-history-rail in the DSH profile. This package declares dsh.bundle.patch and a Web client side, which is a pure UI bundle, while the Host side is empty.

Version and environment constraints are specified in package.json, which can be checked before enabling:

{
  "name": "@jaycou/codex-history-rail",
  "version": "1.0.2",
  "license": "MIT",
  "engines": {
    "dsh": ">=0.2.1-rc.3 <0.3.0-0"
  }
}

That is, it requires the dsh version to be >= 0.2.1-rc.3 and < 0.3.0-0.

Typical Usage

  1. Open a long session. After starting DSH and entering any session, a timeline will automatically appear at the edge of the dialogue area on the left, with one tick per turn.

  2. Hover to view a specific turn. Move the mouse over a tick to see the input and response in the preview card and confirm if it is the turn you are looking for.

  3. Click to jump. Click the tick or “Jump here” on the card to scroll the dialogue area to that turn. If the turn hasn’t been loaded yet, the plugin first calls sessions.binding(sessionId).session.loadThrough(seq) to fetch the history, and then scrolls the corresponding [data-chat-anchor-key] line into view.

  4. Bookmark key turns. Click the bookmark on the card, then open the bookmark panel from the star at the top to access them across sessions.

  5. Local validation. After modifying the source code, you can run these two commands to check syntax:

node --check client.js
node --check index.js

The client part is a window.__ModuleLoader__.load(...) factory, client.js contains all the UI, and language-related metadata is in the locale/ directory.

Applicable Scenarios and Notes

Who is it for: Primarily for DSH users with very long sessions who need to frequently look up turns, and for those concerned with the client UI structure who want to modify their own plugins based on it. It only reads turn information for display and does not touch the model or tool calls.

The notes are as follows.

The plugin runs with the permissions of the current dsh process. Before installing, you should check the source code to ensure the code content matches your expectations, then decide whether to enable it. The license is MIT, and the repository address is also provided in the package, both of which can be verified directly.

It requires a specific range of dsh versions; if you upgrade dsh and no longer satisfy >=0.2.1-rc.3 <0.3.0-0, the plugin may not work.

Bookmark data is stored in the browser’s localStorage and is not uploaded; it will be lost if you change browsers or clear the cache, and it does not sync across devices, so please take note.

On low-resolution screens, the plugin automatically hides, and not seeing the timeline in a narrow viewport is expected behavior.

This plugin comes from the community directory SkillHub. The directory site is an independent site with no official affiliation to DeepSeek / Hypersphere, so do not treat it as an official component in the official app store. The repository currently has zero stars and is an early project.

Conclusion

The value of codex-history-rail lies in reducing the cost of backtracking through long sessions to a single click. It is lightweight, implemented as a single file on the client side, and introduces no extra dependencies. If you have a need to locate turns, you can start with the installation command above and decide whether to integrate it into your configuration based on the source code.

Directory page: https://www.skillhub.cn/plugins/JAYCou/codex-history-rail

GitHub: https://github.com/JAYCou/codex-history-rail

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

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

Xiaoye