Skip to content

Releases

v1.6.0 — 适配 DSH 0.2.x · DSH 0.2.x support

Choose a tag to compare

@b8yg7vjstj-ctrl b8yg7vjstj-ctrl released this 23 Oct 14:53

v1.6.0 — 适配 DSH 0.2.x · DSH 0.2.x support

English · 中文


中文

这一版主要是跟着 DSH 0.2.x 的设置契约改了一遍,功能没变,但升级 DSH 后请务必换成这一版。

为什么要升级

旧版用 settings.register() 注册配置项。这个方法在 0.2.x 里已经不存在了 —— 于是宿主启动时会报 settings.register is not a function,整个插件的 host 半包直接不激活:日志里能看到 1 entry did not activate,模型路由和终端面板都不工作。

改了什么

  • 配置改走 cordis Config:入口导出 Config(schemastery,可改字段全部标记 volatile),cordis 解析后作为 apply(ctx, config) 的第二个参数传入;不再需要 settings 服务的 register()
  • 设置命名空间改为 entry id:从 llamacpp-bridge 变成 dsh-llamacpp-bridge(0.2.x 的约定是命名空间等于 cordis.patch.yml 里这个 entry 的 id)
  • 发现结果并入同一份 Config:0.2.x 一个 entry 只有一份 Config,注册不了第二个命名空间,所以自动探测到的可执行文件/模型目录候选现在放在同一节的 discovery 字段组;设置页会额外从只读路由 /api/llamacpp-bridge/discovery 现拉候选
  • 热更新改监听 loader/volatile-update:0.2.x 不再重跑 apply,配置改完只把新值写进已持有的引用,插件监听该事件后自行重读、必要时换目录或重启服务
  • 客户端设置读写改 ctx.configForms.get(entryId):旧代码用的 settingsScope 服务在 0.2.x 里并不存在
  • dsh.client.inject 清理:去掉两版都不存在的 @deepseek-ai/dsh-client-runtime,补上 renderer / session

兼容性

已在 DSH 0.2.0-rc.2 与 0.2.1-rc.2 两个版本上实际跑过:host 正常激活、4 个模型全部扫到、2 个视觉投影配对成功、/state /discovery /events 三条路由都通、设置页里能看到 dsh-llamacpp-bridge 命名空间。

升级注意

设置命名空间改名了,所以之前在旧命名空间下保存的自定义配置不会自动带过来(默认全部走自动探测,一般不需要重新填)。安装后请重启 host,并 Cmd/Ctrl + Shift + R 硬刷新浏览器。

功能一览(与 1.5.0 相同)

  • 进程/路由管理:单模型直启与 router 两种模式;调用前 ensure(),没跑就先跑起来,就绪后才走 OpenAI 兼容端口
  • 先停旧再起新:切换模型时先停止先前模型并确认停止,再启动目标模型
  • 目录同步:启动全量重扫 + 按目录指纹的读取时重扫 + fs.watch + 30s 兜底轮询
  • mmproj 视觉配对:手动绑定 → 后缀约定 → 前缀模糊配对(mmproj-*.gguf 归一化打分)
  • 终端监控面板:侧边栏入口行 → 自持面板,实时 SSE 日志、模型切换(👁 视觉标记)、刷新、过滤、清屏
  • 优雅退出:Ctrl+C(SIGINT 到前台进程组)→ 写 Y 确认 → 等退出,最后才回退 SIGTERM→SIGKILL
  • 名称截断:显示名超过 30 字符截断为 前30字符...,id 保持完整

安装

# 下载本页资源 dsh-llamacpp-bridge-1.6.0.tgz
dsh plugin --profile web add ./dsh-llamacpp-bridge-1.6.0.tgz

English

This release is mostly a port to the DSH 0.2.x settings contract. Features are unchanged, but you do want this build if you are on 0.2.x.

Why upgrade

The previous version registered its settings with settings.register(). That method no longer exists in 0.2.x, so the host logged settings.register is not a function and the whole host half of the plugin failed to activate (1 entry did not activate) — no model route, no terminal panel.

What changed

  • Configuration now goes through a cordis Config: the entry exports Config (schemastery, editable fields marked volatile); cordis resolves it and passes it as the second argument of apply(ctx, config). No settings service registration involved.
  • Settings namespace is now the entry id: llamacpp-bridge → dsh-llamacpp-bridge (in 0.2.x the namespace equals the id of the entry in cordis.patch.yml).
  • Discovery results folded into the same Config: one entry can only have one Config in 0.2.x, so the auto-detected executable/model-directory candidates now live in a discovery field group of that section; the settings page additionally pulls fresh candidates from the read-only route /api/llamacpp-bridge/discovery.
  • Hot reload listens to loader/volatile-update: 0.2.x does not re-run apply; it writes the new values into the already-held reference, and the plugin re-reads and swaps directories or restarts the server if needed.
  • Client settings go through ctx.configForms.get(entryId): the settingsScope service the old code used does not exist in 0.2.x.
  • dsh.client.inject cleaned up: dropped @deepseek-ai/dsh-client-runtime (absent in both versions) and added renderer / session.

Compatibility

Actually run against DSH 0.2.0-rc.2 and 0.2.1-rc.2: the host activates, all four models are scanned, two vision projectors pair up, /state /discovery /events all respond, and the dsh-llamacpp-bridge namespace shows up in the settings page.

Upgrade note

