秉承一切皆插件
秉承“一切皆插件”精神的 DeepSeek Harness Web 视图包装器。
项目简介
为 DeepSeek Harness 的 Web 界面提供一个朴素的(naive)原生桌面外壳。dsh-webview-wrapper 是 deepseek-harness 的树外插件:它通过 WebviewJS 把正在运行的 Web 应用装进一个操作系统原生窗口——使用平台自带的 webview 引擎(Windows 为 WebView2,macOS 为 WebKit,Linux 为 WebKitGTK),绝不打包浏览器内核。没有 Electron、没有 fork、不打 harness 的补丁。
随附的 web profile 已经在 dsh.profile.bundles 里列好了 Web 层(@deepseek-ai/dsh-base、@deepseek-ai/dsh-web-app)。想用自定义 profile,就从 web 复制一份,再只加 wrapper: add 逐步做了什么
1. 没有原生通知——harness 里发生的事不会变成系统通知。路线:接入 WebviewJS Notification。 2. 通用 HTTP 传输——webview 通过 http://127.0.0.1: 加载 Web 应用,和浏览器标签页走同一条 HTTP 通道。路线:改用 WebviewJS IPC(webview.expose() / window.ipc.postMessage)和自定义协议,去掉对 loopback HTTP 的依赖。 3. 没有菜单栏——只有托盘菜单。路线:app.setMenu(),配上 File/Edit 角色与快捷键。 4. 黑窗 + 只能靠托盘退出——经由 CLI 启动会带出一个控制台黑窗,退出路径只有托盘 Quit 与 profile 关闭。路线:打包成 GUI 子系统可执行文件(WebviewJS CLI / Node SEA)让黑窗消失,并在页面内提供退出入口。