dsh-columbina-pet

funtested: passnpmMIT

Columbina mascot for DeepSeek Harness: a 2D live pet on the desktop and inside the web panel, with four sprite sets, 76 official voice lines in Chinese, Japanese and English, weather reports, sticker moments, idle whispers, and a right-click menu for the sprite switch interval, sprite set, language

下载量 / Downloads
768
依赖体积 / node_modules
218.16 MB
测试时间 / Tested
2026-11-07
DSH 版本 / Version
0.2.2-rc.1

Install

dsh plugin --profile web add dsh-columbina-pet

Sandbox test results

StageResult
1 install✓
2 list✓
3 mount✓
4 boot—

Four stages run in an isolated sandbox: install (network on) → list → mount → boot (last three with no network).

README

<div align="center">

<img src="assets/logo.png" width="112" alt="dsh-columbina-pet" />

dsh-columbina-pet

哥伦比娅 2D live 桌宠 · DeepSeek Harness 插件

四套形象 · 76 句三语原声台词 · 天气播报 · 真实物理 · 表情包时刻

![License: MIT](LICENSE)

</div>


这是什么

把愚人众第三席「少女」哥伦比娅放进 DeepSeek Harness 的桌面:她会浮在窗口最上层,被拖动时有真实的物理摆动,会按时间与场景轻声说话,会用官方原声念出台词,也会播报今天的天气。

本仓库是 dsh-pet(MIT)的2D 专用分支:保留并深化了 2D live 形象、语音台词、菜单与物理,移除了尚未完善的上游 3D 形象切换,补上了天气播报与开源所需的文档、占位与版权说明。

英文简介:A 2D live desktop pet of Columbina for DeepSeek Harness — four sprite sets, 76 official voice lines in zh/ja/en with synced subtitles, weather reports, and real physics. 3D mode from upstream has been removed on purpose. See [NOTICE.md](NOTICE.md) for asset licensing.

预览

桌面模式 · 右键菜单

![桌面模式](docs/screenshots/01-desktop.png) · ![右键菜单](docs/screenshots/02-menu.png)

四套 2D live 形象 · 设置面板

![四套形象](docs/screenshots/03-skins.png) · ![设置面板](docs/screenshots/04-settings.png)

更新公告

逐版本明细见 [CHANGELOG.md](./CHANGELOG.md);可下载的包见 Releases。每个版本都会在这里留一段,说明改了什么、要不要动设置。

1.2.1 · 2026-10-31

