建议:将「对话导航」拆为可插拔插件,或至少补齐总数显示与超长方案 #5274
AbelKeithsun
started this conversation in
Ideas
Replies: 3 comments 2 replies
|
支持。官方做的的还没有第三方的好用 |
1 reply
1 reply
|
官方能不能吸收一下?现在最新版的这个钢琴条样式是可以,但是没有总数和快速的一个跳转,感觉差很多,而且一旦对话框空间变小,它就不显示了,这也是个坑啊。 |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
建议:将「对话导航」从外壳中拆出为可插拔插件,或至少补齐导航条的总数显示与超长方案
背景 / Background
我是 DSH 外部插件
dsh-question-nav的作者。它为 DSH Web GUI 的对话栏加了一条竖向圆点导航:每个圆点对应一个用户提问轮次(turn),悬停放大、弹出该轮提问全文与发出时间的卡片、点击可跳转到对应消息;轮次过多时条带限高、分页翻动,并带有「当前位置」高亮标记。这个需求其实应该是对话 UI 的基础能力(尤其长会话时没有它,回看某个提问非常困难)。与其在插件里做,不如官方把它做进外壳/作为官方插件——这也是我来提建议的原因。
一、强烈建议:把「对话导航」拆成可插拔的插件能力
现状痛点:现在这种导航只能靠第三方插件实现,而我是在逆向
session.getSnapshot().chat这类内部数据结构、并监听 DOM([data-chat-anchor-key]、[data-chat-flow]、[data-conversation-scroll])才做出来的。这在每个 SDK 版本升级时都可能被打破(例如 0.1.1-rc.1 → 0.1.2-alpha.2 里session.getSnapshot().chat就被移除了)。建议:DSH 外壳提供一套稳定的「会话导航」服务/接口:
chat快照形状;shell.overlay这类已有插槽之外,再留一个「conversation nav」专用插槽),让第三方导航实现可以插拔替换——用户能装不同的导航风格,官方也能保留一个默认实现;这样:插件不再需要脆弱的内部结构依赖;用户能按喜好换导航、选位置;官方更新 UI 时也不会反复破坏第三方导航。
二、若暂不能插拔:请补齐「总数显示」
哪怕不拆插件,也请至少在现有导航里加上:
这两点对长会话定位非常重要,属于成本很低、收益很高的增强。
三、轮次过多、条带超长时的展示方案(推荐按我的实现)
长会话(几十上百轮)时,简单的「圆点全画出来」会溢出屏幕。我的方案,供官方参考:
这套方案已经在一个真实的 Web GUI 上跑通,含滚动条避让(右对齐时让位原生滚动条)与明暗主题适配,可直接作为官方默认实现的参考基线。
四、导航条位置:支持左右切换
导航条放在对话栏哪一侧是很影响日常体验的选项,建议官方默认导航直接内置:
--dsh-scrollbar-width)让位,保证原生滚动条始终可见、可点(与外壳 composer-seat 的做法一致)。我的实现已处理好这一点。这个能力成本很低,但对左右手习惯、屏幕空间利用都是实打实的提升。
结尾 / Closing
src/core/里与 UI 解耦的纯逻辑 + 插槽注入)整理成 proposal 或直接贡献代码。@luziyang2026/dsh-question-nav),GitHub 上有完整源码与截图,可随时对照参考。谢谢 DSH 团队!这个项目真的很有潜力,希望导航这类基础体验能尽快进入官方能力。
注:若官方已规划相关能力,请忽略并保留此条供讨论参考。
All reactions