zink-ning-lkr/dsh-ui-state
zink-ning-lkr★ 1JavaScript最后同步: 2026-08-20
DSH Web GUI 界面状态持久化插件:侧边栏开合/宽度/详情面板/对话滚动位置恢复
README 摘要
dsh-ui-state 界面状态持久化插件(DSH Web GUI)——官方侧边栏与详情面板跨重启恢复。 功能 - 侧边栏开合 :展开/收起状态自动持久化,重启 DSH 后自动恢复。 - 侧边栏宽度 :拖拽后的宽度自动持久化,重启后模拟拖拽恢复到上次宽度(264–420px 官方契约范围)。 - 详情面板(details 列)开合 :右侧详情面板的打开/关闭自动持久化并恢复(仅在会话打开时记录,避免把"无会话"误判为用户关闭)。 - 对话滚动位置 :切走/隐藏页面时保存当前对话的非底部阅读位置;视图因重连/重建回到顶部后自动恢复到切走前的位置(按消息 anchor 对齐,新消息追加也不会偏)。 - 无需配置 :全自动,无设置界面。 原理 官方 layout store 是瞬态设计(宽度/开合不持久化)。插件: 1. 检测 :轮询 AppFrame( [data-shell-overlay] 锚点)的 data-sidebar-collapsed 属性与 grid-template-columns 第一列,变化防抖 600ms 写入 settings.yaml。 2. 恢复 :启动后从 /.dsh/settings.yaml 读 ui-state 段: - 侧边栏开合:调用官方 ctx.layout.toggleSidebar() (等 layout 服务挂载,自动重试) - 侧边栏宽度:找到 [data-side="sidebar"] 拖拽手柄,派发合成 pointer 序列(pointerdown/move/up, 与官方 DragHandle 的监听协议一致;同步窗口内 stub pointer capture) - 详情面板: ctx.layout.openDetails() / closeDetails() (仅在会话打开时恢复) 3. 窄屏保护 :视口 < 1024px 时官方自动折叠侧边栏,此时不持久化、不恢复,避免与自动行为打架。 配置存储 兼容性 目标 DSH 0.1.0-rc.8 ( dsh CLI / profile 装配线 rc.8 时代)。0.2.0 已对 rc.8 组合逐项核对,本插件用到的官方契约全部原样保留: - settings 接缝 : @deepseek-ai/dsh-settings@^0.1.0-rc.8 , register / describe / mutate (含 SettingsConflictError 冲突拒绝与 revision 乐观锁)不变。 - webServer 路由 : register({ kind: "exact", path, handler }) 签名不变。 - layout 服务 : ctx.layout.toggleSidebar() / openDetails() / close…
在 GitHub 查看完整 README →分类
Enhancement suite for Gemini, AI Studio, Claude & ChatGPT — plus a prompt manager for any web UI, DeepSeek Harness included. / 面向 Gemini、AI Studio、Claude 与 ChatGPT 的增强套件;提示词管理器可用于任意 Web UI,含 DeepSeek Harness。
★ 19,772
zhu1090093659/dsh-web-uiPlugin and skin collection for DeepSeek Harness (DSH) Web UI - task board, git graph, right-side panel, remote mobile UI, pet, live token stats, and skin center.
★ 5,470
omdsh-dev/DSH-better-sidebar开放的侧边栏底座,支持三方拓展注册新侧边栏页面。内置文件渲染编辑/终端/侧边对话/Git/子代理页面 | Open sidebar foundation, supports third-party extensions to register new sidebar pages. Built-in file rendering/editing, terminal, side chat, Git, and sub-agent pages.
★ 2,596