一版以「修碎碎念字幕」为主的补丁。不需要动任何设置,升级后请完整退出 DSH 再打开。
  • 长句字幕不再提前消失:碎碎念字幕比声音先没了。根因不在文案,而在时长拿不到——宿主素材接口不返回 accept-ranges,Chromium 对不能 seek 的 Ogg 会把 audio.duration 报成 Infinity,旧逻辑据此退回固定的 3600 ms。现在字幕跟着音频的实际播放进度走(timeupdate 续命),读多久就显示多久,念完立刻收。
  • 字幕不再被裁掉:碎碎念字幕挪进挂在 body 的独立浮层(原先寄生在 .dsh-pet-root 里,祖先一旦有 transform / overflow: hidden 就会把长句整块切走)。
  • 拖动宠物时字幕跟着走:显示期间用 requestAnimationFrame 逐帧同步浮层位置,甩飞、落地、贴边都跟得上。
  • 碎碎念节奏恢复正常:设过间隔却发现十几分钟才念一句——计时器被任务状态连带重置,已修。
  • 桌面端也能检查素材了:桌面「语音包与素材」面板补齐,一键数语音包 / 动作 / 表情,缺语音包原地重下,不用翻日志。
  • 网页右键菜单向桌面看齐:菜单项、顺序、文案统一;网页端新增「真实物理:开 / 关」,设置面板里的分区顺序也一致了。
  • 天气播报文案统一:温度一律带 ℃,中 / 日 / 英句式各自本地化。
  • 长句不再被下一句掐断:webAutoVoice() 在触发前先看上一句还在不在播——热身 / 间隔 / 手势补播 / 天气接话这些自动来源都会让路(控制台打 [dsh-pet] 碎碎念让路 来源=…),只有你手动点桌宠或点「原声台词」才是强制换句。热身那句也改成每个页面会话只排一次。
  • 气泡不再出现乱码 / 豆腐块:碎碎念气泡曾整串显示成菱形问号。根因是宿主接收请求体时把非 UTF-8 字节直接按 UTF-8 解码(Windows 控制台的 curl / PowerShell 会把中文按 GBK 发出来),替换字符 � 就一路写进了气泡。现在请求体先严格 UTF-8、失败再按 GB18030 重解;含 �、锟斤拷 这类双重转换痕迹的文本一律不写进气泡。
  • 语音文件支持 Range:素材接口现在回 accept-ranges 并支持 206 / 416,音频可以按需取字节,audio.duration 能拿到真值(以前不返回 accept-ranges,Chromium 对不能 seek 的 Ogg 报 Infinity)。字幕仍保留 timeupdate 兜底,客户端两个版本都稳。
  • 本地接口不再对任何网页敞开:此前 24 条路由全无来源校验,任意网页都能跨站 POST /broadcast 往气泡里塞字、/whisper 烧 token。现在写请求若带 sec-fetch-site: cross-site 且 Origin 是别的 http(s) 站,直接 403 cross-site-blocked;同源页面、file:// 的桌面 Helper、本机脚本(curl / node / python)照常。
  • 切回网页模式后桌面 Helper 会退出:以前 desktopModeEverActive 一旦为真就永不复位,切回 web 后还留着 3 个空转进程(约 178 MB、无窗口)。现在没有桌面宠物就不再拉起 Helper,切回桌面时自动重启。
  • 语音包标记跟着版本走:~/.dsh/columbina-pet/voice-pack.json 的 version 之前停在 1.1.5(只在迁移那一次写),每次启动会按当前版本刷新。
  • 素材没动(沿用 1.1.11 的原始 webm,约 147 MB),本版只改代码。

1.2.0 · 2026-10-31

开发期编号是 1.1.12,因为功能面到了次版本,正式发布更名 1.2.0(内容与 1.1.12 完全一致)。
  • 待机动作可选:右键「待机动作」切 精选 / 当前形象全部动作 / 自己选;「自己选…」打开设置面板里带搜索框的勾选列表,桌面与网页同一套。精选池从 2 段扩到官方 9 / 去眼罩 12 / 睁眼 12 / 闭眼 10 段。
  • 待机不再一顿一顿:带「待机」的片段此前被拉成 20 秒循环(2.4 秒的官方片段 ≈0.12×,折合 3.6 fps),现在统一 0.6×。
  • 省电模式真的会停:旧实现只暂停 loop 的视频,而待机是 one-shot 播放,所以什么都没停;现在鼠标 30 秒不动就暂停所有在播视频,并拦住宿主推来的新动作。
  • 夜间勿扰 / 音量与静音 / 素材自检与一键修复 / 网页面板同步:见下面「功能介绍」。
  • 余额查询:默认模型挂在 API Key 版服务商、而本机是账号登录时,不再报「缺少凭证 DEEPSEEK_API_KEY」,自动改查账号余额。
  • 素材没动:沿用 1.1.11 的原始 webm(约 147 MB),本版没有做有损压缩;scripts/shrink-webm.mjs 留作可选工具。
  • /healthz 能分辨「磁盘换了没重启」:新增 activatedBuildSha256(激活那一刻算的 sha256,留在内存)与 needsRestart(内存 sha ≠ 磁盘 sha 时为 true)。同一版本号重打包时,光看 buildSha256 永远等于新盘,只有这组字段能看出内存里跑的是旧代码。
  • 启动时自报身份:每次启动把「这次跑的是哪个版本、哪份代码」写进 ~/.dsh/columbina-pet/activation.json(activatedAt / activatedVersion / diskVersion / buildSha256 / activatedBuildSha256 / needsRestart),同时往宿主日志打一行 [dsh-pet] activated <版本> build <sha8>。磁盘上已经是新版本、内存里跑的还是旧的时,needsRestart 为 true 并补一条 warn——以后不用先猜 /healthz 怎么访问。
  • 升级后需完整退出 DSH 再打开;设置项都带默认值,不需要手动迁移。