The settings namespace was renamed, so custom values saved under the old namespace are not carried over (everything falls back to auto-detection by default, so you normally do not need to re-enter anything). Restart the host after installing and hard-refresh the browser with Cmd/Ctrl + Shift + R.

Features (same as 1.5.0)

  • Process and route management: single-model and router modes; ensure() before every call so the server is up and ready before the OpenAI-compatible port is used
  • Stop-then-load switching: the previous model is stopped and confirmed before the target model starts
  • Catalog sync: full rescan at startup, fingerprint-based on-read rescan, fs.watch, and a 30 s fallback poll
  • mmproj vision pairing: manual binding → suffix convention → fuzzy prefix matching of mmproj-*.gguf
  • Terminal monitor panel: sidebar entry row → self-owned panel with live SSE logs, model switching (👁 vision marks), refresh, filter and clear
  • Graceful shutdown: Ctrl+C (SIGINT to the foreground process group) → write Y to confirm → wait for exit, escalating to SIGTERM→SIGKILL only as a last resort
  • Name truncation: display names over 30 characters become first30chars..., while the id stays intact

Install

# download dsh-llamacpp-bridge-1.6.0.tgz from the assets below
dsh plugin --profile web add ./dsh-llamacpp-bridge-1.6.0.tgz

Full documentation / 完整文档:README.md (中文) · README.en.md (English)

v1.5.0 — 本地 llama.cpp provider · local llama.cpp provider

Choose a tag to compare

@b8yg7vjstj-ctrl b8yg7vjstj-ctrl released this 27 Sep 08:13

v1.5.0 — 本地 llama.cpp provider · local llama.cpp provider

English · 中文


中文

把本机 llama.cpp 接入 DeepSeek Harness:在模型选择器里直接选本地 GGUF 模型,发消息时自动拉起 llama-server。

亮点

  • 进程/路由管理:单模型直启与 router 两种模式;调用前 ensure(),服务器没跑就先跑起来,就绪后才走 OpenAI 兼容端口
  • 先停旧再起新:切换模型时先停止先前模型并确认停止,再启动目标模型(日志写明两步,避免显存里同时挂两个模型)
  • 目录同步:启动全量重扫 + 按目录指纹的读取时重扫 + fs.watch + 30s 兜底轮询;目录稍后出现也能自愈
  • mmproj 视觉配对:手动绑定 → 后缀约定 → 前缀模糊配对(mmproj-*.gguf 归一化打分),配上自动带 --mmproj
  • 终端监控面板:侧边栏入口行(与任务看板同级)→ 自持面板:实时 SSE 日志(流别标签/时间戳)、模型切换(👁 视觉标记)、刷新、过滤、清屏
  • 优雅退出:真 PTY 里发送 Ctrl+C(SIGINT 到前台进程组)→ 写 Y 确认 → 等退出;只有升级到最后才回退 SIGTERM→SIGKILL,绝不直接强杀
  • 名称截断:显示名超过 30 字符截断为 前30字符...,id 保持完整

安装

# 下载本页资源 dsh-llamacpp-bridge-1.5.0.tgz
dsh plugin --profile web add ./dsh-llamacpp-bridge-1.5.0.tgz

安装后重启 host(kill <PID> 后 dsh web)并 Cmd/Ctrl + Shift + R 硬刷新浏览器。

已知 DSH 侧问题

0.1.7-rc.2 下 DSH 不会加载插件的客户端 bundle(/plugins/<包名>/client.js 返回 404,宿主日志无插件侧报错),因此界面不可见;同一个包的 host 半包工作正常(路由可用)。请使用无此缺陷的 DSH 版本。


English

Plug your local llama.cpp into DeepSeek Harness: pick a local GGUF model in the model picker and llama-server is started for you on demand.

Highlights

  • Process and route management: single-model and router modes; ensure() before every call so the server is up and ready before the OpenAI-compatible port is used
  • Stop-then-load switching: the previous model is stopped and confirmed before the target model starts (both steps logged), so two models never fight over VRAM
  • Catalog sync: full rescan at startup, fingerprint-based on-read rescan, fs.watch, and a 30 s fallback poll; directories that appear later are picked up automatically
  • mmproj vision pairing: manual binding → suffix convention → fuzzy prefix matching of mmproj-*.gguf (scored on normalized names); paired models get --mmproj automatically
  • Terminal monitor panel: sidebar entry row (peer of the task board) → self-owned panel with live SSE logs (stream tags and timestamps), model switching (👁 marks vision models), refresh, filter and clear
  • Graceful shutdown: Ctrl+C (SIGINT to the foreground process group) → write Y to confirm → wait for exit; escalation reaches SIGTERM→SIGKILL only as a last resort, never a direct hard kill
  • Name truncation: display names longer than 30 characters become first30chars..., while the id stays intact

Install

# download dsh-llamacpp-bridge-1.5.0.tgz from the assets below
dsh plugin --profile web add ./dsh-llamacpp-bridge-1.5.0.tgz

Then restart the host (kill <PID> followed by dsh web) and hard-refresh the browser with Cmd/Ctrl + Shift + R.

Known DSH-side issue

On 0.1.7-rc.2 DSH does not load the plugin client bundle (/plugins/<pkg>/client.js returns 404 and the host log shows no plugin-side error), so the UI is invisible; the host half of the same package works. Use a DSH build without this defect.


Full documentation / 完整文档:README.md (中文) · README.en.md (English)