dsh-deepexcel
DiscoveredDeepcel Workbook · DeepSeek Harness (dsh) Skin Center v2 Skin: Excel-style workbook, cell-based messages, sheet grid, workbook tabs. Complete v2 port of Small-tailqwq/dsh-deepcel.
Deepcel 工作簿 · v2 皮肤
Small-tailqwq/dsh-deepcel 的 v2 skin 资产目录重写。v1 是一个 cordis 客户端插件(src/client/index.ts + CSS Modules + skin.json v1 清单);v2 按 @linxin666/dsh-client-ui-skin-center 的 skin-manifest-v2 契约重写为纯资产目录,由 skin-center 作为唯一加载器/渲染器。
目录
deepcel/
├── skin.json # v2 清单(skinManifestVersion: 2)
├── skin.css # L1 token + L2 语义样式(工作簿 chrome、工作区网格、坐标)
├── patches.css # L3 自由选择器补丁(原生面板/菜单/对话框/消息改造成单元格)
├── hooks.mjs # facets.client 逃生舱(v1 客户端 JS 移植,defineSkinHooks)
└── preview/ # light.webp / dark.webp 预览图
v1 → v2 改动要点
| v1 | v2 |
|---|---|
cordis 插件 + apply(ctx) + ctx.effect | defineSkinHooks() 默认导出,apply(ctx) + ctx.onCleanup(幂等) |
inject: ['locale', 'layout', 'sessions'] 服务注入 | 无服务注入;locale 读 document.documentElement.lang(MutationObserver 监听),侧边栏点击原生按钮,会话跟踪选中的原生会话行 |
CSS Modules(cls('workbookChrome') 哈希类名) | 明文类名(.workbookChrome 等),加载器在 html[data-dsh-skin="deepcel"] 下强制作用域 |
body[data-dsh-deepcel] 作用域 + :global(#root) | 全部选择器去掉 v1 前缀,由加载器重写为 html[data-dsh-skin="deepcel"] …;:global(#root) → #root |
亮/暗 token 写在 body[data-dsh-deepcel] / [data-ds-dark-theme] | token 写在 :root(亮)与 body[data-ds-dark-theme](暗),加载器自动克隆 root-body token |
v1 字段 package / wiring / bodyAttr | 移除(v2 fail-closed,遗留字段仅告警) |
--dsw-alias-* 全量 remap + --deepcel-* 布局变量 | 保留,新增 --dsw-alias-label-primary-foreground: #fff 满足主按钮对比度契约 |
hooks 信任模型(重要)
skin-center 的安全模型:用户目录直接放置的皮肤($DSH_HOME/skins/<id>/)默认不运行 hooks——GET /skins/<id>/hooks.mjs 返回 403,除非该皮肤通过 provenance 校验(dsh-market.provenance.json 中的 sha256 与磁盘文件字节一致,source: https://dsh-market.com)或作为 builtin 安装。
本皮肤自带 dsh-market.provenance.json(已同步全部文件哈希)。安装时必须把该文件一起放入皮肤目录,否则 hooks 被拒,工作簿 chrome(功能区、公式栏、行列坐标、工作表标签、选区)不渲染,只剩声明式外观:
- ✅ 正确安装:复制
skin.json skin.css patches.css hooks.mjs dsh-market.provenance.json preview/到$DSH_HOME/skins/deepcel/→ hooks 放行(catalog 显示channel: market,warnings 为空,hooks.mjs返回 200)。 - ❌ 漏掉 provenance:hooks 被拒(403),无功能区/网格/坐标。
若 provenance 缺失且无法补上(例如想完全绕开市场来源),备选方案是把皮肤作为 builtin 安装进 skin-center 包:
# 1) 复制皮肤目录进 skin-center 内置 skins/
cp -r <此目录> "<harnessHome>/profiles/web/node_modules/@linxin666/dsh-client-ui-skin-center/skins/deepcel"
# 2) 把 "skins/deepcel" 追加到该包 package.json 的 files 白名单
# (shippedSkinIds 据此把 deepcel 列入目录,origin=builtin → hooks 放行)
# 3) 重启 dsh web(shippedSet 在插件挂载时冻结,需重启才能重新读取白名单)
布局降级
v2 加载器会注入一条 viewport-lock 规则,强制 html[data-dsh-skin] body { padding: 0 !important }。因此 v1 的 body padding 方案不可用:
- 功能区的固定偏移改由
body[data-deepcel-chrome] #root { padding: … }承载; - 所有几何/位移规则(hero 布局、侧边栏折叠、工作簿流网格)都挂在 hooks 设置的
body[data-deepcel-chrome]标记后,仅当 hooks 运行时才改变原生布局; - hooks 被拒(仅声明式生效)时,页面保持原生几何,只叠加 token/补丁外观。
原生控件可用性
- 右上角原生面板开关(底部面板 / 侧栏 / 详情)保持可点:
titleRow仅headerControls接收点击,其余区域指针穿透给原生控件,不被工作簿 chrome 遮挡。 - 侧栏开关不隐藏(原生「展开/收起侧边栏」与状态栏
<按钮共存),侧栏工具完整保留。 - 新会话 / 新工作区 / 设置由工作簿功能区代理,原生重复入口通过
data-deepcel-native-proxy隐藏。
验证
GET /api/skin-center/v2/catalog→ 出现origin: user, channel: market, id: deepcel(warnings 为空)GET /api/skin-center/v2/skins/deepcel/stylesheet|patches|hooks.mjs→ 200POST /api/skin-center/v2/active {"active":"deepcel"}→ 应用成功,html[data-dsh-skin="deepcel"]生效,工作簿 chrome / 侧栏 / 面板开关全部可用
许可与商标:沿用上游 BSD-3-Clause 与 NOTICE 声明(Deepcel 独立社区项目,与 Microsoft 无隶属关系)。
Comments
Loading…
Similar plugins
by Dely0
DSH 个人工作台:日历 + 任务列表 + AI 澄清/拆解/执行/复盘 | Personal workbench for DeepSeek Harness Web: calendar + task list + AI assistant
★ 34
↓ 1.1k/wk
MIT
TypeScript
Oct 5, 2026
dsh plugin --profile web add @dely0/dsh-personal-workbenchby Small-tailqwq
一款模仿 excel 的 dsh 皮肤
★ 14
BSD-3-Clause
JavaScript
Aug 13, 2026
dsh plugin --profile web add @dsh-external/dsh-client-ui-skin-deepcelby 123twtd
DeepSeek Harness (dsh) 可切换皮肤包管理器:皮肤包发现/激活/ZIP 导入,适配 0.1.x,含爱弥斯示例皮肤
★ 0
JavaScript
Sep 3, 2026
dsh plugin --profile web add dsh-skin-managerby ice-ai-lab
Codex-style sidebar skin for the DeepSeek Harness Web GUI: a Projects + Recents browser, a New chat row that starts a session without picking a project and allocates its own working directory, and a d
★ 0
MIT
JavaScript
Sep 12, 2026
dsh plugin --profile web add dsh-plugin-codex-uiby tingfeng347
DeepSeek Harness 的 VS Code 风格本地开发工作台:文件管理、Monaco 编辑、文档预览、搜索、Git、分屏终端与 DSH 对话一体化。
★ 11
↓ 253/wk
MIT
TypeScript
Sep 1, 2026
dsh plugin --profile web add dsh-vscode-workbenchby g1998815
DSH(DeepSeek Harness) 右侧原生工具侧边栏插件:文件系统浏览器 / Git 变更与 diff / 会话变更 采用·撤回 / PTY 控制台。Windows 直连 node-pty,跟随 DSH 主题,RPC fail-closed。
★ 3
JavaScript
Aug 16, 2026
dsh plugin --profile web add dsh-workspace-tools