1.1.11 · 2026-10-30

  • /healthz 增加 activatedVersion / buildSha256:换包没重启一眼可见。
  • ensure-voice 增加 120 s 总预算 + 20 s 停滞检测(DSH_COLUMBINA_VOICE_STALL_MS 可调)。
  • npm 包去掉 src/:条目 607 → 465,tarball 148.56 → 148.11 MB。
  • 路由路径解码容错:GBK 百分号编码不再整条路由 500。

1.1.10 · 2026-10-30

  • 修复网页端「全不选」曾把 lines 写成 [0](只念第一句):宿主一次性迁移 + 写入 prefsRev: 2。
  • 只影响网页模式面板;桌面端一直正常。

特性

  • 四套 2D live 形象:official(官方表情包)、nochoker(去眼罩)、open(带眼罩·睁眼)、closed(带眼罩·闭眼)。右键菜单「2D live 形象」即时切换,每套自带待机 / 点击 / 拖拽 / 事件动作树(共 246 个 webm)。
  • 三语原声台词:76 句哥伦比娅官方语音,按中 / 日 / 英整理为 94 段切片。配音语言与字幕语言分开设置;有声音必有字幕,一句长台词会按播放进度分段换字幕。
  • 按场景碎碎念:问候、午夜、安慰、感谢、提问、玩耍、友人、睡前、认真、俏皮十组场景池,按时间与近期出镜率抽签,不连续重复;开局前 12–22 秒保持安静。
  • 工作气泡优先:正在向用户汇报时,桌宠不会抢走气泡;它的话结束后自动把气泡还给工作状态。
  • 天气播报(v10.4):菜单「天气 → 今天的天气」,先用气泡给出摘要(城市、天气、当前温度、今日温度区间),隔一拍再用原声台词接一句应景的话;断网时给一句兜底台词,不会卡死。
  • 真实物理:拖拽甩出弧度、松手下落、落地回弹、窗口贴边停靠,参数全部可配。
  • 菜单即设置:切换间隔、2D live 形象、语言(配音 / 字幕 / 菜单)、模型大小 0.5–3×、原声台词勾选、碎碎念开关,菜单本身也随语言切换。
  • 时刻表情包:12 张心情图(好耶 / 抱抱 / 期待 / 出发 / 好吃 / 思考 / 睡觉 / 困了 / 贴贴 / 唱歌 / 谢幕 / 晚安),由台词标签与场景挑选。
  • 音量与静音(1.2.0):右键「音量」五档 20–100 % 加一键静音,桌面与网页共用一套设置;改完立刻生效,不会掐断正在播的那一句。
  • 夜间勿扰(1.2.0):设一个时段(默认 23:00–08:00),这段时间碎碎念自动闭嘴;手动点「原声台词」照常播。
  • 素材自检与一键修复(1.2.0):设置面板「语音包与素材」点一下就数一遍语音切片 / 动作 / 表情,语音包缺了直接原地重下,不用再翻日志。
  • 省电模式(1.2.0,默认关):闲着 30 秒把循环待机动图定格,鼠标一动立刻继续,长时间挂桌面更省 CPU。
  • 待机动作可选(1.2.0):右键「待机动作」切精选 / 当前形象全部动作 / 自己选;「自己选」会打开设置面板里可搜索的勾选列表(去眼罩、带眼罩睁眼各 82 段,带眼罩闭眼 65 段,官方表情包 17 段),勾了哪几段就只轮播哪几段。
  • 网页模式补平(1.2.0):网页端补齐夜间勿扰、省电模式与待机动作(设置面板里同样可搜索勾选),碎碎念时段、音量与静音和桌面共用一套设置。
  • 天气城市名本地化(1.2.0):定位拿到的城市按字幕语言翻译,中文界面显示「广州」而不是「Guangzhou」;英文/日文界面保留本地拼写。

功能介绍

每一项都能从右键菜单或设置面板进去;下面写清「入口 / 怎么用 / 要注意什么」。

形象与动作(四套 2D live)

  • 入口:右键「2D live 形象」。
  • official 官方表情包、`noc

…(truncated)

Rendered from the README published on npm. Formatted only, not edited.

Versions

Published on npm::4,最后更新 2026-10-31

Links

GitHub · Homepage · npm

Same category