Skip to content

dsh-question-history

Verified

dsh-question-history · v0.1.4 · MIT · Web UI

DeepSeek Harness plugin: a question navigator for chat — a dash column on the right edge (one dash per question you asked); hover or click to browse your question history, click to jump back to the original message.

Install

dsh plugin add dsh-question-history

Confirm the layer applied with dsh --profile default --dump-config — see the install guide.

Source

Published to npm without a public repository. Inspect the package contents before installing.

Tags

Creators

Readme

dsh-question-history

DeepSeek Harness 的「对话历史提问导航」插件。

dsh-question-history 是一个 DeepSeek Harness 的对话历史提问导航插件: 在对话页右侧展示一列安静的短横线,每条对应你在当前对话中发送的一个问题。 悬停或点击横线,展开提问历史面板;点击任意问题,平滑滚动到对话中该问题 的原始位置并短暂高亮。滚动对话时,最接近可视区域中心的问题会自动成为 「当前问题」,横线与面板高亮实时同步。支持深色模式、响应式布局与键盘操作, 纯客户端实现,无需任何配置。

收起时是右侧中部的一列短横线(当前问题为深色); 展开时是一块简洁的白色(或深色)面板,列出全部提问,当前阅读中的问题自动高亮。

功能

  • 只收集当前对话中用户发送的问题,不显示 AI 回答,按发送顺序排列
  • 发送新问题、切换对话后自动更新(监听 DOM 变化)
  • 点击问题 → 平滑滚动到原始消息(目标居中)→ 约 1 秒轻微高亮(不改变消息尺寸、不抖动)
  • 滚动对话时,最接近可视区域中心的问题自动成为「当前问题」,收起态的深色横线与展开态的高亮列表项保持同步
  • 支持中文 / 英文 / 代码 / 公式 / 多行文本 / 图片 / 文件消息;长问题单行省略号显示
  • 面板内部滚动;支持 hover / 点击展开、点击外部或 Esc 收起、键盘 Tab + Enter / 空格跳转
  • 深色模式自动适配;响应式(窄屏不超出视口);160ms 克制动画(透明度 + 轻微位移)

安装

第一步,交给你的 AI。 把下面这一行发给你的 AI 助手:

请按照 https://github.com/wjlzqhh/dsh-question-history/blob/main/INSTALL.md 安装 dsh-question-history,然后验证效果并告诉我结果。

安装流程只有一个命令:零配置、无引擎、无 API key,也无需改任何 dsh 设置(分步说明与故障排查见 INSTALL.md,为 AI 助手编写的指令式文档)。

第二步,或者自己动手。 不打算委托给 AI 的话,直接执行:

npx -y @deepseek-ai/dsh plugin --profile web add dsh-question-history

重启 dsh(桌面应用完全退出重开,或 Web 页面刷新)后生效,安装后无需任何配置。卸载同样是这一条命令:

npx -y @deepseek-ai/dsh plugin --profile web remove dsh-question-history

使用

  1. 打开任意对话,右侧中部出现一列短横线,每条对应一个问题
  2. 当前阅读位置对应的问题,其横线为深色(深色模式下为白色)
  3. 鼠标移入或点击横线区域,展开历史提问面板
  4. 点击任意问题,跳转到对话中对应位置并短暂高亮
  5. 鼠标移出组件约 180ms 后收起;或点击面板外部 / 按 Esc 收起

开发

# 本地调试:直接以 file: 方式装入 web profile
npx -y @deepseek-ai/dsh plugin --profile web add "file:$(pwd)"

代码结构:

  • dsh/index.js — cordis 入口(占位)。该插件是纯客户端实现,服务端不承担任何逻辑; 此入口仅用于让 dsh 的 client-module 扫描器发现浏览器端脚本
  • dsh/client.js — 浏览器端全部逻辑:扫描对话 DOM、渲染横线与面板、滚动跟踪、 跳转高亮、主题与响应式

技术说明

  • 数据来源是渲染后的对话 DOM:用户消息节点为 [data-chat-flow-kind="user"],对话滚动容器为 [data-conversation-scroll]。 插件不做任何会话日志解析、不访问服务端数据、不需要会话 ID。
  • 使用 Shadow DOM 隔离样式,不污染 dsh 界面;对 dsh 自身 DOM 的唯一改动是 跳转时对目标消息的临时 outline 高亮(1 秒后自动移除)。
  • 深色模式通过监听 <body>data-ds-dark-theme 属性自动切换。
  • 依赖 dsh Web 界面的稳定 DOM 标记(data-chat-flow-kind / data-conversation-scroll);若 dsh 后续版本改动这些标记,插件会静默失效 (不显示横线),不会影响 dsh 本身的运行。

已知限制

  • 仅针对 Web 界面(dsh web),桌面端 / 终端界面不受支持
  • 若 dsh 更新了消息节点 DOM 标记,需要同步更新选择器
  • 「右侧存在其他面板时自动避让」为后续版本计划项,当前版本未实现

License

MIT