Files
deepseek-harness/packages/client/ui-sidebar/README.zh.md
T

5.4 KiB
Raw Blame History

description, kind
description kind
dsh Web 客户端的侧边栏外壳插件:品牌行、New Session 操作、折叠控件、可感知滚动的区域席位与底部固定的 Settings 席位。 package-reference

@deepseek-ai/dsh-client-ui-sidebar

English | 中文

概述

dsh-client-ui-sidebar 是 dsh Web 客户端的侧边栏外壳:用户看到品牌行、启动新会话、折叠进布局拥有的 56px 轨道,并从底部固定的席位进入 Settings;可感知滚动的区域席位承载 Workspace 与 Session 浏览器。渲染到 sidebar.workspaces 的 Workspace 与 Session 浏览器归 ui-workspace 所有;本包既不派生其中的行,也不持有其视图偏好。部署包可以单独替换品牌标记或名称,而无须替换 New Session 控件或轨道几何;New Session 会针对显式指定、当前或最近活跃的 Workspace 启动运行时的页面局部前端 Session Intent。折叠到布局拥有的 56px 轨道仍属于本地呈现行为。

目录


使用本包

侧边栏是导航外壳:用户看到品牌、启动新会话、折叠轨道并到达 Settings。功能插件填充它的席位——ui-workspace 填充 sidebar.workspacesui-settings 在 sidebar.settings 注册触发行与设置面板。

品牌与 New Session

展开的品牌行把 sidebar.brand.marksidebar.brand.name 渲染为两个独立的 single slot;收起轨道则渲染同一个 mark slot。没有占位者时,外壳使用鱼形标记和本地化的本地构建标签。完整构建会在标签下方显示代码徽标;该徽标使用 DSH_CLIENT_VERSION、可选的 7 位 DSH_CLIENT_COMMIT_HASHDSH_CLIENT_GIT_DIRTY=true 组装成 version[-commit][-dirty];缺少版本元数据时不显示徽标。New Session 优先使用作用域操作明确指定的 Workspace,否则使用当前 Session 所属 Workspace,再否则使用最近活跃 Workspace;一个 Workspace 都没有时则清空选择,进入空白 New Session 页面。

折叠行为

实时收起时,展开内容在当前宽度淡出,上方控件共用一次淡入并左移进入 56px 轨道,由布局的栏滑动结束整段动画。页面初始即为收起状态时会静态渲染轨道;减少动态效果模式会禁用两段过渡。固定在底部的 sidebar.settings 控件只共用淡入时序,不发生横向位移。

滚动条

栏内的滚动条是一种指针可供性:只要指针不在栏内,外壳就把滚动条间接层重新绑定为 transparent;指针离开后滑块再保留 2 秒,因此没人指向的列表不会带着滚动条。避免行位移的空间预留属于滚动区域本身(ui-workspace),所以显示滑块不会引起重排。


理解实现

实现细节——点击展开

外壳是纯组合:SidebarRootComponentProps 组合布局 owner share、全局 useSessionsuseWorkspaces 钩子、已声明的品牌、sidebar.workspacessidebar.settings 子 slot,以及注入的 startSession 与侧边栏切换回调。这里没有插件 store。

Slot 纪律

声明感知的 slots.inject() 让替换包无论先于还是后于侧边栏激活都能生效。页脚承载 sidebar.settings 席位:侧边栏只渲染固定在底部的布局 slot,并共享其栏状态(wide)。/client 导出接口只包含插件主体(apply/inject)及约定类型;SidebarRoot、行组件与树派生仍由 slot 注册封装在包内。


进一步探索

以下页面覆盖填充外壳席位的各个界面与组合模型。

  • ui-workspace——渲染到 sidebar.workspaces 的 Workspace 与 Session 浏览器。
  • ui-settings——在 sidebar.settings 注册触发行与设置面板的设置领域底座。
  • ui-layout——折叠所使用轨道与栏状态的布局 owner。
  • ui-theme——外壳所重新绑定的滚动条 token 间接层。
  • slot 系统标准——席位背后的组合模型。

模型体验

无。该包是浏览器端 UI 插件层,不注册任何面向模型的内容。

KV Cache 影响

无;该包既不组装也不发送提供方请求。

已知限制与延期工作

这些限制定义外壳拥有什么、其占位方拥有什么;它们是当前包约束。

  • Session 状态点渲染由 ui-workspace 持有:本外壳没有可用的 done/error 通知数据源。
  • Workspace 浏览行为由组合持有:分组、排序、搜索与行状态都属于 ui-workspace,不属于此外壳。
  • 「New task completed」未读标记是本地查看状态:完成时间 > 上次查看时间这一事实永远不会到达宿主。

开发备注

维护者的工作上下文——点击展开

无。