CochraneK/dsh-gate-game-plugin

dsh-gate-game-plugin

Logo-eating mini-game + one-click lock button for DeepSeek Harness web UI

未分類cordisdeepseek-harnessgame

dsh-gate-game

A self-contained break-mode mini-game for the DeepSeek Harness Web UI

Install · Compatibility · Agent handoff · Development

这是一个用于 DeepSeek Harness Web UI 的标准 Cordis 客户端插件:在侧栏底部加入休息游戏按钮,打开全屏吃 logo 小游戏;不修改 Harness 应用源码。

[!IMPORTANT] 这个全屏层只是休息/防误触 UI,不是安全锁屏,也不提供认证或访问控制。任何能操作当前浏览器会话的人都可以点击“返回工作”。

效果预览

侧栏入口

游戏画面

功能

  • 休息模式:侧栏底部一键进入全屏小游戏,不修改 Harness 应用代码。
  • 多种控制方式:鼠标、触控/触控笔(Pointer Events)、方向键和 WASD 都可控制大 logo;Esc 可随时退出。
  • 吃 logo:下落 logo 被吞噬后累计分数,大 logo 持续变大,达到极限会爆裂并重生。
  • 最佳分数:最高分保存在浏览器 localStorage。
  • 更省资源:碰撞检测使用内存坐标,不再每帧为所有小 logo 做 DOM 布局读取;切到后台标签页时自动暂停。
  • 无障碍/舒适性:支持键盘、focus 样式、prefers-reduced-motion、响应式 HUD 和系统深色模式。
  • 自包含图标:浏览器游戏不再依赖宿主 /favicon.svg,降低 Harness 路径/资源变化导致的破图风险。
  • 可选桌面快捷方式:明确配置 shortcut: true 后,才会创建/刷新桌面快捷方式;支持 Windows、macOS 和 Linux/XDG。

安装

dsh plugin --profile web add github:CochraneK/dsh-gate-game-plugin

需要可复现安装时,建议固定到具体 tag 或 commit,而不是长期追随移动的默认分支:

dsh plugin --profile web add github:CochraneK/dsh-gate-game-plugin#<tag-or-commit>

本仓库已提交 lib/ 运行产物,并由 CI 检查 src/ 与 lib/ 一致,因此当前 GitHub 安装路径不需要额外执行 install-time prepare 构建。

或从本地目录安装:

dsh plugin --profile web add ./dsh-gate-game-plugin

重启 dsh web 后,侧栏底部会出现休息游戏按钮。

桌面快捷方式(可选)

从 0.2.0 开始,安装插件不会默认写入桌面。需要时显式开启:

dsh-gate-game:
  shortcut: true
  shortcutName: "DeepSeek Harness"
配置项类型默认值说明
shortcutbooleanfalse是否创建/刷新桌面快捷方式
shortcutNamestring"DeepSeek Harness"快捷方式文件名;会自动过滤跨平台非法字符

快捷方式会在 Web Server 端口解析后创建。如果端口变化,插件会更新已有快捷方式,而不是因为文件已存在就永久保留旧地址。Linux 会优先读取 ~/.config/user-dirs.dirs(或 $XDG_CONFIG_HOME/user-dirs.dirs)中的桌面目录。

兼容性

DeepSeek Harness状态说明
dsh-v0.1.6-alpha.2🟡 精确上游源码契约 CI 已验证;真实浏览器安装 smoke 待做slot 仍为 root/list,官方仍使用 inject/register;见 COMPATIBILITY.md
v0.1.5-rc.2✅ 历史源码/手工核对基线之前的兼容目标
v0.1.0-rc.7✅ 原始开发基线0.1.x 早期版本的初始实现来源

Harness 仍处于快速迭代阶段。升级后如果侧栏结构发生破坏性变化,优先检查 sidebar.footer.action slot 契约。

开发

项目没有运行时 npm 依赖。src/ 是源码,lib/ 是 Harness 直接加载的生成文件。

npm run build      # src -> lib
npm test           # Node 内置测试
npm run check      # 语法 + 生成文件一致性 + 测试
npm pack --dry-run # 检查发布包内容

CI 在 Node 20 和 Node 22 上执行相同检查。

结构

.
├── src/
│   ├── client.js      # 浏览器插件 + 游戏引擎
│   └── index.js       # Node host + 可选桌面快捷方式
├── lib/               # npm run build 生成;Harness 实际加载
├── scripts/build.mjs  # 零依赖构建/一致性检查
├── test/              # Node 内置测试
├── .github/workflows/ # Node 20/22 CI
├── assets/            # README 截图 + 桌面快捷方式图标
├── cordis.patch.yml
└── package.json

package.json 声明 dsh.client(Web)和 dsh.bundle.patch;浏览器端通过 window.__ModuleLoader__.load 注册,并把组件挂到官方 sidebar.footer.action slot。插件不修改 Harness 应用源码。

许可证

MIT

Agent continuity

新的 Agent / 对话 / 电脑优先读取:

AGENTS.md
→ HANDOFF.md
→ STATUS.md
→ DECISIONS.md
→ COMPATIBILITY.md
→ docs/architecture.md
→ src/ + test/

Git 是长期 canonical state。DeepSeek Harness 兼容性必须记录到精确上游版本,不能只依赖“之前能跑”。