# dsh-deep-whale

> Applies the "Orca Link" skin to the DSH web interface: pearl white mechanical cabin, obsidian orca operator, and electric blue link signals. Pure display layer only—no access to any DSH services.

## Metadata

- Author: [@Small-tailqwq](https://github.com/Small-tailqwq)
- Repo: <https://github.com/Small-tailqwq/dsh-deep-whale.git>
- GitHub: [Small-tailqwq/dsh-deep-whale](https://github.com/Small-tailqwq/dsh-deep-whale)
- Stars: 1,505
- Language: TypeScript
- Topics: `dsh`, `dsh-plugin`
- Forks: 50
- Open Issues: 21
- Last push: 2026-08-20T08:18:05.000Z
- Added: 2026-08-20T00:00:00.000Z

## Install

```bash
dsh plugin --profile web add github:Small-tailqwq/dsh-deep-whale/orca-link
```

## Wiki

## 一句话定位
orca-link 是一套面向 DeepSeek Harness Web 端的展示型皮肤，把"虎鲸链路"主题铺到对话背景、侧栏、状态角色与系统图标上。它不改任何 DSH 行为——不开新服务、不发 Cordis 事件、不碰模型请求——只是给 Web 界面换一身黑白机械风皮肤。

## 核心能力
- 全局直角契约：圆角归零、状态信号点与 favicon 全部正方形化，按钮/输入框/卡片/菜单/弹窗/提示/标签/头像/滚动条统一一套直线视觉
- 运行时图标重绘：命中宿主的 SVG 图标只追加直线图形层（不破坏原节点），卸载即整体还原；覆盖发送、停止、收件箱、待办三态、上下文用量、文件夹等十余种场景
- 亮/暗各一组 16:9 场景：空态角色和工作台画面以 640ms 交叉淡入淡出切换，素材以 data URI 内嵌到 client bundle
- 侧栏常驻状态角色：十状态（待机/同步/工作/授权/输入/审阅/完成/失败/离线/就绪）、多帧连续动作，复用会话状态自动驱动
- 峰谷定价红绿灯：按北京时间实时显色（09:00-12:00 / 14:00-18:00 为高峰、其前 10 分钟为切换窗口、其余为空闲），悬浮查看详情卡
- 输入框动效：英雄页→工作页以 560ms 交叉淡化、向上滚动自动隐藏、左右把手可拖拽折叠为还原小条
- 移动端自动隐藏大幅场景与舞台装饰；`prefers-reduced-motion` 时停掉角色逐帧动画与打字机

## 技术实现
- **语言**: TypeScript（同时被打成 CJS bundle 以被宿主 module loader 加载）
- **关键依赖**: `@deepseek-ai/cordis`（^4.0.1，对应 DSH rc.6+）、`lightningcss`（构建期编译 CSS Modules）、`tsdown`（构建打包）
- **架构模式**: Cordis `ctx.effect` 生命周期：`apply()` 启动时由 13 个独立控制器分别接管场景、图标、状态角色、定价灯、composer 动效/折叠、hero 打字机、侧栏搜索补全、窗口恢复提示抑制、terminal 性能、settings overlay 等；`ctx.effect(() => () => {...}, 'ui-skin-orca-link: technical chrome')` 注册的统一反激活器一次性还原所有 DOM、CSS 变量、Observer、setInterval、document.title、favicon
- **入口文件**: `src/index.ts`（仅 host 端无操作的占位 `apply()`）；真正的实现在 `src/client/index.ts`，构建产物 `lib/client.js`（含全部素材 data URI）
- **宿主注入**: 通过 `cordis.patch.yml` 把 `ui-skin-orca-link` 注册到 Web 插件名单，由 DSH 皮肤中心按 home-layer 互斥切换

## 适用场景
想把 DSH Web 端换成"虎鲸链路"黑白机械风皮肤、喜欢扁平/直角视觉的用户；只关心装饰不想动 DSH 任何行为的人；关心隐私、希望素材全部本地化（无外网请求）的用户。前提是已经使用 DSH Web 端，并愿意在皮肤中心勾选启用。

## 前置依赖与兼容性
| 依赖 | 最低版本 | 说明 |
|---|---|---|
| DSH | 0.1.0-rc.6+ | peerDependencies 锁 `@deepseek-ai/cordis` ^4.0.1（package.json:28-30），与同仓 maid-atelier 一致 |
| Node | 未声明 | 皮肤只在浏览器端加载，构建由仓库所有者完成，运行时无 Node 要求 |
| 平台 | 跨平台 | dsh.client.platform = "web"（package.json:14-22），所有带现代浏览器的桌面/移动 OS 都可运行 |
| 原生模块 | 无 | 全部素材以 data URI 内嵌进 client.js，不依赖任何 Node 原生模块或外部资源 |

## 安装方式
```bash
dsh plugin --profile web add github:Small-tailqwq/dsh-deep-whale/orca-link
```

> 安装后还需要在 DSH 皮肤中心（`dsh-skin`）勾选启用该皮肤才会触发 `apply()`。

## 配置项
本插件无需额外配置。所有"参数"都以皮肤内固定值写死在源码里（如 LINK 状态十档文案、定价高峰窗口 09:00-12:00 / 14:00-18:00、composer 折叠阈值 56%、侧栏宽度阈值 96px 等），皮肤中心只负责开/关二选一。

| 配置 | 类型 | 说明 | 默认值 |
|---|---|---|---|
| 无 | — | 本插件无需额外配置 | — |

## 常见问题

**Q: 装上后界面没变化也没报错，怎么办？**

A: 仅安装不会自动激活。打开 DSH 皮肤中心（`dsh-skin`），在皮肤列表里勾选"虎鲸链路"即可生效；卸载同理，在皮肤中心取消勾选，反激活器会还原一切。

**Q: 皮肤和 DSH 自带主题/其他第三方皮肤能并存吗？**

A: 不能。`cordis.patch.yml` 走 home-layer 互斥切换（`wiring.id` 为 `ui-skin-orca-link`），同一时刻只能激活一套皮肤。

**Q: 桌面端（Electron）能装吗？**

A: 不能。`package.json` 显式声明 `dsh.client.platform: "web"`，皮肤只注入到 Web GUI；桌面壳走自己的宿主。

**Q: "LINK ACTIVE" 那块小灯有时变绿有时变红，规则是什么？**

A: 定价红绿灯按北京时间（UTC+8）实时显色：09:00-12:00 与 14:00-18:00 为高峰（红）、高峰开始前 10 分钟为切换窗口（黄）、其余时段为空闲（绿，定价为高峰一半）。切换时间仅在 09:00 / 12:00 / 14:00 / 18:00 四个边界发生（src/client/pricing-light.ts:24-77）。

**Q: 在浏览器里切换暗色主题，皮肤会跟着变吗？**

A: 会。`settings-overlay.ts` 里的 MutationObserver 监听 `data-ds-dark-theme`（src/client/settings-overlay.ts:46-55），暗色时切到对应的机械舱夜景与电蓝信号配色。

**Q: 卸载后页面布局乱了？**

A: 极少见，但理论可能：若在 `apply()` 还未完成时强制卸载，部分 body 属性可能没还原。重新启用再卸载一次可恢复。

**Q: 浏览器开启了"减少动效"偏好，皮肤会停掉动画吗？**

A: 会。状态角色和 headline 打字机会检查 `prefers-reduced-motion: reduce`，开启时状态角色停止逐帧切换、headline 直接显示完整文本（src/client/status-character.ts:318-322 / src/client/headline-typewriter.ts:40-41,69-73）。

## 上手难度
入门 — 装好后在皮肤中心勾选一次即可，没有配置项、没有命令、没有快捷键，普通用户即可上手。

## 已知问题与限制
- ResizeObserver 在极老浏览器（IE、早期 Safari 版本）不可用时，侧栏宽度联动会降级为仅依赖 `--orca-sidebar-width` 初始值，缩放时 CSS 变量不更新（src/client/index.ts:171-175）
- 切到后台再切回时浏览器会自动重放"激活"提示，皮肤会抑制侧栏 tooltip 直到用户主动移动指针/按键以避免误触发（src/client/window-resume.ts:8-46），但极个别浏览器不触发 `visibilitychange` 时提示仍可能出现
- 皮肤全部素材内嵌进 `lib/client.js`，首次安装需要下载/解压这个包
- 严禁任何商业性使用，且必须保留完整署名链（详见 `NOTICE`）；修改并再分发时须以相同方式共享
- 开发构建需要在上游 `dsh-web-ui` 仓库的 `packages/skins/orca-link/` 目录下进行（README.md:35-45），本仓库只分发成品

---

This document is auto-generated by [deepseek-plugin.org](https://deepseek-plugin.org). HTML page: [dsh-deep-whale](https://deepseek-plugin.org/plugins/Small-tailqwq/dsh-deep-whale/orca-link)
Wiki generated by AI (model: `MiniMax-M3`)
