🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

布局宽度记忆 AkotaP/dsh-layout-memory

DeepSeek Harness
AkotaP10 天前有提交已提供中文文档扫描:未发现敏感能力

记住侧边栏与面板宽度,刷新重启后自动恢复

29.2/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/11/2 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add AkotaP/dsh-layout-memory
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么[目录]—
dsh 原生插件 · chat
暂无时间戳·判据 →
装得上吗[实装验证]—
本站尚未做安装检查
暂无时间戳·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/03·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 10 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

README

由 DeepSeek 最新模型翻译生成
dsh-layout-memory DSH(DeepSeek Harness)Web 插件:记住左侧边栏与右侧面板的宽度,刷新或重启后恢复。 解决的问题 DSH 的布局壳(@deepseek-ai/dsh-client-ui-layout)把两侧宽度放在瞬时状态里: - 左栏初值 280px,clamp 到 264–420px;刷新、重启、收起再展开都会回到默认值。 - 右栏初值 null,首次打开取视口 45%,clamp 到 300px–视口 70%;刷新、重启后回到默认值。 - 右栏的打开状态由 DSH 按会话持久化(dsh.sidebar-right.v1.<sessionId>),所以重启后可能面板仍打开、宽度却已被重置。 插件只记忆宽度,不改打开状态、标签页或分栏。 行为 1. 记录:监听两侧拖拽手柄([data-side="sidebar"|"rightbar"])的 pointerdown / pointerup,手势结束后读取布局壳内联 grid-template-columns 的稳定列宽。 2. 恢复:启动时把存储的宽度写回布局 store 的 setSidebar() / setRightbar(),与拖拽手柄走同一条 action。
展开完整文档(README 剩余 1 节)
dsh-layout-memory

DSH(DeepSeek Harness)Web 插件:记住左侧边栏与右侧面板的宽度,刷新或重启后恢复。

解决的问题

DSH 的布局壳(@deepseek-ai/dsh-client-ui-layout)把两侧宽度放在瞬时状态里:

- 左栏初值 280px,clamp 到 264–420px;刷新、重启、收起再展开都会回到默认值。
- 右栏初值 null,首次打开取视口 45%,clamp 到 300px–视口 70%;刷新、重启后回到默认值。
- 右栏的打开状态由 DSH 按会话持久化(dsh.sidebar-right.v1.<sessionId>),所以重启后可能面板仍打开、宽度却已被重置。

插件只记忆宽度,不改打开状态、标签页或分栏。

行为

1. 记录:监听两侧拖拽手柄([data-side="sidebar"|"rightbar"])的 pointerdown / pointerup,手势结束后读取布局壳内联 grid-template-columns 的稳定列宽。
2. 恢复:启动时把存储的宽度写回布局 store 的 setSidebar() / setRightbar(),与拖拽手柄走同一条 action。
3. 收起再展开:监听 frame 的 data-sidebar-collapsed 属性,重新展开时重新应用记忆宽度(原生行为是回到 280px)。
4. 分辨率:只存绝对 px,恢复时交给布局壳原生 clamp,不做比例缩放。

存储

localStorage 单键 dsh.layout-memory.v1:

{ "v": 1, "left": 340, "right": 900 }

存储不可用(隐私模式、配额)或 JSON 损坏时,只关闭记忆,不影响页面。

安装

安装会修改 %USERPROFILE%\.dsh 下的 profile 配置,请确认后执行。支持 HMR 的 profile 通常会自动重组;不要自动重启 DSH 或打断正在运行的会话。

仓库:<https://github.com/AkotaP/dsh-layout-memory>

从插件页安装:侧边栏「插件」→「添加插件」,填入仓库地址 https://github.com/AkotaP/dsh-layout-memory。DSH 会先用 git ls-remote 探测仓库,再交给 pnpm;装完确认列表里该插件为启用状态。

命令行安装:

dsh plugin --profile desktop add https://github.com/AkotaP/dsh-layout-memory

让智能体安装(把下面这段发给 DSH 里的智能体):

把 https://github.com/AkotaP/dsh-layout-memory 装进当前 DSH 的 desktop profile:用侧边栏「插件」页的「添加插件」,或 dsh plugin --profile desktop add https://github.com/AkotaP/dsh-layout-memory。装完确认 profile 的 dsh.profile.bundles 里包含 dsh-layout-memory,并确认插件页能看到该插件;只有宿主明确要求时才询问是否重启,不要自动重启。

本地开发(link 方式,源码改动实时生效):

$profileDir = $env:DSH_PROFILE_DIR # 例如 ~/.dsh/profiles/desktop $repo = "E:\Data\Project\dsh\dsh-layout-memory"

1. profile package.json 的 dependencies 中加 link: "dsh-layout-memory": "link:E:/Data/Project/dsh/dsh-layout-memory"
2. dsh.profile.bundles 中加入 dsh-layout-memory
3. 建立链接 New-Item -ItemType Junction -Path "$profileDir\node_modules\dsh-layout-memory" -Target $repo

包内 cordis.patch.yml 已带 insert 行,不要再往 profile patch 里重复添加。

装好后可用宿主的只读健康路由确认(端口以实际 DSH Web 服务为准):

curl http://127.0.0.1:<DSH-Web-端口>/dsh-layout-memory/health # {"loaded":true}

卸载:在插件页卸载,或 dsh plugin --profile desktop remove dsh-layout-memory,并确认 dsh.profile.bundles 中已移除。

验证

1. 把左右宽度拖到明显非默认的值;
2. 刷新页面(F5),或退出 DSH 后重新启动;
3. 预期:左栏恢复拖动宽度;右栏若上次打开则打开并恢复宽度(打开状态由 DSH 自己决定);
4. 收起左栏再展开,宽度应为记忆值,而不是 280px;
5. 改变窗口大小后重启,右栏仍保持记忆的绝对 px,并被原生 clamp 到视口 70% 以内。

离线测试:

cd E:\Data\Project\dsh\dsh-layout-memory
node --test --test-isolation=none

限制

- 依赖非公开字段:宽度 action 不在 ctx.layout 的公开接口里(ILayout 只有面板切换)。插件通过 LayoutController 实例上的私有 panels 字段取 setSidebar / setRightbar,并做特性检测;未来布局包若移除该字段,插件会降级为只记录不恢复,并在控制台警告。
- 宽度偏好是全局的,不按会话区分;右栏打开状态仍按会话。
- 全屏右栏不记录:全屏时宽度为 100vw 且没有手柄,插件不会覆盖。
- 多窗口共享同一个 localStorage 键,后写覆盖先写(DSH 桌面通常单窗口)。
- 右栏不做跨分辨率比例缩放:宽度保持绝对 px,由原生 clamp 适配当前窗口,与直接拖拽的行为一致。
- 视口宽度小于 1024px 时,左栏由 DSH 自动收起;只有你手动展开时,插件才恢复宽度。

回滚

从 dsh.profile.bundles 移除 dsh-layout-memory,删除 node_modules 下的链接;如需清除记忆,再删除 localStorage 的 dsh.layout-memory.v1。

兼容性

- Node.js >=20
- DSH >=0.2.1-rc.2
预览分享卡片长什么样 ↓AkotaP/dsh-layout-memory
分享 · DeepSeek Harness Hub
AkotaP/dsh-layout-memory

记住侧边栏与面板宽度,刷新重启后自动恢复

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部