npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

dsh-message-timeline

v0.1.1

Published

Per-session user-message timeline for the DeepSeek Harness Web GUI: a left-edge tick strip covering the complete durable log, with hover previews and jump-to-message navigation

Readme

DSH Message Timeline

English | 中文

DeepSeek Harness Web 界面的会话用户消息时间轴插件:在会话栏左缘显示最近 30 条用户消息的竖排刻度条,悬浮查看消息时间与完整内容,点击跳转定位到对应消息。

功能简介

  • 完整历史,不受窗口截断影响:通过 Harness 的会话投影机制在 Host 侧折叠完整持久日志,最近 30 条用户消息全部可见——聊天区只加载了最近一段历史时,更早的用户消息仍会出现在时间轴上。
  • 悬浮预览:鼠标悬浮某刻度,弹出该消息的本地时间与全文,气泡中心跟随刻度的纵向位置。
  • 点击跳转:点击刻度把聊天区滚动定位到该消息;目标在已加载窗口之外时,自动分页加载更早历史(上限 20 页)后跳转。
  • 高斯悬浮特效:悬浮时刻度向右单向变长,相邻刻度宽度与颜色按高斯权重渐变(中心 #361115,基色深灰玻璃)。
  • 仅含用户消息(不含插话 steering,窗口内可识别部分);刻度等高、垂直居中、间距 4px。

与 DeepSeek 的关系

本插件不是 DeepSeek 官方项目。 它是基于 DeepSeek Harness(MIT 开源)的 Cordis 插件体系开发的第三方扩展:使用其 Web 客户端插槽系统(shell.overlay)与会话投影接缝(session-projection seam)读取会话日志并推送到浏览器。数据全部来自 Harness 自身的会话日志与快照,插件不引入任何外部服务。

安装或使用方式

前置条件:deepseek-harness 源码检出(含 Web GUI)、Node ^22.19 || >=24、pnpm。

方式 A:作为工作区包部署

  1. 将本目录放入 harness 检出:packages/client/ui-message-timeline(本目录与仓库内集成布局一致,可直接整体覆盖同步)。
  2. 确认注册面(若部署的是已集成该插件的仓库版本则已具备):
    • packages/bundle/web-app/cordis.patch.yml 中的 ui-message-timeline 行;
    • packages/bundle/web-app/package.json 中的依赖;
    • tsconfig.base.json 的 paths 条目与 tsconfig.client.json 的引用。
  3. 安装与构建:
    pnpm install
    pnpm --filter dsh-message-timeline run bundle
    pnpm run build
  4. 重启 Web 服务:pnpm dsh web,打开 http://127.0.0.1:3080。

方式 B:作为 npm 包安装

  1. 在 harness 检出根安装(npm 与 pnpm 均可;pnpm 工作区建议用 pnpm):
    npm install dsh-message-timeline
    # 或(pnpm 工作区):pnpm add dsh-message-timeline
    # 或(GitHub 直装):npm install git+https://github.com/Guan0923/dsh-message-timeline.git

    @deepseek-ai/* 与 cordis peer 依赖标记为 optional:它们未在 npm 发布,由 harness 检出提供,因此安装开箱即成功;在 harness 检出之外安装仅获得包文件,实际运行需要 harness 环境。

  2. 在 Web 表面配置(bundle 的 packages/bundle/web-app/cordis.patch.yml,或 --patch 覆盖层)增加插件行:
    - insert:
        - id: dsh-message-timeline
          name: 'dsh-message-timeline'
  3. 重启 pnpm dsh web。

发布到 npm(维护者)

# 1. 在 deepseek-harness 检出内构建 lib 产物(依赖未发布的 @deepseek-ai/* 工作区包):
pnpm --filter dsh-message-timeline run bundle
# 2. 将构建出的 lib/ 目录同步到本独立项目(npm 发布以 files 字段为准,.gitignore 不影响发布):
#    (从检出 packages/client/ui-message-timeline/lib 复制到本项目 lib/)
# 3. 发布:
npm publish

使用

打开任一有用户消息的会话,聊天区左缘即出现刻度条。悬浮刻度查看时间与全文;点击刻度跳转定位;「回到底部」按钮(产品自带)可返回最新消息。

构建说明

本项目 tsconfig.json / tsdown.config.ts 按 harness 工作区布局编写(相对引用 ../../../tsconfig.base.client.json 与 ../tsdown.client.ts),并且依赖尚未发布的 @deepseek-ai/* 工作区包与 Harness 客户端打包管线——必须在 deepseek-harness 检出内构建(方式 A 的步骤 3)。

开源许可证和版权归属

本项目以 MIT License 开源,版权 © 2026 Guan0923,详见 LICENSE。

本项目派生自 DeepSeek Harness(© deepseek-ai,MIT License):插件基于其 Web 客户端插槽系统与会话投影体系实现,相关代码遵循上游 MIT 条款。

当前维护状态及主要维护者

  • 维护状态:维护中(actively maintained)。
  • 主要维护者:Guan0923。
  • 欢迎通过 GitHub Issues 报告问题、提交 Pull Request 参与改进。

已知风险、限制或兼容性说明

  • 兼容性:面向 deepseek-harness 0.1.0-rc.x 的 Web GUI;依赖未发布的 @deepseek-ai/* 工作区包,独立构建需在 harness 检出内进行。
  • 产品 DOM data 属性是事实契约:定位依赖 [data-conversation-scroll] / [data-composer-seat],跳转依赖 [data-chat-anchor-key](与 Harness 自身分页机制共用)。GUI 布局改版重命名或移除这些属性会静默破坏定位或跳转。
  • 窗口外插话消息会显示为刻度:日志不携带插话标记,投影折叠无法区分窗口外插话与普通用户消息;点击这类刻度会翻页并落在插话气泡上。
  • 跳转需要聊天视图挂载:在非 chat 视图页签(如轨迹视图)点击刻度无效果。
  • 消息文本不设上限:超长消息会成比例增大投影载荷。
  • 无开关、常驻显示:只要当前会话存在用户消息,刻度条即显示。
  • 特效参数为内置常量:高斯增幅/σ/影响半径、配色、刻度尺寸目前不可配置。