dsh-im
xmanrui
通过扫码或机器人凭据把IM机器人接入DeepSeek Harness(支持飞书、微信、钉钉、企业微信、QQ、Slack、Telegram、Discord和WhatsApp)。 Connect IM bots to DeepSeek Harness via QR code or credentials (9 channels).
Max-Null/dsh-chat-rail
画卷式消息导航栏:右侧竖条 hover 画卷展开,scroll-spy 高亮跟随;消息收藏、快速填充;自动屏蔽 DSH 自带轮次导航,无冲突 · Scroll-sweep message rail for DeepSeek Harness: hover unfold, scroll-spy highlight, favorites & quick fill; hides the built-in turn rail when installed
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:Max-Null/dsh-chat-rail
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
本插件属于 *`@max-null/插件系列**——这一系列共同构成 **[SSID(思灵 · Seek Soul in Darkness)](https://github.com/Max-Null/seek-soul-in-darkness)** 桌面体验。SSID 是整合它们的盒:dsh-capture·dsh-chat-rail·dsh-chinese-thinking·dsh-draft-polish·dsh-guardian·dsh-habit·dsh-memory·dsh-node-appearance·dsh-plugin-center·dsh-quick-toolbar·dsh-skill-mcp-center·dsh-ssid-panels·dsh-ssid-zh-ui·dsh-achievements`。
This plugin belongs to the *`@max-null/` family — a set of plugins that together form the SSID (思灵 · Seek Soul in Darkness)** desktop experience.
面向 DeepSeek Harness 的画卷式消息导航栏:会话面板右侧的一条竖排导航,每条用户消息一个指示点,scroll-spy 跟随阅读位置,hover 展开画卷查看消息列表,点击跳转任意历史消息;消息 hover tip 内嵌「提问&回答」直达区,收藏 + 一键回填输入框。
不同于市面上"面板弹出式"的导航插件,dsh-chat-rail 采用画卷式展开:收起时是一条干净的竖条,hover 时从右往左平滑展开,像打开画卷一样。
| 画卷展开:只显示收藏(通栏 header + 黄色收藏条) | 消息操作按钮(收藏 ★ / 填充 ➕ / 复制)+ 折叠态导航条 |
|---|---|
![]() |
![]() |
市面上的会话导航插件(chat-timeline / milestone / msg-nav / turn-rail…)大多只做"指示条 + 点击跳转",在真实使用中有一堆体验问题。dsh-chat-rail 针对每一个问题给出了答案:
| 能力 | 市面同类 | dsh-chat-rail |
|---|---|---|
| 与侧边栏/底栏共存 | ❌ 展开时与 better-sidebar 错位、遮挡 | ✅ 锚定会话区右列 + 底栏变量避让:导航条实时跟随会话列右缘,官方右侧边栏 push 展开时会话列左移、导航同步左移(共享同一段过渡动画),不再被压在面板下面;底栏展开收起按 --dsh-sidebar-height 垂直避让,互不遮挡 |
| 空间不足 | ❌ 依然悬浮,遮挡会话 | ✅ 自动退场:会话区剩余宽度不足(<260px,如窄屏右侧边栏完全遮住会话)时导航条整体淡出,空间恢复即回来 |
| 展开形态 | ❌ 面板突兀弹出,高度错位 | ✅ 画卷式展开:单容器从右往左平滑展开,高度天然一致 |
| 阅读位置跟随 | 高亮点会跑出显示区 | ✅ 导航条自动滚动,高亮点持续居中:无论会话滚到哪里,当前消息的指示点始终在导航可视区中央 |
| 切换会话定位 | 回到顶部 | ✅ 自动定位到新会话当前阅读位置 |
| 消息预览 | 浏览器原生 title(与悬停双重提示) | ✅ 自绘 tip 面板:完整内容、动画结束后精准定位、无原生 title 干扰;面板底边不越过输入区(贴底时内部滚动或整体上移);含图消息在文本上方显示缩略图,tip 底部还有「提问&回答」直达区 |
| 消息信息 | 只有预览文本 | ✅ 编号 + 相对时间 + 文本三列对齐:编号固定宽、时间靠右,文本区域最大化且整齐 |
| 长会话跳转 | 干等卡死 | ✅ 加载反馈:跳转远距离消息时显示 spinner + "加载中",收起态只留图标 |
| 消息收藏 | ❌ 大多数只能看不能存 | ✅ 收藏 + 快速填充:消息行星标收藏(黄色导航条联动)、「只显示收藏」为面板通栏 header(折叠/展开同构、贴顶不遮条目)、加号一键全文+附件回填输入框 |
| 主题适配 | 部分 | ✅ 全部使用 DSH 主题变量(--dsw-alias-*),浅深色无缝适配 |
| 无侧边栏兜底 | ❌ 依赖特定插件 | ✅ 纯 DSH 环境开箱即用,锚定会话区右缘 + 垂直居中 |
--dsh-sidebar-height 垂直避让,与面板共享同一段 transition 动画同步移动,永不错位(包括底栏右上角的收起按钮)。--dsh-sidebar-width。[data-conversation-scroll])自带的 Y 轴滚动条被本插件画成透明——它与导航条的位置指示功能重复,官方内核 0.1.5 起又把 bar 从「紧贴内容边缘」改为「离边缘 2px」,观感上更显眼。只覆盖 thumb 颜色、保留官方 8px 槽位(scrollbar-gutter: stable 是官方为输入卡跨视图不位移而保留的),滚轮/触控板滚动不受影响。0.1.2-alpha.1+ 自带 TurnNavigator(轮次导航竖轨)。安装本插件后自动隐藏官方竖轨(aria-label 双文案锚点,不依赖构建 hash),由本插件统一承担会话导航;未安装本插件时官方导航照常显示。设置卡片另提供「使用官方轮次导航条(对比模式)」开关,可随时切回官方竖轨对比(免重启生效)。shell.overlay 20 → 全屏右面板 40」(正本 AppFrame.module.css)。导航条定在 19——这条梯度里能取的最大值:压过右侧面板、拖拽手柄与标题栏座位,又停在 shell.overlay 之下。菜单与 tooltip(100)、以及 shell.overlay 里的应用级浮层(例如插件中心的「插件更新」弹窗)仍然赢它。IConversation 类型面上的运行时方法。内核 0.2.0-rc.2 把它们改成了 createDrafts(sessionId, files) / addAttachments(ids)(此前是 createDraftImages(files) / addImages(ids))。插件对两代名字都探测,按内核实际提供的那一代调用;两代都没有时退回纯文本填充。0.1.2-alpha.3+ 内核):会话历史按窗口分页加载(hasMore)时,点击跳转走官方 loadThrough(seq) 精确跳转装载器(200 条/页一次到位),替代旧版逐页 loadOlder(50 条/页)循环;旧内核无 loadThrough 时自动回退逐页循环。>=0.1.7-rc.2 <0.3.0,与 peerDependencies 一致。内核按 semver.satisfies(运行时, 范围, { includePrerelease: true }) 逐个校验 @deepseek-ai/dsh-* peer——预发布版参与比较,caret 写法 ^0.1.7-rc.2 的上界是 0.2.0-0,对 0.2.0-rc.1 判 false 会让插件不被装载,所以上界写成显式的 <0.3.0。dsh plugin --profile <name> add @max-null/dsh-chat-rail
或手动加入 profile 的 package.json dependencies + dsh.profile.bundles:
- id: chat-rail
name: '@max-null/dsh-chat-rail'
0.1.2-alpha.3+ 走官方 loadThrough 精确跳转,旧内核回退逐页循环)$DSH_HOME/chat-rail-favorites.json,缺省 ~/.dsh/),刷新与重启后保留——不走 localStorage(按 origin 隔离,端口一变就丢),旧 localStorage 数据只在首次加载时迁移一次lib/index.mjs):注册 chatRail 会话投影——从 session log 折叠用户消息锚点 { seq, time, text, hasImage, images, id }(排除插件/工具注入的上下文行)lib/client.js):conversation.input.dock 槽注入,portal 渲染到 body;右缘实时测量会话列定位(ResizeObserver + 兜底采样),侧边栏 push 展开时跟随移动,空间不足时淡出chatRail 投影 → 已加载聊天节点 → 后台 loadOlder 循环本插件是 SSID(思灵 · Seek Soul in Darkness) 全家桶的一员;也可以单独安装到任意 DSH profile——除设置卡片外不依赖其它同系列插件(右侧边栏避让、导航条定位都走官方 DOM 契约,缺失时自动降级)。
pnpm install
pnpm typecheck # tsc 严格类型检查
pnpm build # 产出 lib/
MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: chat。